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