|
1 | 1 | import * as path from 'node:path'; |
2 | | -import { createLibraryReadme, ModuleDefinition } from '@aws-cdk/pkglint'; |
| 2 | +import { createLibraryReadme } from '@aws-cdk/pkglint'; |
3 | 3 | import { topo } from '@aws-cdk/spec2cdk'; |
4 | 4 | import * as fs from 'fs-extra'; |
5 | 5 |
|
@@ -88,21 +88,23 @@ async function ensureInterfaceSubmoduleJsiiJsonRc(submodule: topo.ModuleMapEntry |
88 | 88 |
|
89 | 89 | const jsiirc = { |
90 | 90 | targets: { |
91 | | - ...combineLanguageNamespace('java', 'package', 'javaPackage'), |
92 | | - ...combineLanguageNamespace('dotnet', 'namespace', 'dotnetPackage'), |
93 | | - ...combineLanguageNamespace('python', 'module', 'pythonModuleName'), |
94 | | - // No Go... |
| 91 | + ...combineLanguageNamespace('java', 'package', submodule.definition?.javaPackage), |
| 92 | + ...combineLanguageNamespace('dotnet', 'namespace', submodule.definition?.dotnetPackage), |
| 93 | + ...combineLanguageNamespace('python', 'module', submodule.definition?.pythonModuleName), |
| 94 | + ...combineLanguageNamespace('go', 'packageName', submodule.definition?.moduleName.replace(/[^a-z0-9.]/gi, '')), |
95 | 95 | }, |
96 | 96 | }; |
97 | 97 | await fs.writeJson(jsiiRcPath, jsiirc, { spaces: 2 }); |
98 | 98 |
|
99 | | - function combineLanguageNamespace(language: string, whatName: string, k: keyof ModuleDefinition) { |
100 | | - const ns = `${interfacesModuleJsiiRc.targets[language][whatName]}.${lastPart(submodule.definition?.[k] ?? 'undefined')}`; |
101 | | - if (ns.includes('undefined')) { |
102 | | - throw new Error(`Could not build child namespace for language ${language} from ${JSON.stringify(interfacesModuleJsiiRc.targets[language])} and ${k} from ${JSON.stringify(submodule.definition)}`); |
| 99 | + function combineLanguageNamespace(language: string, whatName: string, fromDef?: string) { |
| 100 | + if (fromDef == null) { |
| 101 | + throw new Error(`Could not build child namespace for language ${language} from ${JSON.stringify(interfacesModuleJsiiRc.targets[language])} and definition ${JSON.stringify(submodule.definition)}`); |
103 | 102 | } |
104 | 103 |
|
105 | | - return { [language]: { [whatName]: ns } }; |
| 104 | + const nsParts = [interfacesModuleJsiiRc.targets[language][whatName], lastPart(fromDef)]; |
| 105 | + const nsSep = language === 'go' ? '' : '.'; |
| 106 | + |
| 107 | + return { [language]: { [whatName]: nsParts.join(nsSep) } }; |
106 | 108 | } |
107 | 109 | } |
108 | 110 |
|
|
0 commit comments