projen 0.31.18 → 0.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +2150 -444
- package/API.md +735 -78
- package/README.md +1 -0
- package/docs/aws-lambda.md +103 -0
- package/docs/programmatic-api.md +56 -0
- package/lib/awscdk/auto-discover.d.ts +46 -0
- package/lib/awscdk/auto-discover.js +46 -0
- package/lib/awscdk/cdk-config.d.ts +103 -0
- package/lib/awscdk/cdk-config.js +56 -0
- package/lib/awscdk/cdk-tasks.d.ts +38 -0
- package/lib/awscdk/cdk-tasks.js +39 -0
- package/lib/awscdk/index.d.ts +5 -0
- package/lib/awscdk/index.js +18 -0
- package/lib/awscdk/internal.d.ts +8 -0
- package/lib/awscdk/internal.js +26 -0
- package/lib/awscdk/java-app.d.ts +92 -0
- package/lib/awscdk/java-app.js +90 -0
- package/lib/awscdk/lambda-function.d.ts +146 -0
- package/lib/awscdk/lambda-function.js +160 -0
- package/lib/awscdk-app-ts.d.ts +22 -40
- package/lib/awscdk-app-ts.js +21 -46
- package/lib/awscdk-construct.d.ts +15 -58
- package/lib/awscdk-construct.js +13 -62
- package/lib/cdk8s-app-ts.js +1 -1
- package/lib/cdk8s-construct.js +1 -1
- package/lib/cdktf-construct.js +1 -1
- package/lib/cli/cmds/new.js +23 -65
- package/lib/cli/util.d.ts +19 -0
- package/lib/cli/util.js +52 -0
- package/lib/common.js +6 -2
- package/lib/component.js +1 -1
- package/lib/construct-lib.js +1 -1
- package/lib/deps/dependencies.js +1 -1
- package/lib/dev-env.js +1 -1
- package/lib/docker-compose.js +2 -2
- package/lib/eslint.d.ts +18 -0
- package/lib/eslint.js +17 -5
- package/lib/file.js +1 -1
- package/lib/git/gitattributes.js +1 -1
- package/lib/github/auto-approve.js +1 -1
- package/lib/github/auto-merge.js +1 -1
- package/lib/github/dependabot.js +1 -1
- package/lib/github/github.js +1 -1
- package/lib/github/mergify.js +1 -1
- package/lib/github/pr-template.js +1 -1
- package/lib/github/stale.js +1 -1
- package/lib/github/task-workflow.js +1 -1
- package/lib/github/workflows.js +4 -5
- package/lib/gitpod.js +1 -1
- package/lib/ignore-file.js +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/ini.js +1 -1
- package/lib/inventory.d.ts +15 -3
- package/lib/inventory.js +53 -29
- package/lib/java/java-project.d.ts +28 -14
- package/lib/java/java-project.js +3 -2
- package/lib/java/junit.js +1 -1
- package/lib/java/maven-compile.js +1 -1
- package/lib/java/maven-packaging.js +1 -1
- package/lib/java/maven-sample.js +1 -1
- package/lib/java/pom.js +1 -1
- package/lib/java/projenrc.js +1 -1
- package/lib/javascript/bundler.d.ts +144 -0
- package/lib/javascript/bundler.js +93 -0
- package/lib/javascript/index.d.ts +1 -0
- package/lib/javascript/index.js +2 -1
- package/lib/javascript/npm-config.js +1 -1
- package/lib/javascript/projenrc.js +3 -3
- package/lib/javascript/render-options.d.ts +5 -0
- package/lib/javascript/render-options.js +24 -21
- package/lib/jest.js +1 -1
- package/lib/jsii-project.js +1 -1
- package/lib/json/projenrc.js +1 -1
- package/lib/json/run-projenrc.task.js +6 -11
- package/lib/json.js +1 -1
- package/lib/license.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/makefile.js +1 -1
- package/lib/node-package.js +1 -1
- package/lib/node-project.d.ts +11 -1
- package/lib/node-project.js +9 -4
- package/lib/object-file.js +1 -1
- package/lib/project.js +2 -2
- package/lib/projects.d.ts +80 -0
- package/lib/projects.js +81 -0
- package/lib/python/pip.js +1 -1
- package/lib/python/poetry.js +2 -2
- package/lib/python/projenrc.js +4 -5
- package/lib/python/pytest.js +1 -1
- package/lib/python/python-project.js +1 -1
- package/lib/python/python-sample.js +1 -1
- package/lib/python/requirements-file.js +1 -1
- package/lib/python/setuppy.js +1 -1
- package/lib/python/setuptools.js +1 -1
- package/lib/python/venv.js +1 -1
- package/lib/readme.js +1 -1
- package/lib/release/publisher.js +1 -1
- package/lib/release/release-trigger.js +1 -1
- package/lib/release/release.js +1 -1
- package/lib/sample-file.js +2 -2
- package/lib/semver.js +1 -1
- package/lib/source-code.js +1 -1
- package/lib/tasks/runtime.js +1 -1
- package/lib/tasks/task.js +1 -1
- package/lib/tasks/tasks.js +1 -1
- package/lib/textfile.js +1 -1
- package/lib/toml.js +1 -1
- package/lib/typescript/projenrc.js +3 -3
- package/lib/typescript-config.js +1 -1
- package/lib/typescript.js +3 -3
- package/lib/upgrade-dependencies.js +2 -2
- package/lib/util/synth.d.ts +4 -0
- package/lib/util/synth.js +35 -2
- package/lib/util.js +11 -3
- package/lib/version.js +1 -1
- package/lib/vscode/devcontainer.js +1 -1
- package/lib/vscode/launch-config.js +1 -1
- package/lib/vscode/vscode.js +1 -1
- package/lib/web/next.js +3 -3
- package/lib/web/postcss.js +1 -1
- package/lib/web/react.js +4 -4
- package/lib/web/tailwind.js +1 -1
- package/lib/xmlfile.js +1 -1
- package/lib/yaml.js +1 -1
- package/node_modules/case/LICENSE +22 -0
- package/node_modules/case/README.md +139 -0
- package/node_modules/case/case.d.ts +43 -0
- package/node_modules/case/dist/Case.js +171 -0
- package/node_modules/case/dist/Case.min.js +5 -0
- package/node_modules/case/dist/Case.min.js.map +1 -0
- package/node_modules/case/dist/Case.plus.js +189 -0
- package/node_modules/case/dist/Case.plus.min.js +5 -0
- package/node_modules/case/dist/Case.plus.min.js.map +1 -0
- package/node_modules/case/package.json +58 -0
- package/package.json +4 -4
- package/lib/cli/create.d.ts +0 -41
- package/lib/cli/create.js +0 -48
- package/node_modules/decamelize/index.d.ts +0 -20
- package/node_modules/decamelize/index.js +0 -12
- package/node_modules/decamelize/license +0 -9
- package/node_modules/decamelize/package.json +0 -40
- package/node_modules/decamelize/readme.md +0 -51
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.AwsCdkJavaApp = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const semver = require("semver");
|
|
8
|
+
const __1 = require("..");
|
|
9
|
+
const java_1 = require("../java");
|
|
10
|
+
const cdk_config_1 = require("./cdk-config");
|
|
11
|
+
const cdk_tasks_1 = require("./cdk-tasks");
|
|
12
|
+
/**
|
|
13
|
+
* (experimental) AWS CDK app in Java.
|
|
14
|
+
*
|
|
15
|
+
* @experimental
|
|
16
|
+
* @pjid awscdk-app-java
|
|
17
|
+
*/
|
|
18
|
+
class AwsCdkJavaApp extends java_1.JavaProject {
|
|
19
|
+
/**
|
|
20
|
+
* @experimental
|
|
21
|
+
*/
|
|
22
|
+
constructor(options) {
|
|
23
|
+
var _b, _c, _d;
|
|
24
|
+
const mainClassComponents = options.mainClass.split('.');
|
|
25
|
+
const mainPackage = mainClassComponents.slice(0, -1);
|
|
26
|
+
const mainClassName = mainClassComponents[mainClassComponents.length - 1];
|
|
27
|
+
super({
|
|
28
|
+
...options,
|
|
29
|
+
sample: false,
|
|
30
|
+
sampleJavaPackage: mainPackage.join('.'),
|
|
31
|
+
});
|
|
32
|
+
this.mainClass = options.mainClass;
|
|
33
|
+
this.mainPackage = mainPackage.join('.');
|
|
34
|
+
this.mainClassName = mainClassName;
|
|
35
|
+
this.cdkVersion = options.cdkVersion;
|
|
36
|
+
if (!this.cdkVersion) {
|
|
37
|
+
throw new Error('Required field cdkVersion is not specified.');
|
|
38
|
+
}
|
|
39
|
+
const cdkMajorVersion = (_c = (_b = semver.minVersion(this.cdkVersion)) === null || _b === void 0 ? void 0 : _b.major) !== null && _c !== void 0 ? _c : 1;
|
|
40
|
+
if (cdkMajorVersion >= 2) {
|
|
41
|
+
throw new Error('CDKv2 is still not supported');
|
|
42
|
+
}
|
|
43
|
+
this.addCdkDependency('core');
|
|
44
|
+
this.addCdkDependency(...(_d = options.cdkDependencies) !== null && _d !== void 0 ? _d : []);
|
|
45
|
+
this.cdkTasks = new cdk_tasks_1.CdkTasks(this);
|
|
46
|
+
this.buildTask.spawn(this.cdkTasks.synth);
|
|
47
|
+
this.cdkConfig = new cdk_config_1.CdkConfig(this, {
|
|
48
|
+
app: `mvn exec:java --quiet -Dexec.mainClass=${this.mainClass}`,
|
|
49
|
+
...options,
|
|
50
|
+
});
|
|
51
|
+
this.addSample();
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* (experimental) Adds an AWS CDK module dependencies.
|
|
55
|
+
*
|
|
56
|
+
* @param modules The list of modules to depend on (e.g. "core", "aws-lambda", etc).
|
|
57
|
+
* @experimental
|
|
58
|
+
*/
|
|
59
|
+
addCdkDependency(...modules) {
|
|
60
|
+
for (const m of modules) {
|
|
61
|
+
this.addDependency(`software.amazon.awscdk/${m}@${this.cdkVersion}`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
addSample() {
|
|
65
|
+
const pkg = this.mainPackage.split('.');
|
|
66
|
+
const javaFile = `${this.mainClassName}.java`;
|
|
67
|
+
new __1.SampleDir(this, path_1.join('src', 'main', 'java', ...pkg), {
|
|
68
|
+
files: {
|
|
69
|
+
[javaFile]: [
|
|
70
|
+
`package ${pkg.join('.')};`,
|
|
71
|
+
'',
|
|
72
|
+
'import software.amazon.awscdk.core.App;',
|
|
73
|
+
'import software.amazon.awscdk.core.Stack;',
|
|
74
|
+
'',
|
|
75
|
+
`public class ${this.mainClassName} {`,
|
|
76
|
+
' public static void main(final String[] args) {',
|
|
77
|
+
' App app = new App();',
|
|
78
|
+
' new Stack(app, "MyStack");',
|
|
79
|
+
' app.synth();',
|
|
80
|
+
' }',
|
|
81
|
+
'}',
|
|
82
|
+
].join('\n'),
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.AwsCdkJavaApp = AwsCdkJavaApp;
|
|
88
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
89
|
+
AwsCdkJavaApp[_a] = { fqn: "projen.awscdk.AwsCdkJavaApp", version: "0.32.2" };
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2phdmEtYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQTRCO0FBQzVCLGlDQUFpQztBQUNqQywwQkFBK0I7QUFDL0Isa0NBQTBEO0FBQzFELDZDQUFpRTtBQUNqRSwyQ0FBdUM7Ozs7Ozs7QUFjdkMsTUFBYSxhQUFjLFNBQVEsa0JBQVc7Ozs7SUFtQjVDLFlBQVksT0FBNkI7O1FBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sYUFBYSxHQUFHLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUxRSxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixNQUFNLEVBQUUsS0FBSztZQUNiLGlCQUFpQixFQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztTQUNoRTtRQUVELE1BQU0sZUFBZSxlQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQ0FBRSxLQUFLLG1DQUFJLENBQUMsQ0FBQztRQUN2RSxJQUFJLGVBQWUsSUFBSSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2pEO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFHLE9BQU8sQ0FBQyxlQUFlLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxvQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFMUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLHNCQUFTLENBQUMsSUFBSSxFQUFFO1lBQ25DLEdBQUcsRUFBRSwwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUMvRCxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7Ozs7OztJQUdNLGdCQUFnQixDQUFDLEdBQUcsT0FBaUI7UUFDMUMsS0FBSyxNQUFNLENBQUMsSUFBSSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3RFO0lBQ0gsQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxNQUFNLFFBQVEsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLE9BQU8sQ0FBQztRQUM5QyxJQUFJLGFBQVMsQ0FBQyxJQUFJLEVBQUUsV0FBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUU7WUFDdkQsS0FBSyxFQUFFO2dCQUNMLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ1YsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHO29CQUMzQixFQUFFO29CQUNGLHlDQUF5QztvQkFDekMsMkNBQTJDO29CQUMzQyxFQUFFO29CQUNGLGdCQUFnQixJQUFJLENBQUMsYUFBYSxJQUFJO29CQUN0QyxrREFBa0Q7b0JBQ2xELDBCQUEwQjtvQkFDMUIsZ0NBQWdDO29CQUNoQyxrQkFBa0I7b0JBQ2xCLEtBQUs7b0JBQ0wsR0FBRztpQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDYjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdEZILHNDQXVGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgU2FtcGxlRGlyIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgSmF2YVByb2plY3QsIEphdmFQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4uL2phdmEnO1xuaW1wb3J0IHsgQ2RrQ29uZmlnLCBDZGtDb25maWdDb21tb25PcHRpb25zIH0gZnJvbSAnLi9jZGstY29uZmlnJztcbmltcG9ydCB7IENka1Rhc2tzIH0gZnJvbSAnLi9jZGstdGFza3MnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Nka0phdmFBcHBPcHRpb25zIGV4dGVuZHMgSmF2YVByb2plY3RPcHRpb25zLCBDZGtDb25maWdDb21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHJlYWRvbmx5IGNka1ZlcnNpb246IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY2RrRGVwZW5kZW5jaWVzPzogc3RyaW5nW107XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbWFpbkNsYXNzOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgY2xhc3MgQXdzQ2RrSmF2YUFwcCBleHRlbmRzIEphdmFQcm9qZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgY2RrVmVyc2lvbjogc3RyaW5nO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtDb25maWc6IENka0NvbmZpZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBtYWluQ2xhc3M6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyByZWFkb25seSBjZGtUYXNrczogQ2RrVGFza3M7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWFpblBhY2thZ2U6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgcmVhZG9ubHkgbWFpbkNsYXNzTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEF3c0Nka0phdmFBcHBPcHRpb25zKSB7XG4gICAgY29uc3QgbWFpbkNsYXNzQ29tcG9uZW50cyA9IG9wdGlvbnMubWFpbkNsYXNzLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgbWFpblBhY2thZ2UgPSBtYWluQ2xhc3NDb21wb25lbnRzLnNsaWNlKDAsIC0xKTtcbiAgICBjb25zdCBtYWluQ2xhc3NOYW1lID0gbWFpbkNsYXNzQ29tcG9uZW50c1ttYWluQ2xhc3NDb21wb25lbnRzLmxlbmd0aCAtIDFdO1xuXG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHNhbXBsZTogZmFsc2UsXG4gICAgICBzYW1wbGVKYXZhUGFja2FnZTogbWFpblBhY2thZ2Uuam9pbignLicpLFxuICAgIH0pO1xuXG4gICAgdGhpcy5tYWluQ2xhc3MgPSBvcHRpb25zLm1haW5DbGFzcztcbiAgICB0aGlzLm1haW5QYWNrYWdlID0gbWFpblBhY2thZ2Uuam9pbignLicpO1xuICAgIHRoaXMubWFpbkNsYXNzTmFtZSA9IG1haW5DbGFzc05hbWU7XG4gICAgdGhpcy5jZGtWZXJzaW9uID0gb3B0aW9ucy5jZGtWZXJzaW9uO1xuXG4gICAgaWYgKCF0aGlzLmNka1ZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVxdWlyZWQgZmllbGQgY2RrVmVyc2lvbiBpcyBub3Qgc3BlY2lmaWVkLicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNka01ham9yVmVyc2lvbiA9IHNlbXZlci5taW5WZXJzaW9uKHRoaXMuY2RrVmVyc2lvbik/Lm1ham9yID8/IDE7XG4gICAgaWYgKGNka01ham9yVmVyc2lvbiA+PSAyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NES3YyIGlzIHN0aWxsIG5vdCBzdXBwb3J0ZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koJ2NvcmUnKTtcbiAgICB0aGlzLmFkZENka0RlcGVuZGVuY3koLi4ub3B0aW9ucy5jZGtEZXBlbmRlbmNpZXMgPz8gW10pO1xuXG4gICAgdGhpcy5jZGtUYXNrcyA9IG5ldyBDZGtUYXNrcyh0aGlzKTtcbiAgICB0aGlzLmJ1aWxkVGFzay5zcGF3bih0aGlzLmNka1Rhc2tzLnN5bnRoKTtcblxuICAgIHRoaXMuY2RrQ29uZmlnID0gbmV3IENka0NvbmZpZyh0aGlzLCB7XG4gICAgICBhcHA6IGBtdm4gZXhlYzpqYXZhIC0tcXVpZXQgLURleGVjLm1haW5DbGFzcz0ke3RoaXMubWFpbkNsYXNzfWAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRTYW1wbGUoKTtcbiAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBwdWJsaWMgYWRkQ2RrRGVwZW5kZW5jeSguLi5tb2R1bGVzOiBzdHJpbmdbXSkge1xuICAgIGZvciAoY29uc3QgbSBvZiBtb2R1bGVzKSB7XG4gICAgICB0aGlzLmFkZERlcGVuZGVuY3koYHNvZnR3YXJlLmFtYXpvbi5hd3NjZGsvJHttfUAke3RoaXMuY2RrVmVyc2lvbn1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFNhbXBsZSgpIHtcbiAgICBjb25zdCBwa2cgPSB0aGlzLm1haW5QYWNrYWdlLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgamF2YUZpbGUgPSBgJHt0aGlzLm1haW5DbGFzc05hbWV9LmphdmFgO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgam9pbignc3JjJywgJ21haW4nLCAnamF2YScsIC4uLnBrZyksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgIFtqYXZhRmlsZV06IFtcbiAgICAgICAgICBgcGFja2FnZSAke3BrZy5qb2luKCcuJyl9O2AsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2ltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLmNvcmUuQXBwOycsXG4gICAgICAgICAgJ2ltcG9ydCBzb2Z0d2FyZS5hbWF6b24uYXdzY2RrLmNvcmUuU3RhY2s7JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICBgcHVibGljIGNsYXNzICR7dGhpcy5tYWluQ2xhc3NOYW1lfSB7YCxcbiAgICAgICAgICAnICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihmaW5hbCBTdHJpbmdbXSBhcmdzKSB7JyxcbiAgICAgICAgICAnICAgIEFwcCBhcHAgPSBuZXcgQXBwKCk7JyxcbiAgICAgICAgICAnICAgIG5ldyBTdGFjayhhcHAsIFwiTXlTdGFja1wiKTsnLFxuICAgICAgICAgICcgICAgYXBwLnN5bnRoKCk7JyxcbiAgICAgICAgICAnICB9JyxcbiAgICAgICAgICAnfScsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { Project } from '..';
|
|
2
|
+
import { Component } from '../component';
|
|
3
|
+
import { Task } from '../tasks';
|
|
4
|
+
/**
|
|
5
|
+
* (experimental) Common options for `LambdaFunction`.
|
|
6
|
+
*
|
|
7
|
+
* Applies to all functions in
|
|
8
|
+
* auto-discovery.
|
|
9
|
+
*
|
|
10
|
+
* @experimental
|
|
11
|
+
*/
|
|
12
|
+
export interface LambdaFunctionCommonOptions {
|
|
13
|
+
/**
|
|
14
|
+
* (experimental) The node.js version to target.
|
|
15
|
+
*
|
|
16
|
+
* @default Runtime.NODEJS_14_X
|
|
17
|
+
* @experimental
|
|
18
|
+
*/
|
|
19
|
+
readonly runtime?: LambdaRuntime;
|
|
20
|
+
/**
|
|
21
|
+
* (experimental) Names of modules which should not be included in the bundle.
|
|
22
|
+
*
|
|
23
|
+
* @default - by default, the "aws-sdk" module will be excluded from the
|
|
24
|
+
* bundle. Note that if you use this option you will need to add "aws-sdk"
|
|
25
|
+
* explicitly.
|
|
26
|
+
* @experimental
|
|
27
|
+
*/
|
|
28
|
+
readonly externals?: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* (experimental) Options for `Function`.
|
|
32
|
+
*
|
|
33
|
+
* @experimental
|
|
34
|
+
*/
|
|
35
|
+
export interface LambdaFunctionOptions extends LambdaFunctionCommonOptions {
|
|
36
|
+
/**
|
|
37
|
+
* (experimental) A path from the project root directory to a TypeScript file which contains the AWS Lambda handler entrypoint (exports a `handler` function).
|
|
38
|
+
*
|
|
39
|
+
* @experimental
|
|
40
|
+
*/
|
|
41
|
+
readonly entrypoint: string;
|
|
42
|
+
/**
|
|
43
|
+
* (experimental) The name of the generated TypeScript source file.
|
|
44
|
+
*
|
|
45
|
+
* @default - The name of the entrypoint file, with the `-function.ts` suffix
|
|
46
|
+
* instead of `.lambda.ts`.
|
|
47
|
+
* @experimental
|
|
48
|
+
*/
|
|
49
|
+
readonly constructFile?: string;
|
|
50
|
+
/**
|
|
51
|
+
* (experimental) The name of the generated `lambda.Function` subclass.
|
|
52
|
+
*
|
|
53
|
+
* @default - A pascal cased version of the name of the entrypoint file, with
|
|
54
|
+
* the extension `Function` (e.g. `ResizeImageFunction`).
|
|
55
|
+
* @experimental
|
|
56
|
+
*/
|
|
57
|
+
readonly constructName?: string;
|
|
58
|
+
/**
|
|
59
|
+
* (experimental) Project source directory tree (where .ts files live).
|
|
60
|
+
*
|
|
61
|
+
* @experimental
|
|
62
|
+
*/
|
|
63
|
+
readonly srcdir: string;
|
|
64
|
+
/**
|
|
65
|
+
* (experimental) JavaScript output directory (where .js files go).
|
|
66
|
+
*
|
|
67
|
+
* @experimental
|
|
68
|
+
*/
|
|
69
|
+
readonly libdir: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* (experimental) Generates a pre-bundled AWS Lambda function construct from handler code.
|
|
73
|
+
*
|
|
74
|
+
* To use this, create an AWS Lambda handler file under your source tree with
|
|
75
|
+
* the `.lambda.ts` extension and add a `LambdaFunction` component to your
|
|
76
|
+
* typescript project pointing to this entrypoint.
|
|
77
|
+
*
|
|
78
|
+
* This will add a task to your "compile" step which will use `esbuild` to
|
|
79
|
+
* bundle the handler code into the build directory. It will also generate a
|
|
80
|
+
* file `src/foo-function.ts` with a custom AWS construct called `FooFunction`
|
|
81
|
+
* which extends `@aws-cdk/aws-lambda.Function` which is bound to the bundled
|
|
82
|
+
* handle through an asset.
|
|
83
|
+
*
|
|
84
|
+
* @experimental
|
|
85
|
+
* @example
|
|
86
|
+
*
|
|
87
|
+
* new LambdaFunction(myProject, {
|
|
88
|
+
* entrypoint: 'src/foo.lambda.ts',
|
|
89
|
+
* srcdir: myProject.srcdir,
|
|
90
|
+
* libdir: myProject.libdir,
|
|
91
|
+
* });
|
|
92
|
+
*/
|
|
93
|
+
export declare class LambdaFunction extends Component {
|
|
94
|
+
/**
|
|
95
|
+
* (experimental) The bundle task for this function.
|
|
96
|
+
*
|
|
97
|
+
* @experimental
|
|
98
|
+
*/
|
|
99
|
+
readonly bundleTask: Task;
|
|
100
|
+
/**
|
|
101
|
+
* (experimental) Defines a pre-bundled AWS Lambda function construct from handler code.
|
|
102
|
+
*
|
|
103
|
+
* @param project The project to use.
|
|
104
|
+
* @param options Options.
|
|
105
|
+
* @experimental
|
|
106
|
+
*/
|
|
107
|
+
constructor(project: Project, options: LambdaFunctionOptions);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* (experimental) The runtime for the AWS Lambda function.
|
|
111
|
+
*
|
|
112
|
+
* @experimental
|
|
113
|
+
*/
|
|
114
|
+
export declare class LambdaRuntime {
|
|
115
|
+
/**
|
|
116
|
+
* The aws-lambda.Runtime member name to use.
|
|
117
|
+
*/
|
|
118
|
+
readonly functionRuntime: string;
|
|
119
|
+
/**
|
|
120
|
+
* The esbuild setting to use.
|
|
121
|
+
*/
|
|
122
|
+
readonly esbuildTarget: string;
|
|
123
|
+
/**
|
|
124
|
+
* (experimental) Node.js 10.x.
|
|
125
|
+
*
|
|
126
|
+
* @experimental
|
|
127
|
+
*/
|
|
128
|
+
static readonly NODEJS_10_X: LambdaRuntime;
|
|
129
|
+
/**
|
|
130
|
+
* (experimental) Node.js 12.x.
|
|
131
|
+
*
|
|
132
|
+
* @experimental
|
|
133
|
+
*/
|
|
134
|
+
static readonly NODEJS_12_X: LambdaRuntime;
|
|
135
|
+
/**
|
|
136
|
+
* (experimental) Node.js 14.x.
|
|
137
|
+
*
|
|
138
|
+
* @experimental
|
|
139
|
+
*/
|
|
140
|
+
static readonly NODEJS_14_X: LambdaRuntime;
|
|
141
|
+
/**
|
|
142
|
+
* @experimental
|
|
143
|
+
*/
|
|
144
|
+
readonly esbuildPlatform = "node";
|
|
145
|
+
private constructor();
|
|
146
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LambdaRuntime = exports.LambdaFunction = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const path_1 = require("path");
|
|
7
|
+
const case_1 = require("case");
|
|
8
|
+
const __1 = require("..");
|
|
9
|
+
const component_1 = require("../component");
|
|
10
|
+
const file_1 = require("../file");
|
|
11
|
+
const bundler_1 = require("../javascript/bundler");
|
|
12
|
+
const source_code_1 = require("../source-code");
|
|
13
|
+
const internal_1 = require("./internal");
|
|
14
|
+
/**
|
|
15
|
+
* (experimental) Generates a pre-bundled AWS Lambda function construct from handler code.
|
|
16
|
+
*
|
|
17
|
+
* To use this, create an AWS Lambda handler file under your source tree with
|
|
18
|
+
* the `.lambda.ts` extension and add a `LambdaFunction` component to your
|
|
19
|
+
* typescript project pointing to this entrypoint.
|
|
20
|
+
*
|
|
21
|
+
* This will add a task to your "compile" step which will use `esbuild` to
|
|
22
|
+
* bundle the handler code into the build directory. It will also generate a
|
|
23
|
+
* file `src/foo-function.ts` with a custom AWS construct called `FooFunction`
|
|
24
|
+
* which extends `@aws-cdk/aws-lambda.Function` which is bound to the bundled
|
|
25
|
+
* handle through an asset.
|
|
26
|
+
*
|
|
27
|
+
* @experimental
|
|
28
|
+
* @example
|
|
29
|
+
*
|
|
30
|
+
* new LambdaFunction(myProject, {
|
|
31
|
+
* entrypoint: 'src/foo.lambda.ts',
|
|
32
|
+
* srcdir: myProject.srcdir,
|
|
33
|
+
* libdir: myProject.libdir,
|
|
34
|
+
* });
|
|
35
|
+
*/
|
|
36
|
+
class LambdaFunction extends component_1.Component {
|
|
37
|
+
/**
|
|
38
|
+
* (experimental) Defines a pre-bundled AWS Lambda function construct from handler code.
|
|
39
|
+
*
|
|
40
|
+
* @param project The project to use.
|
|
41
|
+
* @param options Options.
|
|
42
|
+
* @experimental
|
|
43
|
+
*/
|
|
44
|
+
constructor(project, options) {
|
|
45
|
+
var _c, _d, _e, _f;
|
|
46
|
+
super(project);
|
|
47
|
+
const bundler = bundler_1.Bundler.of(project);
|
|
48
|
+
if (!bundler) {
|
|
49
|
+
throw new Error('No bundler found. Please add a Bundler component to your project.');
|
|
50
|
+
}
|
|
51
|
+
const runtime = (_c = options.runtime) !== null && _c !== void 0 ? _c : LambdaRuntime.NODEJS_14_X;
|
|
52
|
+
// make sure entrypoint is within the source directory
|
|
53
|
+
if (!options.entrypoint.startsWith(options.srcdir)) {
|
|
54
|
+
throw new Error(`${options.entrypoint} must be under ${options.srcdir}`);
|
|
55
|
+
}
|
|
56
|
+
// allow Lambda handler code to import dev-deps since they are only needed
|
|
57
|
+
// during bundling
|
|
58
|
+
const eslint = __1.Eslint.of(project);
|
|
59
|
+
eslint === null || eslint === void 0 ? void 0 : eslint.allowDevDeps(options.entrypoint);
|
|
60
|
+
const entrypoint = path_1.relative(options.srcdir, options.entrypoint);
|
|
61
|
+
if (!entrypoint.endsWith(internal_1.TYPESCRIPT_LAMBDA_EXT)) {
|
|
62
|
+
throw new Error(`${entrypoint} must have a ${internal_1.TYPESCRIPT_LAMBDA_EXT} extension`);
|
|
63
|
+
}
|
|
64
|
+
const basePath = path_1.join(path_1.dirname(entrypoint), path_1.basename(entrypoint, internal_1.TYPESCRIPT_LAMBDA_EXT));
|
|
65
|
+
const constructFile = (_d = options.constructFile) !== null && _d !== void 0 ? _d : `${basePath}-function.ts`;
|
|
66
|
+
const constructFilePath = path_1.join(options.srcdir, constructFile);
|
|
67
|
+
if (path_1.extname(constructFilePath) !== '.ts') {
|
|
68
|
+
throw new Error(`Construct file name "${constructFile}" must have a .ts extension`);
|
|
69
|
+
}
|
|
70
|
+
const bundledirName = `${basePath}.lambda.bundle`;
|
|
71
|
+
// type names
|
|
72
|
+
const constructName = (_e = options.constructName) !== null && _e !== void 0 ? _e : case_1.pascal(path_1.basename(basePath)) + 'Function';
|
|
73
|
+
const propsType = `${constructName}Props`;
|
|
74
|
+
const src = new source_code_1.SourceCode(project, constructFilePath);
|
|
75
|
+
src.line(`// ${file_1.FileBase.PROJEN_MARKER}`);
|
|
76
|
+
src.line('import * as path from \'path\';');
|
|
77
|
+
src.line('import * as lambda from \'@aws-cdk/aws-lambda\';');
|
|
78
|
+
src.line('import { Construct } from \'@aws-cdk/core\';');
|
|
79
|
+
src.line();
|
|
80
|
+
src.line('/**');
|
|
81
|
+
src.line(` * Props for ${constructName}`);
|
|
82
|
+
src.line(' */');
|
|
83
|
+
src.open(`export interface ${propsType} extends lambda.FunctionOptions {`);
|
|
84
|
+
src.close('}');
|
|
85
|
+
src.line();
|
|
86
|
+
src.line('/**');
|
|
87
|
+
src.line(` * An AWS Lambda function which executes ${basePath}.`);
|
|
88
|
+
src.line(' */');
|
|
89
|
+
src.open(`export class ${constructName} extends lambda.Function {`);
|
|
90
|
+
src.open(`constructor(scope: Construct, id: string, props?: ${propsType}) {`);
|
|
91
|
+
src.open('super(scope, id, {');
|
|
92
|
+
src.line(`description: '${entrypoint}',`);
|
|
93
|
+
src.line('...props,');
|
|
94
|
+
src.line(`runtime: lambda.Runtime.${runtime.functionRuntime},`);
|
|
95
|
+
src.line('handler: \'index.handler\',');
|
|
96
|
+
src.line(`code: lambda.Code.fromAsset(path.join(__dirname, '${path_1.basename(bundledirName)}')),`);
|
|
97
|
+
src.close('});');
|
|
98
|
+
src.close('}');
|
|
99
|
+
src.close('}');
|
|
100
|
+
const entry = path_1.join(options.srcdir, entrypoint);
|
|
101
|
+
const outfile = path_1.join(options.libdir, bundledirName, 'index.js');
|
|
102
|
+
this.bundleTask = bundler.addBundle(basePath, {
|
|
103
|
+
entrypoint: entry,
|
|
104
|
+
outfile: outfile,
|
|
105
|
+
target: runtime.esbuildTarget,
|
|
106
|
+
platform: runtime.esbuildPlatform,
|
|
107
|
+
externals: (_f = options.externals) !== null && _f !== void 0 ? _f : ['aws-sdk'],
|
|
108
|
+
});
|
|
109
|
+
this.project.logger.info(`${basePath}: construct "${constructName}" generated under "${constructFilePath}"`);
|
|
110
|
+
this.project.logger.info(`${basePath}: bundle task "${this.bundleTask.name}"`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.LambdaFunction = LambdaFunction;
|
|
114
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
115
|
+
LambdaFunction[_a] = { fqn: "projen.awscdk.LambdaFunction", version: "0.32.2" };
|
|
116
|
+
/**
|
|
117
|
+
* (experimental) The runtime for the AWS Lambda function.
|
|
118
|
+
*
|
|
119
|
+
* @experimental
|
|
120
|
+
*/
|
|
121
|
+
class LambdaRuntime {
|
|
122
|
+
constructor(
|
|
123
|
+
/**
|
|
124
|
+
* The aws-lambda.Runtime member name to use.
|
|
125
|
+
*/
|
|
126
|
+
functionRuntime,
|
|
127
|
+
/**
|
|
128
|
+
* The esbuild setting to use.
|
|
129
|
+
*/
|
|
130
|
+
esbuildTarget) {
|
|
131
|
+
this.functionRuntime = functionRuntime;
|
|
132
|
+
this.esbuildTarget = esbuildTarget;
|
|
133
|
+
/**
|
|
134
|
+
* @experimental
|
|
135
|
+
*/
|
|
136
|
+
this.esbuildPlatform = 'node';
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.LambdaRuntime = LambdaRuntime;
|
|
140
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
141
|
+
LambdaRuntime[_b] = { fqn: "projen.awscdk.LambdaRuntime", version: "0.32.2" };
|
|
142
|
+
/**
|
|
143
|
+
* (experimental) Node.js 10.x.
|
|
144
|
+
*
|
|
145
|
+
* @experimental
|
|
146
|
+
*/
|
|
147
|
+
LambdaRuntime.NODEJS_10_X = new LambdaRuntime('NODEJS_10_X', 'node10');
|
|
148
|
+
/**
|
|
149
|
+
* (experimental) Node.js 12.x.
|
|
150
|
+
*
|
|
151
|
+
* @experimental
|
|
152
|
+
*/
|
|
153
|
+
LambdaRuntime.NODEJS_12_X = new LambdaRuntime('NODEJS_12_X', 'node12');
|
|
154
|
+
/**
|
|
155
|
+
* (experimental) Node.js 14.x.
|
|
156
|
+
*
|
|
157
|
+
* @experimental
|
|
158
|
+
*/
|
|
159
|
+
LambdaRuntime.NODEJS_14_X = new LambdaRuntime('NODEJS_14_X', 'node14');
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9sYW1iZGEtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwrQkFBa0U7QUFDbEUsK0JBQThCO0FBQzlCLDBCQUFxQztBQUNyQyw0Q0FBeUM7QUFDekMsa0NBQW1DO0FBQ25DLG1EQUFnRDtBQUNoRCxnREFBNEM7QUFFNUMseUNBQW1EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCbkQsTUFBYSxjQUFlLFNBQVEscUJBQVM7Ozs7Ozs7O0lBSzNDLFlBQVksT0FBZ0IsRUFBRSxPQUE4Qjs7UUFDMUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWYsTUFBTSxPQUFPLEdBQUcsaUJBQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsbUVBQW1FLENBQUMsQ0FBQztTQUN0RjtRQUVELE1BQU0sT0FBTyxTQUFHLE9BQU8sQ0FBQyxPQUFPLG1DQUFJLGFBQWEsQ0FBQyxXQUFXLENBQUM7UUFFN0Qsc0RBQXNEO1FBQ3RELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxVQUFVLGtCQUFrQixPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUMxRTtRQUVELDBFQUEwRTtRQUMxRSxrQkFBa0I7UUFDbEIsTUFBTSxNQUFNLEdBQUcsVUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7UUFFekMsTUFBTSxVQUFVLEdBQUcsZUFBUSxDQUFDLE9B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QVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxhQUFhLEVBQUUsUUFBUSxDQUFDLENBQUM7Ozs7OztBQUd6RCx5QkFBVyxHQUFHLElBQUksYUFBYSxDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQzs7Ozs7O0FBR3pELHlCQUFXLEdBQUcsSUFBSSxhQUFhLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIGV4dG5hbWUsIGpvaW4sIHJlbGF0aXZlIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwYXNjYWwgfSBmcm9tICdjYXNlJztcbmltcG9ydCB7IEVzbGludCwgUHJvamVjdCB9IGZyb20gJy4uJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWxlQmFzZSB9IGZyb20gJy4uL2ZpbGUnO1xuaW1wb3J0IHsgQnVuZGxlciB9IGZyb20gJy4uL2phdmFzY3JpcHQvYnVuZGxlcic7XG5pbXBvcnQgeyBTb3VyY2VDb2RlIH0gZnJvbSAnLi4vc291cmNlLWNvZGUnO1xuaW1wb3J0IHsgVGFzayB9IGZyb20gJy4uL3Rhc2tzJztcbmltcG9ydCB7IFRZUEVTQ1JJUFRfTEFNQkRBX0VYVCB9IGZyb20gJy4vaW50ZXJuYWwnO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUZ1bmN0aW9uQ29tbW9uT3B0aW9ucyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBydW50aW1lPzogTGFtYmRhUnVudGltZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgZXh0ZXJuYWxzPzogc3RyaW5nW107XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhRnVuY3Rpb25PcHRpb25zIGV4dGVuZHMgTGFtYmRhRnVuY3Rpb25Db21tb25PcHRpb25zIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBlbnRyeXBvaW50OiBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29uc3RydWN0RmlsZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgY29uc3RydWN0TmFtZT86IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcmVhZG9ubHkgbGliZGlyOiBzdHJpbmc7XG59XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBMYW1iZGFGdW5jdGlvbiBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgcHVibGljIHJlYWRvbmx5IGJ1bmRsZVRhc2s6IFRhc2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBvcHRpb25zOiBMYW1iZGFGdW5jdGlvbk9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIGNvbnN0IGJ1bmRsZXIgPSBCdW5kbGVyLm9mKHByb2plY3QpO1xuICAgIGlmICghYnVuZGxlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBidW5kbGVyIGZvdW5kLiBQbGVhc2UgYWRkIGEgQnVuZGxlciBjb21wb25lbnQgdG8geW91ciBwcm9qZWN0LicpO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBvcHRpb25zLnJ1bnRpbWUgPz8gTGFtYmRhUnVudGltZS5OT0RFSlNfMTRfWDtcblxuICAgIC8vIG1ha2Ugc3VyZSBlbnRyeXBvaW50IGlzIHdpdGhpbiB0aGUgc291cmNlIGRpcmVjdG9yeVxuICAgIGlmICghb3B0aW9ucy5lbnRyeXBvaW50LnN0YXJ0c1dpdGgob3B0aW9ucy5zcmNkaXIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7b3B0aW9ucy5lbnRyeXBvaW50fSBtdXN0IGJlIHVuZGVyICR7b3B0aW9ucy5zcmNkaXJ9YCk7XG4gICAgfVxuXG4gICAgLy8gYWxsb3cgTGFtYmRhIGhhbmRsZXIgY29kZSB0byBpbXBvcnQgZGV2LWRlcHMgc2luY2UgdGhleSBhcmUgb25seSBuZWVkZWRcbiAgICAvLyBkdXJpbmcgYnVuZGxpbmdcbiAgICBjb25zdCBlc2xpbnQgPSBFc2xpbnQub2YocHJvamVjdCk7XG4gICAgZXNsaW50Py5hbGxvd0RldkRlcHMob3B0aW9ucy5lbnRyeXBvaW50KTtcblxuICAgIGNvbnN0IGVudHJ5cG9pbnQgPSByZWxhdGl2ZShvcHRpb25zLnNyY2Rpciwgb3B0aW9ucy5lbnRyeXBvaW50KTtcblxuICAgIGlmICghZW50cnlwb2ludC5lbmRzV2l0aChUWVBFU0NSSVBUX0xBTUJEQV9FWFQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZW50cnlwb2ludH0gbXVzdCBoYXZlIGEgJHtUWVBFU0NSSVBUX0xBTUJEQV9FWFR9IGV4dGVuc2lvbmApO1xuICAgIH1cblxuICAgIGNvbnN0IGJhc2VQYXRoID0gam9pbihkaXJuYW1lKGVudHJ5cG9pbnQpLCBiYXNlbmFtZShlbnRyeXBvaW50LCBUWVBFU0NSSVBUX0xBTUJEQV9FWFQpKTtcbiAgICBjb25zdCBjb25zdHJ1Y3RGaWxlID0gb3B0aW9ucy5jb25zdHJ1Y3RGaWxlID8/IGAke2Jhc2VQYXRofS1mdW5jdGlvbi50c2A7XG4gICAgY29uc3QgY29uc3RydWN0RmlsZVBhdGggPSBqb2luKG9wdGlvbnMuc3JjZGlyLCBjb25zdHJ1Y3RGaWxlKTtcblxuICAgIGlmIChleHRuYW1lKGNvbnN0cnVjdEZpbGVQYXRoKSAhPT0gJy50cycpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ29uc3RydWN0IGZpbGUgbmFtZSBcIiR7Y29uc3RydWN0RmlsZX1cIiBtdXN0IGhhdmUgYSAudHMgZXh0ZW5zaW9uYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYnVuZGxlZGlyTmFtZSA9IGAke2Jhc2VQYXRofS5sYW1iZGEuYnVuZGxlYDtcblxuICAgIC8vIHR5cGUgbmFtZXNcbiAgICBjb25zdCBjb25zdHJ1Y3ROYW1lID0gb3B0aW9ucy5jb25zdHJ1Y3ROYW1lID8/IHBhc2NhbChiYXNlbmFtZShiYXNlUGF0aCkpICsgJ0Z1bmN0aW9uJztcbiAgICBjb25zdCBwcm9wc1R5cGUgPSBgJHtjb25zdHJ1Y3ROYW1lfVByb3BzYDtcblxuICAgIGNvbnN0IHNyYyA9IG5ldyBTb3VyY2VDb2RlKHByb2plY3QsIGNvbnN0cnVjdEZpbGVQYXRoKTtcbiAgICBzcmMubGluZShgLy8gJHtGaWxlQmFzZS5QUk9KRU5fTUFSS0VSfWApO1xuICAgIHNyYy5saW5lKCdpbXBvcnQgKiBhcyBwYXRoIGZyb20gXFwncGF0aFxcJzsnKTtcbiAgICBzcmMubGluZSgnaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXFwnQGF3cy1jZGsvYXdzLWxhbWJkYVxcJzsnKTtcbiAgICBzcmMubGluZSgnaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcXCdAYXdzLWNkay9jb3JlXFwnOycpO1xuICAgIHNyYy5saW5lKCk7XG4gICAgc3JjLmxpbmUoJy8qKicpO1xuICAgIHNyYy5saW5lKGAgKiBQcm9wcyBmb3IgJHtjb25zdHJ1Y3ROYW1lfWApO1xuICAgIHNyYy5saW5lKCcgKi8nKTtcbiAgICBzcmMub3BlbihgZXhwb3J0IGludGVyZmFjZSAke3Byb3BzVHlwZX0gZXh0ZW5kcyBsYW1iZGEuRnVuY3Rpb25PcHRpb25zIHtgKTtcbiAgICBzcmMuY2xvc2UoJ30nKTtcbiAgICBzcmMubGluZSgpO1xuICAgIHNyYy5saW5lKCcvKionKTtcbiAgICBzcmMubGluZShgICogQW4gQVdTIExhbWJkYSBmdW5jdGlvbiB3aGljaCBleGVjdXRlcyAke2Jhc2VQYXRofS5gKTtcbiAgICBzcmMubGluZSgnICovJyk7XG4gICAgc3JjLm9wZW4oYGV4cG9ydCBjbGFzcyAke2NvbnN0cnVjdE5hbWV9IGV4dGVuZHMgbGFtYmRhLkZ1bmN0aW9uIHtgKTtcbiAgICBzcmMub3BlbihgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiAke3Byb3BzVHlwZX0pIHtgKTtcbiAgICBzcmMub3Blbignc3VwZXIoc2NvcGUsIGlkLCB7Jyk7XG4gICAgc3JjLmxpbmUoYGRlc2NyaXB0aW9uOiAnJHtlbnRyeXBvaW50fScsYCk7XG4gICAgc3JjLmxpbmUoJy4uLnByb3BzLCcpO1xuICAgIHNyYy5saW5lKGBydW50aW1lOiBsYW1iZGEuUnVudGltZS4ke3J1bnRpbWUuZnVuY3Rpb25SdW50aW1lfSxgKTtcbiAgICBzcmMubGluZSgnaGFuZGxlcjogXFwnaW5kZXguaGFuZGxlclxcJywnKTtcbiAgICBzcmMubGluZShgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KHBhdGguam9pbihfX2Rpcm5hbWUsICcke2Jhc2VuYW1lKGJ1bmRsZWRpck5hbWUpfScpKSxgKTtcbiAgICBzcmMuY2xvc2UoJ30pOycpO1xuICAgIHNyYy5jbG9zZSgnfScpO1xuICAgIHNyYy5jbG9zZSgnfScpO1xuXG4gICAgY29uc3QgZW50cnkgPSBqb2luKG9wdGlvbnMuc3JjZGlyLCBlbnRyeXBvaW50KTtcbiAgICBjb25zdCBvdXRmaWxlID0gam9pbihvcHRpb25zLmxpYmRpciwgYnVuZGxlZGlyTmFtZSwgJ2luZGV4LmpzJyk7XG5cbiAgICB0aGlzLmJ1bmRsZVRhc2sgPSBidW5kbGVyLmFkZEJ1bmRsZShiYXNlUGF0aCwge1xuICAgICAgZW50cnlwb2ludDogZW50cnksXG4gICAgICBvdXRmaWxlOiBvdXRmaWxlLFxuICAgICAgdGFyZ2V0OiBydW50aW1lLmVzYnVpbGRUYXJnZXQsXG4gICAgICBwbGF0Zm9ybTogcnVudGltZS5lc2J1aWxkUGxhdGZvcm0sXG4gICAgICBleHRlcm5hbHM6IG9wdGlvbnMuZXh0ZXJuYWxzID8/IFsnYXdzLXNkayddLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9qZWN0LmxvZ2dlci5pbmZvKGAke2Jhc2VQYXRofTogY29uc3RydWN0IFwiJHtjb25zdHJ1Y3ROYW1lfVwiIGdlbmVyYXRlZCB1bmRlciBcIiR7Y29uc3RydWN0RmlsZVBhdGh9XCJgKTtcbiAgICB0aGlzLnByb2plY3QubG9nZ2VyLmluZm8oYCR7YmFzZVBhdGh9OiBidW5kbGUgdGFzayBcIiR7dGhpcy5idW5kbGVUYXNrLm5hbWV9XCJgKTtcbiAgfVxufVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbmV4cG9ydCBjbGFzcyBMYW1iZGFSdW50aW1lIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ERUpTXzEwX1ggPSBuZXcgTGFtYmRhUnVudGltZSgnTk9ERUpTXzEwX1gnLCAnbm9kZTEwJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ERUpTXzEyX1ggPSBuZXcgTGFtYmRhUnVudGltZSgnTk9ERUpTXzEyX1gnLCAnbm9kZTEyJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTk9ERUpTXzE0X1ggPSBuZXcgTGFtYmRhUnVudGltZSgnTk9ERUpTXzE0X1gnLCAnbm9kZTE0Jyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGVzYnVpbGRQbGF0Zm9ybSA9ICdub2RlJztcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBhd3MtbGFtYmRhLlJ1bnRpbWUgbWVtYmVyIG5hbWUgdG8gdXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmdW5jdGlvblJ1bnRpbWU6IHN0cmluZyxcblxuICAgIC8qKlxuICAgICAqIFRoZSBlc2J1aWxkIHNldHRpbmcgdG8gdXNlLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlc2J1aWxkVGFyZ2V0OiBzdHJpbmcpIHtcbiAgfVxufVxuIl19
|
package/lib/awscdk-app-ts.d.ts
CHANGED
|
@@ -1,33 +1,10 @@
|
|
|
1
|
+
import { CdkTasks, LambdaFunctionCommonOptions } from './awscdk';
|
|
2
|
+
import { CdkConfig, CdkConfigCommonOptions } from './awscdk/cdk-config';
|
|
1
3
|
import { TypeScriptAppProject, TypeScriptProjectOptions } from './typescript';
|
|
2
4
|
/**
|
|
3
5
|
* @experimental
|
|
4
6
|
*/
|
|
5
|
-
export
|
|
6
|
-
/**
|
|
7
|
-
* (experimental) Approval is never required.
|
|
8
|
-
*
|
|
9
|
-
* @experimental
|
|
10
|
-
*/
|
|
11
|
-
NEVER = "never",
|
|
12
|
-
/**
|
|
13
|
-
* (experimental) Requires approval on any IAM or security-group-related change.
|
|
14
|
-
*
|
|
15
|
-
* @experimental
|
|
16
|
-
*/
|
|
17
|
-
ANY_CHANGE = "any-change",
|
|
18
|
-
/**
|
|
19
|
-
* (experimental) Requires approval when IAM statements or traffic rules are added;
|
|
20
|
-
*
|
|
21
|
-
* removals don't require approval
|
|
22
|
-
*
|
|
23
|
-
* @experimental
|
|
24
|
-
*/
|
|
25
|
-
BROADENING = "broadening"
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* @experimental
|
|
29
|
-
*/
|
|
30
|
-
export interface AwsCdkTypeScriptAppOptions extends TypeScriptProjectOptions {
|
|
7
|
+
export interface AwsCdkTypeScriptAppOptions extends TypeScriptProjectOptions, CdkConfigCommonOptions {
|
|
31
8
|
/**
|
|
32
9
|
* (experimental) AWS CDK version to use.
|
|
33
10
|
*
|
|
@@ -54,27 +31,26 @@ export interface AwsCdkTypeScriptAppOptions extends TypeScriptProjectOptions {
|
|
|
54
31
|
*/
|
|
55
32
|
readonly cdkDependencies?: string[];
|
|
56
33
|
/**
|
|
57
|
-
* (experimental)
|
|
34
|
+
* (experimental) The CDK app's entrypoint (relative to the source directory, which is "src" by default).
|
|
58
35
|
*
|
|
36
|
+
* @default "main.ts"
|
|
59
37
|
* @experimental
|
|
60
38
|
*/
|
|
61
|
-
readonly
|
|
62
|
-
[key: string]: string;
|
|
63
|
-
};
|
|
39
|
+
readonly appEntrypoint?: string;
|
|
64
40
|
/**
|
|
65
|
-
* (experimental)
|
|
41
|
+
* (experimental) Automatically adds an `awscdk.LambdaFunction` for each `.lambda.ts` handler in your source tree. If this is disabled, you can manually add an `awscdk.AutoDiscover` component to your project.
|
|
66
42
|
*
|
|
67
|
-
* @default
|
|
43
|
+
* @default true
|
|
68
44
|
* @experimental
|
|
69
45
|
*/
|
|
70
|
-
readonly
|
|
46
|
+
readonly lambdaAutoDiscover?: boolean;
|
|
71
47
|
/**
|
|
72
|
-
* (experimental)
|
|
48
|
+
* (experimental) Common options for all AWS Lambda functions.
|
|
73
49
|
*
|
|
74
|
-
* @default
|
|
50
|
+
* @default - default options
|
|
75
51
|
* @experimental
|
|
76
52
|
*/
|
|
77
|
-
readonly
|
|
53
|
+
readonly lambdaOptions?: LambdaFunctionCommonOptions;
|
|
78
54
|
}
|
|
79
55
|
/**
|
|
80
56
|
* (experimental) AWS CDK app in TypeScript.
|
|
@@ -90,17 +66,23 @@ export declare class AwsCdkTypeScriptApp extends TypeScriptAppProject {
|
|
|
90
66
|
*/
|
|
91
67
|
readonly cdkVersion: string;
|
|
92
68
|
/**
|
|
93
|
-
* (experimental)
|
|
69
|
+
* (experimental) The CDK app entrypoint.
|
|
94
70
|
*
|
|
95
71
|
* @experimental
|
|
96
72
|
*/
|
|
97
|
-
readonly
|
|
73
|
+
readonly appEntrypoint: string;
|
|
98
74
|
/**
|
|
99
|
-
* (experimental)
|
|
75
|
+
* (experimental) Common CDK tasks.
|
|
100
76
|
*
|
|
101
77
|
* @experimental
|
|
102
78
|
*/
|
|
103
|
-
readonly
|
|
79
|
+
readonly cdkTasks: CdkTasks;
|
|
80
|
+
/**
|
|
81
|
+
* (experimental) cdk.json configuration.
|
|
82
|
+
*
|
|
83
|
+
* @experimental
|
|
84
|
+
*/
|
|
85
|
+
readonly cdkConfig: CdkConfig;
|
|
104
86
|
/**
|
|
105
87
|
* @experimental
|
|
106
88
|
*/
|