in src/module-utils.ts [33:54]
export function module(type: reflect.Type): ImportedModule {
const parts = analyzeTypeName(type);
if (parts.submoduleNameParts.length > 0) {
const specialNameKey = [parts.assemblyName, ...parts.submoduleNameParts].join('.');
const importName = SPECIAL_NAMESPACE_IMPORT_NAMES[specialNameKey] ?? parts.submoduleNameParts.join('.');
return {
importName: escapeIdentifier(importName.replace(/^aws_/g, '').replace(/[^a-z0-9_]/g, '_')),
moduleName: parts.assemblyName,
submoduleName: parts.submoduleNameParts.join('.'),
};
}
// Split '@aws-cdk/aws-s3' into ['@aws-cdk', 'aws-s3']
const slashParts = type.assembly.name.split('/');
const nonNamespacedPart = SPECIAL_PACKAGE_ROOT_IMPORT_NAMES[parts.assemblyName] ?? slashParts[1] ?? slashParts[0];
return {
importName: escapeIdentifier(nonNamespacedPart.replace(/^aws-/g, '').replace(/[^a-z0-9_]/g, '_')),
moduleName: type.assembly.name,
};
}