UNPKG

angular-datatables

Version:
70 lines 3.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const schematics_1 = require("@angular-devkit/schematics"); const utils_1 = require("./utils"); const tasks_1 = require("@angular-devkit/schematics/tasks"); const style_options_1 = require("./models/style-options"); function default_1(_options) { return schematics_1.chain([ addPackageJsonDependencies(_options), installPackageJsonDependencies(), updateAngularJsonFile(_options) ]); } exports.default = default_1; function addPackageJsonDependencies(options) { return (tree, context) => { // Update package.json const styleDeps = style_options_1.ADT_SUPPORTED_STYLES.find(e => e.style == options.style); const dependencies = [ { version: '^3.4.1', name: 'jquery', isDev: false }, { version: '^1.10.20', name: 'datatables.net', isDev: false }, { version: '^3.3.33', name: '@types/jquery', isDev: true }, { version: '^1.10.18', name: '@types/datatables.net', isDev: true } ]; if (styleDeps) { if (styleDeps.style != style_options_1.ADTStyleOptions.DT) context.logger.log('warn', 'Your project needs Bootstrap CSS installed and configured for changes to take affect.'); styleDeps.packageJson.forEach(e => dependencies.push(e)); } dependencies.forEach(dependency => { const result = utils_1.addPackageToPackageJson(tree, dependency.name, dependency.version, dependency.isDev); if (result) { context.logger.log('info', `✅️ Added "${dependency.name}" into "${dependency.isDev ? 'devDependencies' : 'dependencies'}"`); } else { context.logger.log('info', `ℹ️ Skipped adding "${dependency.name}" into package.json`); } }); return tree; }; } function installPackageJsonDependencies() { return (host, context) => { context.addTask(new tasks_1.NodePackageInstallTask()); context.logger.log('info', `🔍 Installing packages...`); return host; }; } function updateAngularJsonFile(options) { return (tree, context) => { const styleDeps = style_options_1.ADT_SUPPORTED_STYLES.find(e => e.style == options.style); const assets = [ { path: 'node_modules/jquery/dist/jquery.js', target: 'scripts', fancyName: 'jQuery Core' }, { path: 'node_modules/datatables.net/js/jquery.dataTables.js', target: 'scripts', fancyName: 'DataTables.net Core JS' }, ]; if (styleDeps) { styleDeps.angularJson.forEach(e => assets.push(e)); } assets.forEach(asset => { const result = utils_1.addAssetToAngularJson(tree, asset.target, asset.path); if (result) { context.logger.log('info', `✅️ Added "${asset.fancyName}" into angular.json`); } else { context.logger.log('info', `ℹ️ Skipped adding "${asset.fancyName}" into angular.json`); } }); }; } //# sourceMappingURL=index.js.map