UNPKG

@ngxs/store

Version:
88 lines 4.12 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ngAdd = ngAdd; const schematics_1 = require("@angular-devkit/schematics"); const tasks_1 = require("@angular-devkit/schematics/tasks"); const dependencies_1 = require("@schematics/angular/utility/dependencies"); const lib_config_1 = require("../utils/common/lib.config"); const project_1 = require("../utils/project"); const add_declaration_1 = require("./add-declaration"); const project_2 = require("../utils/project"); const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils"); const versions = require('./../utils/versions.json'); function ngAdd(options) { return (host) => { const normalizedSchema = normalizeSchema(host, options); return (0, schematics_1.chain)([ addNgxsPackageToPackageJson(normalizedSchema), addDeclaration(normalizedSchema), normalizedSchema.skipInstall ? (0, schematics_1.noop)() : runNpmPackageInstall() ]); }; } function addNgxsPackageToPackageJson(schema) { return (host, context) => { const ngxsStoreVersion = versions['@ngxs/store']; if (!ngxsStoreVersion) { throw new schematics_1.SchematicsException('Could not resolve the version of "@ngxs/store"'); } schema.plugins.forEach(name => { const packageExists = (0, dependencies_1.getPackageJsonDependency)(host, name); if (packageExists === null) { (0, dependencies_1.addPackageJsonDependency)(host, { type: dependencies_1.NodeDependencyType.Default, name, version: ngxsStoreVersion }); context.logger.info(`✅️ Added "${name}" into ${dependencies_1.NodeDependencyType.Default}`); } else { context.logger.warn(`✅️ "${name}" already exists in the ${dependencies_1.NodeDependencyType.Default}`); } }); return host; }; } function runNpmPackageInstall() { return (_, context) => { context.addTask(new tasks_1.NodePackageInstallTask()); context.logger.info(`🔍 Installing packages...`); }; } function addDeclaration(schema) { return (host) => __awaiter(this, void 0, void 0, function* () { const mainFile = (0, project_1.getProjectMainFile)(host, schema.project); if (!mainFile) { return; } const isStandalone = (0, ng_ast_utils_1.isStandaloneApp)(host, mainFile); if (isStandalone) { return (0, add_declaration_1.addDeclarationToStandaloneApp)(schema); } else { return (0, add_declaration_1.addDeclarationToNonStandaloneApp)(schema); } }); } function normalizeSchema(host, schema) { var _a, _b; const projectName = (_a = (0, project_2.getProject)(host, schema.project)) === null || _a === void 0 ? void 0 : _a.name; if (!projectName) { throw new schematics_1.SchematicsException(`Project "${schema.project}" does not exist.`); } return { skipInstall: !!schema.skipInstall, plugins: (_b = Object.values(lib_config_1.LIBRARIES).filter(lib => { var _a; return (_a = schema.plugins) === null || _a === void 0 ? void 0 : _a.includes(lib); })) !== null && _b !== void 0 ? _b : [], project: projectName }; } //# sourceMappingURL=ng-add.factory.js.map