UNPKG

igniteui-angular-sovn

Version:

Ignite UI for Angular is a dependency-free Angular toolkit for building modern web apps

64 lines (55 loc) 2.3 kB
import * as path from 'path'; import { Tree } from '@angular-devkit/schematics'; import { addPackageToPkgJson } from '../utils/dependency-handler'; import { JsonArray, workspaces } from '@angular-devkit/core'; import { ProjectType } from '../utils/util'; const resetPackage = { 'minireset.css': '~0.0.4' }; export const cssImport = 'node_modules/minireset.css/minireset.css'; export const scssImport = `// CSS Reset, comment out if not required or using a different module\n` + `@import 'minireset.css/minireset';\n`; export const addResetCss = (workspace: workspaces.WorkspaceDefinition, host: Tree): boolean => { 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 = 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'] !== ProjectType.Application) { return; } if (build.options.styles) { build.options.styles = [cssImport, ...build.options.styles as JsonArray]; } else { build.options.styles = [cssImport]; } addPackage = resetPackage; break; default: break; } }); if (addPackage) { const name = Object.keys(resetPackage)[0]; status = addPackageToPkgJson(host, name, resetPackage[name], 'dependencies'); } return status; };