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.
47 lines • 2.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn"));
var gulp_1 = tslib_1.__importDefault(require("gulp"));
var sbg_utility_1 = require("sbg-utility");
var through2_1 = tslib_1.__importDefault(require("through2"));
var upath_1 = require("upath");
/**
* run all _*.standalone.js inside src-posts (_config_yml.post_dir)
* @returns
*/
function standaloneRunner() {
sbg_utility_1.Logger.log('[standalone] Running scripts...\n');
return gulp_1.default
.src((0, upath_1.join)((0, sbg_utility_1.getConfig)().cwd, '**/_*.standalone.js'), { cwd: (0, sbg_utility_1.getConfig)().cwd, ignore: ['**/tmp/**'] })
.pipe(through2_1.default.obj(function (file, _enc, next) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var _a, _b, _c, child;
return tslib_1.__generator(this, function (_d) {
switch (_d.label) {
case 0:
sbg_utility_1.Logger.log('='.repeat(10) + ' input ' + '='.repeat(10));
_b = (_a = sbg_utility_1.Logger).log;
_c = "node ".concat;
return [4 /*yield*/, (0, sbg_utility_1.replacePath)(file.path, (0, sbg_utility_1.getConfig)().cwd, '')];
case 1:
_b.apply(_a, [_c.apply("node ", [_d.sent()])]);
sbg_utility_1.Logger.log('='.repeat(10) + ' ouput ' + '='.repeat(10));
child = cross_spawn_1.default.spawn('node', [file.path], { stdio: 'inherit' });
child.on('close', function () {
// drop file
next();
});
return [2 /*return*/];
}
});
});
}))
.pipe(gulp_1.default.dest((0, upath_1.join)((0, sbg_utility_1.getConfig)().cwd, 'tmp/standalone')))
.once('end', function () {
sbg_utility_1.Logger.log('\n[standalone] stopped');
});
}
gulp_1.default.task('post:standalone', standaloneRunner);
exports.default = standaloneRunner;
//# sourceMappingURL=standalone.js.map