UNPKG

sbg-api

Version:

Pre-processing all source posts before rendering from hexo. Useful for low-end devices to prevent using large number of hexo plugins.

67 lines 2.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cleanDb = void 0; var tslib_1 = require("tslib"); var fs_extra_1 = require("fs-extra"); var sbg_utility_1 = require("sbg-utility"); var upath_1 = require("upath"); var util_1 = require("util"); /** * Clean Project Databases */ function cleanDb(callback, files) { return tslib_1.__awaiter(this, void 0, void 0, function () { var log, config, dirs, i, dir, _a; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: log = (0, sbg_utility_1.debug)('clean'); config = (0, sbg_utility_1.getConfig)(); if (typeof config.source_dir !== 'string') { (0, sbg_utility_1.writefile)((0, upath_1.join)(config.cwd, 'tmp/errors/clean.log'), (0, util_1.inspect)(config)); throw new Error('config.source_dir must be configured'); } dirs = [ (0, upath_1.join)(config.cwd, config.source_dir, '_posts'), (0, upath_1.join)(config.cwd, 'tmp/cache'), (0, upath_1.join)(config.cwd, 'tmp/dump'), (0, upath_1.join)(config.cwd, 'tmp/logs'), (0, upath_1.join)(config.cwd, 'db.json') ]; if (Array.isArray(files)) dirs = dirs.concat(files); i = 0; _b.label = 1; case 1: if (!(i < dirs.length)) return [3 /*break*/, 7]; dir = dirs[i]; _b.label = 2; case 2: _b.trys.push([2, 5, , 6]); if (!(0, fs_extra_1.existsSync)(dir)) return [3 /*break*/, 4]; log('cleaning', dir); return [4 /*yield*/, (0, sbg_utility_1.del)(dir)]; case 3: _b.sent(); _b.label = 4; case 4: return [3 /*break*/, 6]; case 5: _a = _b.sent(); log('cannot delete', dir); return [3 /*break*/, 6]; case 6: i++; return [3 /*break*/, 1]; case 7: /*const hexo = new hexoLib(config.cwd); await hexo.init().catch(noop); await hexo.call('clean').catch(noop);*/ if (typeof callback === 'function') return [2 /*return*/, callback()]; return [2 /*return*/, undefined]; } }); }); } exports.cleanDb = cleanDb; //# sourceMappingURL=cleanDb.js.map