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
text/typescript
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();
};