@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
JavaScript
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;
};
}
;