igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
63 lines (62 loc) • 2.59 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const path = require("path");
const config_1 = require("@schematics/angular/utility/config");
const workspace_models_1 = require("@schematics/angular/utility/workspace-models");
const resetPackage = { 'minireset.css': '~0.0.4' };
exports.cssImport = 'node_modules/minireset.css/minireset.css';
exports.scssImport = `// CSS Reset, comment out if not required or using a different module\n`
+ `@import '~minireset.css/minireset';\n`;
function addResetCss(host) {
const config = config_1.getWorkspace(host);
const project = config.projects[config.defaultProject];
let addPackage;
const styleExts = ['scss', 'sass', 'css', 'less', 'styl'];
const styleExt = styleExts.find(ext => host.exists(path.posix.join(project.sourceRoot, `styles.${ext}`)));
if (!styleExt) {
return false;
}
const stylesFile = path.posix.join(project.sourceRoot, `styles.${styleExt}`);
switch (styleExt) {
case 'sass':
case 'scss':
let content = host.read(stylesFile).toString();
if (content.indexOf(`~minireset.css/minireset`) === -1) {
content = exports.scssImport + content;
host.overwrite(stylesFile, content);
addPackage = resetPackage;
}
break;
case 'css':
case 'less':
case 'styl':
if (!project.architect ||
!project.architect.build ||
project.projectType !== workspace_models_1.ProjectType.Application) {
return false;
}
if (project.architect.build.options.styles) {
project.architect.build.options.styles =
[exports.cssImport, ...project.architect.build.options.styles];
}
else {
project.architect.build.options.styles = [exports.cssImport];
}
host.overwrite(config_1.getWorkspacePath(host), JSON.stringify(config, null, 2));
addPackage = resetPackage;
break;
default:
break;
}
if (addPackage) {
const targetFile = 'package.json';
if (host.exists(targetFile)) {
const pkgJson = JSON.parse(host.read(targetFile).toString());
pkgJson.dependencies = Object.assign({}, addPackage, pkgJson.dependencies);
host.overwrite(targetFile, JSON.stringify(pkgJson, null, 2) + '\n');
return true;
}
}
return false;
}
exports.addResetCss = addResetCss;
;