UNPKG

igniteui-angular-sovn

Version:

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

84 lines (75 loc) 3.13 kB
import { Rule, SchematicContext, Tree } from "@angular-devkit/schematics"; import { getProjects, getWorkspace } from "../common/util"; import { UpdateChanges } from "../common/UpdateChanges"; const version = "8.2.6"; export default (): Rule => async (host: Tree, context: SchematicContext) => { const themes = [ "$_base-dark-grid-pagination", "$_dark-grid-pagination", "$_dark-fluent-grid-pagination", "$_light-grid-pagination", "$_fluent-grid-pagination", "$_round-shape-grid-pagination", "$_default-shape-grid-pagination", "$_square-shape-grid-pagination", ]; const newThemes = [ "$_base-dark-pagination", "$_dark-pagination", "$_dark-fluent-pagination", "$_light-pagination", "$_fluent-pagination", "$_round-shape-pagination", "$_default-shape-pagination", "$_square-shape-pagination", ]; const gridPaginatorComponentImport = "~igniteui-angular-sovn/lib/core/styles/components/grid-paginator/grid-paginator-component"; const gridPaginatorThemeImport = "~igniteui-angular-sovn/lib/core/styles/components/grid-paginator/grid-paginator-theme"; const paginatorComponentImport = "~igniteui-angular-sovn/lib/core/styles/components/paginator/paginator-component"; const paginatorThemeImport = "~igniteui-angular-sovn/lib/core/styles/components/paginator/paginator-theme"; const config = getWorkspace(host); const projects = getProjects(config); context.logger.info( `Applying migration for Ignite UI for Angular to version ${version}` ); const update = new UpdateChanges(__dirname, host, context); for (const proj of projects) { const dir = host.getDir(proj.sourceRoot); dir.visit((path, entry) => { if (path.endsWith(".scss")) { let content = entry.content.toString(); if (content.match(/\bigx-grid-paginator\b/g)) { content = content.replace( /\bigx-grid-paginator\b/g, "igx-paginator" ); } themes.forEach((n, i) => { if (content.indexOf(n) !== -1) { content = content.split(n).join(newThemes[i]); } }); if (content.indexOf(gridPaginatorComponentImport) !== -1) { content = content.replace( gridPaginatorComponentImport, paginatorComponentImport ); host.overwrite(path, content); } if (content.indexOf(gridPaginatorThemeImport) !== -1) { content = content.replace( gridPaginatorThemeImport, paginatorThemeImport ); host.overwrite(path, content); } host.overwrite(path, content); } }); } update.applyChanges(); };