Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
if (typeof(x) === 'function') {
throw new Error(`function?`);
}
if (Array.isArray(x)) {
return x.map(i => capitalizeKeys(i));
}
if (typeof(x) === 'object') {
const ret: { [key: string]: any } = {};
for (const [ key, value ] of Object.entries(x)) {
let newKey;
if (key === 'Ref' || key.startsWith('Fn::')) {
newKey = key;
} else {
newKey = toCamelCase(key);
}
ret[newKey] = capitalizeKeys(value);
}
return ret;
}
// primitive
return x;
}
export async function dasmTypeScript(template: Template, options: DisassemblerOptions = {}) {
const definitions = new Array();
for (const [ id, resource ] of Object.entries(template.Resources || {})) {
const type = resource.Type;
const props = resource.Properties || {};
definitions.push({
id,
...toCfnClassName(type),
props: capitalizeKeys(props)
});
}
const code = new CodeMaker();
const outFile = 'out.ts';
code.openFile(outFile);
const timestamp = options.timestamp !== undefined ? options.timestamp : true;
const suffix = timestamp ? `at ${new Date().toISOString()}` : '';
code.line(`// generated by cdk-dasm ${suffix}`);
code.line();
//
// imports
//
code.line(`import { Stack, StackProps, Construct, Fn } from '@aws-cdk/core';`);