Skip to content

Commit

Permalink
Showing 17 changed files with 560 additions and 3,126 deletions.
3 changes: 2 additions & 1 deletion .gitattributes

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions .projen/deps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .projen/files.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 5 additions & 3 deletions .projenrc.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { UpgradeDependenciesSchedule } from 'projen/lib/javascript';
import { generateCdkConstructLibraryOptions } from './projenrc/cdk-constructlibrary-options';
import { generateCdkCommonOptions, generateCdkConstructLibraryOptions } from './projenrc/cdk-constructlibrary-options';
import { generateYarnMonorepoOptions } from './projenrc/yarn-monorepo-options';
import { CdklabsJsiiProject } from './src';

@@ -26,10 +26,12 @@ const project = new CdklabsJsiiProject({
peerDependencyOptions: {
pinnedDevDependency: false,
},
jsiiVersion: '~5.2',
typescriptVersion: '~5.2',
jsiiVersion: '~5.5',
typescriptVersion: '~5.5',
});
project.addPeerDeps('constructs@^10.0.0');

generateCdkCommonOptions(project);
generateYarnMonorepoOptions(project);
generateCdkConstructLibraryOptions(project);

3,300 changes: 319 additions & 2,981 deletions API.md

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

94 changes: 90 additions & 4 deletions projenrc/cdk-constructlibrary-options.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { PrimitiveType } from '@jsii/spec';
import { PrimitiveType, Property } from '@jsii/spec';
import { typescript } from 'projen';
import { JsiiInterface } from './jsii-extend-interface';

export function generateCdkConstructLibraryOptions(project: typescript.TypeScriptProject) {
new JsiiInterface(project, {
name: 'ModifiedProjenCdkConstructLibraryOptions',
fqn: 'cdklabs-projen-project-types.ModifiedProjenCdkConstructLibraryOptions',
filePath: 'src/cdk-options.ts',
name: 'CdkConstructLibraryOptions',
fqn: 'cdklabs-projen-project-types.CdkConstructLibraryOptions',
filePath: 'src/cdk-construct-library-options.ts',
extends: 'projen.awscdk.AwsCdkConstructLibraryOptions',
properties: [
...commonOptions,
{
name: 'minNodeVersion',
optional: true,
@@ -33,7 +34,92 @@ export function generateCdkConstructLibraryOptions(project: typescript.TypeScrip
default: '\'lts/*\'',
},
},
{
name: 'rosettaOptions',
optional: true,
type: { fqn: 'cdklabs-projen-project-types.RosettaOptions' },
docs: {
summary: 'Options for rosetta:extract task',
},
},
],
});
}

const commonOptions: Property[] = [
{
name: 'private',
optional: true,
type: { primitive: PrimitiveType.Boolean },
docs: {
summary: 'Whether or not this package is private. ',
remarks: 'Setting this variable to true means that your project is created with sane defaults for private repositories.',
default: 'true',
},
},
{
name: 'enablePRAutoMerge',
optional: true,
type: { primitive: PrimitiveType.Boolean },
docs: {
summary: 'Whether to enable the auto merge workflow for PRs.',
remarks: 'This will enable the auto merge workflow as well as the merge queue',
default: '- true for private projects, false otherwise',
},
},
{
name: 'ghAutoMergeOptions',
optional: true,
type: { fqn: 'cdklabs-projen-project-types.AutoMergeOptions' },
docs: {
summary: 'Options for the GitHub auto merge workflow.',
remarks: 'That is the workflow that turns on auto merge on all PRs.',
default: '- default options',
},
},
{
name: 'setNodeEngineVersion',
optional: true,
type: { primitive: PrimitiveType.Boolean },
docs: {
summary: 'cdklabs-projen-project-types.AutoMergeOptions',
remarks: "Set this to `false` if a package did not enforce this previously and we don't want to change this for now.",
default: 'true',
},
},
{
name: 'upgradeCdklabsProjenProjectTypes',
optional: true,
type: { primitive: PrimitiveType.Boolean },
docs: {
summary: 'Whether to enable the separate workflow to upgrade the cdklabs-projen-project-types dependencies.',
default: 'true',
},
},
{
name: 'upgradeRuntimeDepsAsFix',
optional: true,
type: { primitive: PrimitiveType.Boolean },
docs: {
summary: 'Whether to have a separate workflow to upgrade runtime deps and mark this PR as fix.',
default: 'true',
},
},
{
name: 'tenancy',
optional: true,
type: { fqn: 'cdklabs-projen-project-types.OrgTenancy' },
docs: {
summary: 'The organization this project is part of.',
default: '- Auto detected from package name',
},
},
];

export function generateCdkCommonOptions(project: typescript.TypeScriptProject) {
new JsiiInterface(project, {
name: 'CdkCommonOptions',
filePath: 'src/cdk-common-options.ts',
properties: commonOptions,
});
}
47 changes: 47 additions & 0 deletions src/cdk-common-options.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

48 changes: 46 additions & 2 deletions src/cdk-options.ts → src/cdk-construct-library-options.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 4 additions & 19 deletions src/cdk.ts
Original file line number Diff line number Diff line change
@@ -1,25 +1,10 @@
import { awscdk, cdk, typescript } from 'projen';
import { ModifiedProjenCdkConstructLibraryOptions } from './cdk-options';
import { CdkCommonOptions, configureCommonFeatures, withCommonOptionsDefaults } from './common-options';
import { CdkCommonOptions } from './cdk-common-options';
import { CdkConstructLibraryOptions } from './cdk-construct-library-options';
import { configureCommonFeatures, withCommonOptionsDefaults } from './common-options';
import { IntegRunner } from './integ-runner';
import { Rosetta, RosettaOptions } from './rosetta';
import { Rosetta } from './rosetta';

/**
* Options for CdkConstructLibrary
*
* `ModifiedProjenCdkConstructLibraryOptions` is generated automatically from upstream
* by copying the properties from projen `CdkConstructLibraryOptions`, and modifying some
* of them.
*
* We have to do it this way because jsii doesn't allow overwriting properties
* by redeclaring them here, and we need to change the documentation of some props.
*/
export interface CdkConstructLibraryOptions extends ModifiedProjenCdkConstructLibraryOptions, CdkCommonOptions {
/**
* Options for rosetta:extract task
*/
readonly rosettaOptions?: RosettaOptions;
}

/**
* Create a Cdk Construct Library Project
Loading

0 comments on commit 695acd9

Please sign in to comment.