Browse Source

Merge pull request #16928 from abpframework/issue/16743

Exract generic as array (or not)
pull/16972/head
Masum ULU 3 years ago
committed by GitHub
parent
commit
7a72719820
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      npm/ng-packs/packages/schematics/src/utils/generics.ts
  2. 3
      npm/ng-packs/packages/schematics/src/utils/rule.ts
  3. 6
      npm/ng-packs/packages/schematics/src/utils/type.ts

8
npm/ng-packs/packages/schematics/src/utils/generics.ts

@ -67,21 +67,23 @@ export function generateRefWithPlaceholders(sourceType: string) {
}
export function extractSimpleGenerics(sourceType: string) {
const { identifier, generics } = extractGenerics(sourceType);
const { identifier, generics, array } = extractGenerics(sourceType);
return {
identifier: getLastSegment(identifier),
generics: generics.map(getLastSegment),
array
};
}
export function extractGenerics(sourceType: string) {
const isArray = /\[\]$/.test(sourceType);
const regex = /(?<identifier>[^<]+)(<(?<generics>.+)>)?/g;
const { identifier = '', generics = '' } = regex.exec(sourceType)?.groups ?? {};
return {
return {
identifier,
generics: generics.split(/,\s*/).filter(Boolean),
array: isArray ? '[]':''
};
}

3
npm/ng-packs/packages/schematics/src/utils/rule.ts

@ -25,6 +25,9 @@ export function applyWithOverwrite(source: Source, rules: Rule[]): Rule {
export function mergeAndAllowDelete(host: Tree, rule: Rule) {
return async (tree: Tree, context: SchematicContext) => {
const nextTree = await callRule(rule, tree, context).toPromise();
if(!nextTree){
return;
}
host.merge(nextTree, MergeStrategy.AllowDeleteConflict);
};
}

6
npm/ng-packs/packages/schematics/src/utils/type.ts

@ -14,10 +14,8 @@ export function createTypeSimplifier() {
);
type = /any</.test(type) ? 'any' : type;
const { identifier, generics } = extractSimpleGenerics(type);
return generics.length ? `${identifier}<${generics.join(', ')}>` : identifier;
const { identifier, generics, array} = extractSimpleGenerics(type);
return generics.length ? `${identifier}<${generics.join(', ')}>${array}` : identifier;
});
return (type: string) => {

Loading…
Cancel
Save