UNPKG

ngx-library-assets

Version:

Angular builders to include assets from libraries into applications

78 lines 3.83 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendAssets = void 0; var core_1 = require("@angular-devkit/core"); var node_1 = require("@angular-devkit/core/node"); var fs = require("fs"); var path = require("path"); var rxjs_1 = require("rxjs"); var operators_1 = require("rxjs/operators"); function getWorkspace(context) { return core_1.workspaces.readWorkspace(core_1.normalize(context.workspaceRoot), core_1.workspaces.createWorkspaceHost(new node_1.NodeJsSyncHost()), core_1.workspaces.WorkspaceFormat.JSON).then(function (v) { return v.workspace; }); } function extendAssets(options, context) { return rxjs_1.from(getWorkspace(context)) .pipe(operators_1.map(function (workspace) { var projectName = context.target ? context.target.project : workspace.extensions['defaultProject']; var projectRoot = core_1.normalize(workspace.projects.get(projectName).root); var includeFilePath = core_1.getSystemPath(core_1.normalize(path.join(projectRoot, core_1.normalize('src/assets/include.json')))); var newOptions = __assign({}, options); if (fs.existsSync(includeFilePath)) { context.logger.info('Found include.json file, adding content to assets'); try { var assets = JSON.parse(fs.readFileSync(includeFilePath, 'utf-8')); newOptions = __assign(__assign({}, options), { assets: options.assets.concat(assets.libs .filter(function (library) { if (!Array.from(workspace.projects.keys()).includes(library.name)) { context.logger.warn("WARN: A project named '" + library.name + "' does not exist in this workspace."); return false; } else { return true; } }) .map(function (library) { var libraryRoot = workspace.projects.get(library.name).sourceRoot; var subFolder = !library.assetsRoot ? "/" + library.name : ''; context.logger.info("Adding library " + library.name + " (" + libraryRoot + "/assets -> ./assets" + subFolder + ")"); return [ { glob: '**/*', input: "./" + libraryRoot + "/assets/i18n", output: "./assets/" + library.name + "/i18n" }, { glob: '**/*', input: "./" + libraryRoot + "/assets", output: "./assets" + subFolder, ignore: ['i18n/**/*'] } ]; }) .reduce(function (x, c) { return x.concat(c); }, [])) }); } catch (e) { context.logger.error("The file " + includeFilePath + " is incorrectly formatted."); context.logger.error(e); } } else { context.logger.info('No include.json file found.'); } return newOptions; })) .toPromise(); } exports.extendAssets = extendAssets; //# sourceMappingURL=extend-assets.js.map