diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ-handlers/ts-paths-handler.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ-handlers/ts-paths-handler.ts new file mode 100644 index 0000000000000..17f8010631a91 --- /dev/null +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ-handlers/ts-paths-handler.ts @@ -0,0 +1,5 @@ +import { mult } from '@integ-handlers/util'; + +export async function handler(): Promise { + console.log(mult(3, 4)); // eslint-disable-line no-console +} diff --git a/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ.compilations.ts b/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ.compilations.ts index 591fd33d2e8fe..4705e1b1d5384 100644 --- a/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ.compilations.ts +++ b/packages/@aws-cdk-testing/framework-integ/test/aws-lambda-nodejs/test/integ.compilations.ts @@ -30,6 +30,18 @@ class TestStack extends Stack { }, runtime: STANDARD_NODEJS_RUNTIME, }); + + new lambda.NodejsFunction(this, 'ts-paths-handler-tsconfig', { + entry: path.join(__dirname, 'integ-handlers/ts-paths-handler.ts'), + bundling: { + minify: true, + sourceMap: true, + sourceMapMode: lambda.SourceMapMode.BOTH, + tsconfig: path.join(__dirname, '..', 'tsconfig-custom.json'), + preCompilation: true, + }, + runtime: STANDARD_NODEJS_RUNTIME, + }); } } diff --git a/packages/aws-cdk-lib/aws-lambda-nodejs/lib/util.ts b/packages/aws-cdk-lib/aws-lambda-nodejs/lib/util.ts index 3373f38aa80cb..471df0a66f3f7 100644 --- a/packages/aws-cdk-lib/aws-lambda-nodejs/lib/util.ts +++ b/packages/aws-cdk-lib/aws-lambda-nodejs/lib/util.ts @@ -186,6 +186,8 @@ export function getTsconfigCompilerOptions(tsconfigPath: string): string { } else if (type === 'object') { if (Array.isArray(value)) { compilerOptionsString += option + ' ' + value.join(',') + ' '; + } else { + compilerOptionsString += option + ' \'' + JSON.stringify(value) + '\' '; } } else { throw new Error(`Missing support for compilerOption: [${key}]: { ${type}, ${value}} \n`); diff --git a/packages/aws-cdk-lib/aws-lambda-nodejs/test/testtsconfig.json b/packages/aws-cdk-lib/aws-lambda-nodejs/test/testtsconfig.json index 91fa8fef40dd9..aef2439980a28 100644 --- a/packages/aws-cdk-lib/aws-lambda-nodejs/test/testtsconfig.json +++ b/packages/aws-cdk-lib/aws-lambda-nodejs/test/testtsconfig.json @@ -29,6 +29,7 @@ "stripInternal": false, "target": "ES2020", "composite": true, - "tsBuildInfoFile": "tsconfig.tsbuildinfo" + "tsBuildInfoFile": "tsconfig.tsbuildinfo", + "paths": { "@test/paths": ["./test/paths"] } } } diff --git a/packages/aws-cdk-lib/aws-lambda-nodejs/test/util.test.ts b/packages/aws-cdk-lib/aws-lambda-nodejs/test/util.test.ts index fab4541170a35..ea65c1ba0a8f3 100644 --- a/packages/aws-cdk-lib/aws-lambda-nodejs/test/util.test.ts +++ b/packages/aws-cdk-lib/aws-lambda-nodejs/test/util.test.ts @@ -220,6 +220,7 @@ describe('getTsconfigCompilerOptions', () => { '--noUnusedLocals', '--noUnusedParameters', '--outDir ./', + '--paths \'{"@test/paths":["./test/paths"]}\'', '--resolveJsonModule', '--rootDir ./', '--strict', @@ -252,6 +253,7 @@ describe('getTsconfigCompilerOptions', () => { '--noUnusedLocals', '--noUnusedParameters', '--outDir ./', + '--paths \'{"@test/paths":["./test/paths"]}\'', '--resolveJsonModule', '--rootDir ./', '--strict',