UNPKG

@skyux/packages

Version:

Handles the `ng update` command for SKY UX component libraries.

60 lines 2.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = 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 workspace_1 = require("@schematics/angular/utility/workspace"); const version_1 = require("../../version"); const workspace_check_1 = require("../rules/workspace-check/workspace-check"); const get_angular_major_version_1 = require("../utility/get-angular-major-version"); function ngAdd() { return (_, context) => { context.addTask(new tasks_1.NodePackageInstallTask()); const rules = [ (0, workspace_check_1.workspaceCheck)(), addDependencies(), configureWorkspaceIfSingleProject(), ]; return (0, schematics_1.chain)(rules); }; } function configureWorkspaceIfSingleProject() { return async (tree, context) => { const workspace = await (0, workspace_1.getWorkspace)(tree); if (workspace.projects.size === 1) { const project = workspace.projects.keys().next().value; return (0, schematics_1.schematic)('add-skyux-to-project', { project }); } else { context.logger.info('Multiple projects detected in workspace. To configure SKY UX for a specific project, run: ng generate @skyux/packages:add-skyux-to-project --project <project-name>'); } return tree; }; } function addDependencies() { return (tree) => { const packageNames = [ '@skyux/assets', '@skyux/core', '@skyux/i18n', '@skyux/theme', ]; for (const packageName of packageNames) { (0, dependencies_1.addPackageJsonDependency)(tree, { type: dependencies_1.NodeDependencyType.Default, name: packageName, version: `^${version_1.VERSION.full}`, overwrite: true, }); } const angularVersion = (0, get_angular_major_version_1.getAngularMajorVersion)(); (0, dependencies_1.addPackageJsonDependency)(tree, { type: dependencies_1.NodeDependencyType.Default, name: '@angular/cdk', version: `^${angularVersion}.0.0`, overwrite: true, }); }; } //# sourceMappingURL=ng-add.schematic.js.map