diff --git a/npm/ng-packs/packages/schematics/src/utils/type.ts b/npm/ng-packs/packages/schematics/src/utils/type.ts index 81dc412f01..b365e0e4ad 100644 --- a/npm/ng-packs/packages/schematics/src/utils/type.ts +++ b/npm/ng-packs/packages/schematics/src/utils/type.ts @@ -11,17 +11,26 @@ export function createTypeSimplifier(solution: string) { const solutionRegex = new RegExp(solution.replace(/\./g, `\.`) + `\.`); const voloRegex = /^Volo\.(Abp\.?)(Application\.?)/; - return (type: string) => { - type = type.replace(voloRegex, ''); - type = type.replace(solutionRegex, ''); - type = type.replace(optionalRegex, ''); - type = type.replace( - /System\.([0-9A-Za-z]+)/g, - (_, match) => SYSTEM_TYPES.get(match) ?? strings.camelize(match), - ); - type = type.split('.').pop()!; - type = type.startsWith('[') ? type.slice(1, -1) + '[]' : type; - return type; + return (originalType: string) => { + const union = originalType + .replace(/^{/, '') + .replace(/}$/, '') + .split(':'); + return union + .map(type => { + type = type.startsWith('[') ? type.slice(1, -1) + '[]' : type; + type = type.replace(voloRegex, ''); + type = type.replace(solutionRegex, ''); + type = type.replace(optionalRegex, ''); + type = type.replace( + /System\.([0-9A-Za-z]+)/g, + (_, match) => SYSTEM_TYPES.get(match) ?? strings.camelize(match), + ); + type = type.split('.').pop()!; + console.log(type); + return type; + }) + .join(' | '); }; }