UNPKG

@syncfusion/ej2-ng-base

Version:

A common package of Essential JS 2 base Angular libraries, methods and class definitions

70 lines (69 loc) 2.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const schematics_1 = require("@angular-devkit/schematics"); const tasks_1 = require("@angular-devkit/schematics/tasks"); const package_1 = require("./../utils/package"); const ast_1 = require("../utils/ast"); const config_1 = require("@schematics/angular/utility/config"); const get_project_1 = require("../utils/get-project"); function addEJ2ToPackageJson(libOptions) { return (host) => { package_1.addEJ2PackageToPackageJson(host, 'dependencies', libOptions.pkgName, libOptions.pkgVer); return host; }; } /** * Install the packages */ function installNodePackages() { return (host, context) => { context.addTask(new tasks_1.NodePackageInstallTask()); return host; }; } /** * Install function to accept the schema, package name and version */ function install(options, libOptions) { return schematics_1.chain([ options && options.skipPackageJson ? schematics_1.noop() : addEJ2ToPackageJson(libOptions), (options && !options.skipPackageJson) ? installNodePackages() : schematics_1.noop(), addEJ2PackageRootConfig(options, libOptions) ]); } exports.install = install; function validateEJ2Modules(moduleName, libOptions) { return libOptions.moduleName.split(',').filter((module) => { return ((module.trim().split('Module'))[0].toLowerCase() === moduleName.toLowerCase()); }); } /** * Add browser animation module to app.module */ function addEJ2PackageRootConfig(options, libOptions) { return (host) => { const workspace = config_1.getWorkspace(host); const project = get_project_1.getProjectFromWorkspace(workspace, options.project); let validModules; let availableModules = libOptions.moduleName.replace(/Module/g, '').trim(); if (options.modules !== '') { let preferredModule = []; options.modules.split(',').forEach((module) => { let validatedModule = (validateEJ2Modules(module.trim(), libOptions)).toString().trim(); if (validatedModule === '') { console.log('\x1b[31m%s\x1b[0m', 'The ' + module + 'module is not part of the' + ' package, ' + libOptions.pkgName + '. The available modules are ' + availableModules + '.'); } else { preferredModule.push(validatedModule); } }); validModules = preferredModule.toString().replace(/,/g, ', '); } else { validModules = libOptions.moduleName; } ast_1.addModuleImportToRootModule(host, validModules, libOptions.pkgName, project); return host; }; }