UNPKG

1.3 kBJavaScriptView Raw
1'use strict';
2
3const fs = require('fs-extra');
4const path = require('path');
5const config = require('./config');
6const remote = require('./remote');
7const platform = require('./platform');
8const index = require('./index');
9
10const CACHE_FOLDER = path.join(config.get().cache, 'cache');
11
12exports.lastUpdated = (done) => {
13 fs.stat(CACHE_FOLDER, done);
14};
15
16exports.getPage = (page, done) => {
17 let preferredPlatform = platform.getPreferredPlatformFolder();
18 index.findPlatform(page, preferredPlatform, (folder) => {
19 if (folder) {
20 let filePath = path.join(CACHE_FOLDER, 'pages', folder, page + '.md');
21 fs.readFile(filePath, 'utf8', done);
22 } else {
23 done(null, null);
24 }
25 });
26};
27
28exports.clear = (done) => {
29 fs.remove(CACHE_FOLDER, done);
30};
31
32exports.update = (done) => {
33 // Downloading fresh copy
34 remote.download((err, tempFolder) => {
35 if (err) {
36 return done(err);
37 }
38 // Creating cache folder
39 fs.mkdirs(CACHE_FOLDER, (err) => {
40 if (err) {
41 return done(err);
42 }
43 // Copying from tmp to cache folder
44 fs.copy(tempFolder, CACHE_FOLDER, {clobber: true}, (err) => {
45 if (err) {
46 return done(err);
47 }
48 index.rebuildPagesIndex(() => {
49 return done();
50 });
51 });
52 });
53 });
54};