UNPKG

jgb-cli

Version:

```shell npm i -g jgb-cli #全局安装 ```

193 lines 12.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var lib_1 = require("jgb-shared/lib"); var awaitEventEmitter_1 = require("jgb-shared/lib/awaitEventEmitter"); var StaticAsset_1 = require("jgb-shared/lib/StaticAsset"); var path = require("path"); var Compiler = /** @class */ (function (_super) { tslib_1.__extends(Compiler, _super); function Compiler(options) { var _this = _super.call(this) || this; _this.options = options; _this.extensions = new Map(); return _this; } /** * 预加载插件等信息 */ Compiler.prototype.preload = function (options) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.loadPresets(options.presets)]; case 1: _a.sent(); return [4 /*yield*/, this.loadPlugins(options.plugins)]; case 2: _a.sent(); return [2 /*return*/]; } }); }); }; Compiler.prototype.init = function (resolver) { return tslib_1.__awaiter(this, void 0, void 0, function () { var exts; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, this.preload(this.options)]; case 1: _a.sent(); this.resolver = resolver; exts = tslib_1.__spread(this.extensions.keys()); this.options.extensions = new Set(exts); return [2 /*return*/]; } }); }); }; /** * 加载插件 * @param plugins */ Compiler.prototype.loadPlugins = function (plugins) { if (plugins === void 0) { plugins = []; } return tslib_1.__awaiter(this, void 0, void 0, function () { var e_1, _a, relative, _b, _c, plugin, _d, pluginName, pluginConfig, loadedPlugin, invoke, e_1_1; return tslib_1.__generator(this, function (_e) { switch (_e.label) { case 0: relative = path.join(this.options.rootDir); _e.label = 1; case 1: _e.trys.push([1, 7, 8, 9]); _b = tslib_1.__values(new Set(plugins)), _c = _b.next(); _e.label = 2; case 2: if (!!_c.done) return [3 /*break*/, 6]; plugin = _c.value; _d = tslib_1.__read([].concat(plugin), 2), pluginName = _d[0], pluginConfig = _d[1]; if (!pluginName.startsWith('jgb-plugin-')) { pluginName = "jgb-plugin-" + pluginName; } if (!pluginConfig) { pluginConfig = {}; } return [4 /*yield*/, lib_1.localRequire(pluginName, relative)]; case 3: loadedPlugin = _e.sent(); invoke = loadedPlugin.default || loadedPlugin; return [4 /*yield*/, invoke(this, pluginConfig)]; case 4: _e.sent(); _e.label = 5; case 5: _c = _b.next(); return [3 /*break*/, 2]; case 6: return [3 /*break*/, 9]; case 7: e_1_1 = _e.sent(); e_1 = { error: e_1_1 }; return [3 /*break*/, 9]; case 8: try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_1) throw e_1.error; } return [7 /*endfinally*/]; case 9: return [2 /*return*/]; } }); }); }; /** * 加载预设配置 * @param presets */ Compiler.prototype.loadPresets = function (presets) { return tslib_1.__awaiter(this, void 0, void 0, function () { var e_2, _a, relative, _b, _c, preset, _d, presetName, presetConfig, loadedPlugin, invoke, e_2_1; return tslib_1.__generator(this, function (_e) { switch (_e.label) { case 0: relative = path.join(this.options.rootDir); _e.label = 1; case 1: _e.trys.push([1, 7, 8, 9]); _b = tslib_1.__values(new Set(presets)), _c = _b.next(); _e.label = 2; case 2: if (!!_c.done) return [3 /*break*/, 6]; preset = _c.value; _d = tslib_1.__read([].concat(preset), 2), presetName = _d[0], presetConfig = _d[1]; if (!presetName.startsWith('jgb-preset-')) { presetName = "jgb-preset-" + presetName; } if (!presetConfig) { presetConfig = {}; } return [4 /*yield*/, lib_1.localRequire(presetName, relative)]; case 3: loadedPlugin = _e.sent(); invoke = loadedPlugin.default || loadedPlugin; return [4 /*yield*/, invoke(this, Object.assign(presetConfig, { coreOptions: this.options }))]; case 4: _e.sent(); _e.label = 5; case 5: _c = _b.next(); return [3 /*break*/, 2]; case 6: return [3 /*break*/, 9]; case 7: e_2_1 = _e.sent(); e_2 = { error: e_2_1 }; return [3 /*break*/, 9]; case 8: try { if (_c && !_c.done && (_a = _b.return)) _a.call(_b); } finally { if (e_2) throw e_2.error; } return [7 /*endfinally*/]; case 9: return [2 /*return*/]; } }); }); }; /** * addAssetsType 时会自动添加parentCompiler * @param exts * @param asset */ Compiler.prototype.addAssetsType = function (exts, asset) { var _this = this; [].concat(exts).forEach(function (ext) { if (typeof asset === 'string') { var assetTemp = require(asset); asset = (assetTemp.default || assetTemp); } asset.prototype.parentCompiler = _this; _this.extensions.set(ext.toLowerCase(), asset); }); }; Compiler.prototype.findParser = function (fileName, fromPipeline) { if (fromPipeline === void 0) { fromPipeline = false; } var extension = path.extname(fileName).toLowerCase(); return this.extensions.get(extension); }; Compiler.prototype.getAsset = function (fileName) { var Parser = this.findParser(fileName); this.options.parser = this; if (typeof Parser === 'undefined') { return new StaticAsset_1.default(fileName, this.options); } else { return new Parser(fileName, this.options); } }; return Compiler; }(awaitEventEmitter_1.default)); exports.default = Compiler; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tcGlsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQ29tcGlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0NBTXdCO0FBQ3hCLHNFQUFpRTtBQUVqRSwwREFBcUQ7QUFDckQsMkJBQTZCO0FBSTdCO0lBQXNDLG9DQUFpQjtJQUlyRCxrQkFBb0IsT0FBcUI7UUFBekMsWUFDRSxpQkFBTyxTQUNSO1FBRm1CLGFBQU8sR0FBUCxPQUFPLENBQWM7UUFIakMsZ0JBQVUsR0FBRyxJQUFJLEdBQUcsRUFBcUIsQ0FBQzs7SUFLbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0csMEJBQU8sR0FBYixVQUFjLE9BQXFCOzs7OzRCQUNqQyxxQkFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBQTs7d0JBQXZDLFNBQXVDLENBQUM7d0JBQ3hDLHFCQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFBOzt3QkFBdkMsU0FBdUMsQ0FBQzs7Ozs7S0FDekM7SUFFSyx1QkFBSSxHQUFWLFVBQVcsUUFBa0I7Ozs7OzRCQUMzQixxQkFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBQTs7d0JBQWhDLFNBQWdDLENBQUM7d0JBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO3dCQUNuQixJQUFJLG9CQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7Ozs7O0tBQ3pDO0lBRUQ7OztPQUdHO0lBQ0csOEJBQVcsR0FBakIsVUFBa0IsT0FBNkI7UUFBN0Isd0JBQUEsRUFBQSxZQUE2Qjs7Ozs7O3dCQUN2QyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FB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