angular-datatables
Version:
Angular directive for DataTables
69 lines • 3.33 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var schematics_1 = require("@angular-devkit/schematics");
var utils_1 = require("./utils");
var tasks_1 = require("@angular-devkit/schematics/tasks");
var style_options_1 = require("./models/style-options");
function default_1(_options) {
return (0, schematics_1.chain)([
addPackageJsonDependencies(_options),
installPackageJsonDependencies(),
updateAngularJsonFile(_options)
]);
}
exports.default = default_1;
function addPackageJsonDependencies(options) {
return function (tree, context) {
// Update package.json
var styleDeps = style_options_1.ADT_SUPPORTED_STYLES.find(function (e) { return e.style == options.style; });
var dependencies = [
{ version: '^3.6.0', name: 'jquery', isDev: false },
{ version: '^2.0.3', name: 'datatables.net', fancyName: 'datatables.net (v2)', isDev: false },
{ version: '^3.5.9', name: '@types/jquery', 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(function (e) { return dependencies.push(e); });
}
dependencies.forEach(function (dependency) {
var result = (0, utils_1.addPackageToPackageJson)(tree, dependency.name, dependency.version, dependency.isDev);
if (result) {
context.logger.log('info', "\u2705\uFE0F Added \"".concat(dependency.fancyName || dependency.name, "\" into \"").concat(dependency.isDev ? 'devDependencies' : 'dependencies', "\""));
}
else {
context.logger.log('info', "\u2139\uFE0F Skipped adding \"".concat(dependency.name, "\" into package.json"));
}
});
return tree;
};
}
function installPackageJsonDependencies() {
return function (host, context) {
context.addTask(new tasks_1.NodePackageInstallTask());
context.logger.log('info', "\uD83D\uDD0D Installing packages...");
return host;
};
}
function updateAngularJsonFile(options) {
return function (tree, context) {
var styleDeps = style_options_1.ADT_SUPPORTED_STYLES.find(function (e) { return e.style == options.style; });
var assets = [
{ path: 'node_modules/jquery/dist/jquery.min.js', target: 'scripts', fancyName: 'jQuery Core' },
{ path: 'node_modules/datatables.net/js/dataTables.min.js', target: 'scripts', fancyName: 'DataTables.net Core JS' },
];
if (styleDeps) {
styleDeps.angularJson.forEach(function (e) { return assets.push(e); });
}
assets.forEach(function (asset) {
var result = (0, utils_1.addAssetToAngularJson)(tree, asset.target, asset.path);
if (result) {
context.logger.log('info', "\u2705\uFE0F Added \"".concat(asset.fancyName, "\" into angular.json"));
}
else {
context.logger.log('info', "\u2139\uFE0F Skipped adding \"".concat(asset.fancyName, "\" into angular.json"));
}
});
};
}
//# sourceMappingURL=index.js.map
;