in src/languages.ts [39:91]
export async function renderCode(options: RenderCodeOptions) {
const srcmakopts: Options = {
deps: cdkDeps.map(x => path.dirname(require.resolve(`${x}/package.json`))),
};
switch (options.language) {
case 'typescript':
await fs.mkdir(options.outdir, { recursive: true });
return fs.copyFile(path.join(options.srcdir, 'index.ts'), path.join(options.outdir, `${caseutil.header(options.typeName).toLowerCase()}.ts`));
case 'python':
srcmakopts.python = {
outdir: options.outdir,
moduleName: caseutil.snake(options.typeName),
};
break;
case 'csharp':
srcmakopts.csharp = {
outdir: options.outdir,
namespace: options.typeName, // already AWS::Foo::Bar
};
break;
case 'java':
if (!options.javaPackage) {
throw new Error('Java package name (`--java-package`) must be specified (e.g. "com.foo.bar.my.resource")');
}
srcmakopts.java = {
outdir: options.outdir,
package: options.javaPackage,
};
break;
case 'golang':
if (!options.goModule) {
throw new Error('Go module name (--go-module) is required (e.g. "github.com/foo/bar")');
}
srcmakopts.golang = {
outdir: options.outdir,
packageName: caseutil.lower(options.typeName, '-'),
moduleName: options.goModule,
};
break;
default:
throw new Error(`Unsupported language: ${options.language}`);
}
await srcmak(options.srcdir, srcmakopts);
}