Skip to content

Commit 4d467ca

Browse files
authored
fix(cloud-assembly-schema): CcApiContextQuery does not compile with jsii-rosetta (#554)
Fixed the `CcApiContextQuery` to compile with jsii-rosetta. Added the previously missing build steps to ensure all examples compile. --- By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license
1 parent dda5e82 commit 4d467ca

File tree

10 files changed

+70
-30
lines changed

10 files changed

+70
-30
lines changed

.projenrc.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,6 +1344,7 @@ new JsiiBuild(cliLibAlpha, {
13441344
packageName: 'awscdkclilibalpha',
13451345
},
13461346
rosettaStrict: true,
1347+
rosettaDependencies: ['aws-cdk-lib@^2'],
13471348
stability: Stability.DEPRECATED,
13481349
composite: true,
13491350
excludeTypescript: CLI_LIB_EXCLUDE_PATTERNS,

packages/@aws-cdk/cli-lib-alpha/.gitignore

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/cli-lib-alpha/.projen/tasks.json

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/cli-lib-alpha/package.json

Lines changed: 6 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/cloud-assembly-schema/.gitignore

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/cloud-assembly-schema/.projen/tasks.json

Lines changed: 15 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/@aws-cdk/cloud-assembly-schema/lib/cloud-assembly/context-queries.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -363,14 +363,15 @@ export interface KeyContextQuery extends ContextLookupRoleOptions {
363363
* to generate a validly compiling example).
364364
*
365365
* @example
366+
* import { CcApiContextQuery } from '@aws-cdk/cloud-assembly-schema';
367+
*
366368
* const x: CcApiContextQuery = {
367369
* typeName: 'AWS::Some::Type',
368370
* expectedMatchCount: 'exactly-one',
369371
* propertiesToReturn: ['SomeProp'],
370372
* account: '11111111111',
371373
* region: 'us-east-1',
372374
* };
373-
* console.log(x);
374375
*/
375376
export interface CcApiContextQuery extends ContextLookupRoleOptions {
376377
/**

packages/@aws-cdk/cloud-assembly-schema/package.json

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
// Fixture intentionally empty
2+
3+
/// here

projenrc/jsii.ts

Lines changed: 26 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { yarn } from 'cdklabs-projen-project-types';
1+
import { Rosetta, yarn } from 'cdklabs-projen-project-types';
22
import * as pj from 'projen';
33
import { Stability } from 'projen/lib/cdk';
44
import { WorkflowSteps } from 'projen/lib/github';
@@ -109,10 +109,19 @@ export interface JsiiBuildOptions {
109109
/**
110110
* Whether to turn on 'strict' mode for Rosetta
111111
*
112-
* @default false
112+
* @default true
113113
*/
114114
readonly rosettaStrict?: boolean;
115115

116+
/**
117+
* Additional example dependencies
118+
*
119+
* @see https://github.com/aws/jsii-rosetta?tab=readme-ov-file#dependencies
120+
*
121+
* @default []
122+
*/
123+
readonly rosettaDependencies?: string[];
124+
116125
/**
117126
* Whether to turn on composite mode for the TypeScript project
118127
*
@@ -320,19 +329,26 @@ export class JsiiBuild extends pj.Component {
320329
this.addTargetToRelease('go', task, golang);
321330
}
322331

323-
const jsiiSuffix =
324-
options.jsiiVersion === '*'
325-
? // If jsiiVersion is "*", don't specify anything so the user can manage.
326-
''
327-
: // Otherwise, use `jsiiVersion` or fall back to `5.7`
328-
`@${options.jsiiVersion ?? '5.7'}`;
332+
// If jsiiVersion is "*", don't specify anything so the user can manage.
333+
// Otherwise, use `jsiiVersion` or fall back to `5.7`
334+
const jsiiVersion = (options.jsiiVersion === '*' ? undefined : options.jsiiVersion) ?? '5.7';
335+
const jsiiSuffix = jsiiVersion ? `@${jsiiVersion}` : '';
336+
329337
tsProject.addDevDeps(
330338
`jsii${jsiiSuffix}`,
331-
`jsii-rosetta${jsiiSuffix}`,
332339
'jsii-diff',
333340
'jsii-pacmak',
334341
);
335342

343+
new Rosetta(project as any, {
344+
strict: options.rosettaStrict ?? true,
345+
version: jsiiVersion,
346+
});
347+
if (options.rosettaDependencies?.length) {
348+
const deps = Object.fromEntries(options.rosettaDependencies.map(d => pj.Dependencies.parseDependency(d)).map(d => [d.name, d.version ?? '*']));
349+
tsProject.package.file.addOverride('jsiiRosetta.exampleDependencies', deps);
350+
}
351+
336352
tsProject.gitignore.exclude('.jsii', 'tsconfig.json');
337353
tsProject.npmignore?.include('.jsii');
338354

@@ -351,22 +367,11 @@ export class JsiiBuild extends pj.Component {
351367
tsProject.npmignore.readonly = false;
352368
}
353369

354-
const packageJson = tsProject.package.file;
355-
356370
if ((options.pypiClassifiers ?? []).length > 0) {
357-
packageJson.patch(
371+
tsProject.package.file.patch(
358372
pj.JsonPatch.add('/jsii/targets/python/classifiers', options.pypiClassifiers),
359373
);
360374
}
361-
362-
if (options.rosettaStrict) {
363-
packageJson.patch(
364-
pj.JsonPatch.add('/jsii/metadata', {}),
365-
pj.JsonPatch.add('/jsii/metadata/jsii', {}),
366-
pj.JsonPatch.add('/jsii/metadata/jsii/rosetta', {}),
367-
pj.JsonPatch.add('/jsii/metadata/jsii/rosetta/strict', true),
368-
);
369-
}
370375
}
371376

372377
/**

0 commit comments

Comments
 (0)