diff --git a/npm/ng-packs/packages/schematics/src/utils/index.ts b/npm/ng-packs/packages/schematics/src/utils/index.ts index 7dbc286546..faec4abeed 100644 --- a/npm/ng-packs/packages/schematics/src/utils/index.ts +++ b/npm/ng-packs/packages/schematics/src/utils/index.ts @@ -1,6 +1,7 @@ export * from './angular'; export * from './ast'; export * from './common'; +export * from './namespace'; export * from './rule'; export * from './source'; export * from './text'; diff --git a/npm/ng-packs/packages/schematics/src/utils/namespace.ts b/npm/ng-packs/packages/schematics/src/utils/namespace.ts new file mode 100644 index 0000000000..bbee41aa6f --- /dev/null +++ b/npm/ng-packs/packages/schematics/src/utils/namespace.ts @@ -0,0 +1,15 @@ +export function parseNamespace(solution: string, type: string) { + let namespace = type + .split('.') + .slice(0, -1) + .join('.'); + + solution.split('.').reduceRight((acc, part) => { + acc = part + '.' + acc; + const regex = new RegExp('^' + acc + '(Controllers.)?'); + namespace = namespace.replace(regex, ''); + return acc; + }, ''); + + return namespace; +}