igniteui-angular
Version:
Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps
58 lines (57 loc) • 2.35 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.addResetCss = exports.scssImport = exports.cssImport = void 0;
const path = require("path");
const dependency_handler_1 = require("../utils/dependency-handler");
const util_1 = require("../utils/util");
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`;
const addResetCss = (workspace, host) => {
let status = false;
let addPackage;
const styleExts = ['scss', 'sass', 'css', 'less', 'styl'];
workspace.projects.forEach(project => {
const styleExt = styleExts.find(ext => host.exists(path.posix.join(project.sourceRoot, `styles.${ext}`)));
if (!styleExt) {
return;
}
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':
const build = project.targets.get('build');
if (!build || project.extensions['projectType'] !== util_1.ProjectType.Application) {
return;
}
if (build.options.styles) {
build.options.styles =
[exports.cssImport, ...build.options.styles];
}
else {
build.options.styles = [exports.cssImport];
}
addPackage = resetPackage;
break;
default:
break;
}
});
if (addPackage) {
const name = Object.keys(resetPackage)[0];
status = (0, dependency_handler_1.addPackageToPkgJson)(host, name, resetPackage[name], 'dependencies');
}
return status;
};
exports.addResetCss = addResetCss;
;