@composurecdk/apigateway 0.6.0 → 0.7.0
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/dist/resource-builder.d.ts +12 -0
- package/dist/resource-builder.d.ts.map +1 -1
- package/dist/resource-builder.js +17 -0
- package/dist/resource-builder.js.map +1 -1
- package/dist/rest-api-builder.d.ts +13 -2
- package/dist/rest-api-builder.d.ts.map +1 -1
- package/dist/rest-api-builder.js +16 -2
- package/dist/rest-api-builder.js.map +1 -1
- package/dist/spec-rest-api-builder.d.ts +5 -2
- package/dist/spec-rest-api-builder.d.ts.map +1 -1
- package/dist/spec-rest-api-builder.js +7 -2
- package/dist/spec-rest-api-builder.js.map +1 -1
- package/package.json +5 -4
|
@@ -51,6 +51,18 @@ export declare class ResourceBuilder {
|
|
|
51
51
|
* @returns This builder for chaining.
|
|
52
52
|
*/
|
|
53
53
|
addResource(pathPart: string, configure?: (resource: ResourceBuilder) => void): this;
|
|
54
|
+
/**
|
|
55
|
+
* Copies this builder's resource tree onto `target`. Used by
|
|
56
|
+
* `RestApiBuilder.[COPY_STATE]` per ADR-0005's containers-fresh,
|
|
57
|
+
* elements-shared rule: the `methods` array and `children` Map are
|
|
58
|
+
* reconstructed on `target`, but `MethodDefinition` and child
|
|
59
|
+
* `ResourceDefinition` entries are shared by reference. Sharing the
|
|
60
|
+
* child entries is safe because the public API (`addResource`)
|
|
61
|
+
* replaces a child wholesale rather than mutating it in place.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
copyInto(target: ResourceBuilder): void;
|
|
54
66
|
/** @internal */
|
|
55
67
|
applyTo(resource: IResource, context?: Record<string, object>): void;
|
|
56
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-builder.d.ts","sourceRoot":"","sources":["../src/resource-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE9D,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,eAAe;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAwC;IAE/E;;;;;;;;OAQG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,EACrC,OAAO,CAAC,EAAE,aAAa,GACtB,IAAI;IAKP;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IASpF,gBAAgB;IAChB,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI;CAczE"}
|
|
1
|
+
{"version":3,"file":"resource-builder.d.ts","sourceRoot":"","sources":["../src/resource-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAW,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAE9D,UAAU,gBAAgB;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,UAAU,kBAAkB;IAC1B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,eAAe;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,UAAU,EAAE,kBAAkB,CAAwC;IAE/E;;;;;;;;OAQG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,EACrC,OAAO,CAAC,EAAE,aAAa,GACtB,IAAI;IAKP;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IASpF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAOvC,gBAAgB;IAChB,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,IAAI;CAczE"}
|
package/dist/resource-builder.js
CHANGED
|
@@ -51,6 +51,23 @@ export class ResourceBuilder {
|
|
|
51
51
|
this.definition.children.set(pathPart, child.definition);
|
|
52
52
|
return this;
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Copies this builder's resource tree onto `target`. Used by
|
|
56
|
+
* `RestApiBuilder.[COPY_STATE]` per ADR-0005's containers-fresh,
|
|
57
|
+
* elements-shared rule: the `methods` array and `children` Map are
|
|
58
|
+
* reconstructed on `target`, but `MethodDefinition` and child
|
|
59
|
+
* `ResourceDefinition` entries are shared by reference. Sharing the
|
|
60
|
+
* child entries is safe because the public API (`addResource`)
|
|
61
|
+
* replaces a child wholesale rather than mutating it in place.
|
|
62
|
+
*
|
|
63
|
+
* @internal
|
|
64
|
+
*/
|
|
65
|
+
copyInto(target) {
|
|
66
|
+
target.definition.methods.push(...this.definition.methods);
|
|
67
|
+
for (const [pathPart, childDef] of this.definition.children) {
|
|
68
|
+
target.definition.children.set(pathPart, childDef);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
54
71
|
/** @internal */
|
|
55
72
|
applyTo(resource, context = {}) {
|
|
56
73
|
for (const method of this.definition.methods) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-builder.js","sourceRoot":"","sources":["../src/resource-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AAa9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,eAAe;IAC1B,gBAAgB;IACP,UAAU,GAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAE/E;;;;;;;;OAQG;IACH,SAAS,CACP,UAAkB,EAClB,WAAqC,EACrC,OAAuB;QAEvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,QAAgB,EAAE,SAA+C;QAC3E,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,QAAmB,EAAE,UAAkC,EAAE;QAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,WAAW,GACf,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;YAC3C,YAAY,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACnD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"resource-builder.js","sourceRoot":"","sources":["../src/resource-builder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAmB,MAAM,oBAAoB,CAAC;AAa9D;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,eAAe;IAC1B,gBAAgB;IACP,UAAU,GAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;IAE/E;;;;;;;;OAQG;IACH,SAAS,CACP,UAAkB,EAClB,WAAqC,EACrC,OAAuB;QAEvB,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,QAAgB,EAAE,SAA+C;QAC3E,MAAM,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,MAAuB;QAC9B,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3D,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,gBAAgB;IAChB,OAAO,CAAC,QAAmB,EAAE,UAAkC,EAAE;QAC/D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7C,MAAM,WAAW,GACf,MAAM,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACtF,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC5D,MAAM,aAAa,GAAG,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;YAC3C,YAAY,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YACnD,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,YAAY,CAAC,OAAO,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type Integration, type MethodOptions, RestApi, type RestApiBase, type RestApiProps } from "aws-cdk-lib/aws-apigateway";
|
|
2
2
|
import { type IConstruct } from "constructs";
|
|
3
|
-
import {
|
|
3
|
+
import { COPY_STATE, type Lifecycle, type Resolvable } from "@composurecdk/core";
|
|
4
|
+
import { type ITaggedBuilder } from "@composurecdk/cloudformation";
|
|
4
5
|
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
5
6
|
import type { RestApiBuilderPropsBase, RestApiBuilderResultBase } from "./builder-common.js";
|
|
6
7
|
import { ResourceBuilder } from "./resource-builder.js";
|
|
@@ -42,7 +43,7 @@ export type RestApiBuilderResult = RestApiBuilderResultBase<RestApi>;
|
|
|
42
43
|
* );
|
|
43
44
|
* ```
|
|
44
45
|
*/
|
|
45
|
-
export type IRestApiBuilder =
|
|
46
|
+
export type IRestApiBuilder = ITaggedBuilder<RestApiBuilderProps, RestApiBuilder>;
|
|
46
47
|
declare class RestApiBuilder implements Lifecycle<RestApiBuilderResult> {
|
|
47
48
|
#private;
|
|
48
49
|
props: Partial<RestApiBuilderProps>;
|
|
@@ -65,6 +66,16 @@ declare class RestApiBuilder implements Lifecycle<RestApiBuilderResult> {
|
|
|
65
66
|
* @returns This builder for chaining.
|
|
66
67
|
*/
|
|
67
68
|
addResource(pathPart: string, configure?: (resource: ResourceBuilder) => void): this;
|
|
69
|
+
/**
|
|
70
|
+
* Copies non-`props` state onto a freshly cloned builder. The resource
|
|
71
|
+
* tree is deep-cloned via `ResourceBuilder.copyInto` so mutations on
|
|
72
|
+
* either side after `.copy()` do not leak; the alarm-builder array is
|
|
73
|
+
* spread into a fresh container with elements shared by reference per
|
|
74
|
+
* ADR-0005's shallow-clone stance.
|
|
75
|
+
*
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
[COPY_STATE](target: RestApiBuilder): void;
|
|
68
79
|
build(scope: IConstruct, id: string, context?: Record<string, object>): RestApiBuilderResult;
|
|
69
80
|
}
|
|
70
81
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-api-builder.d.ts","sourceRoot":"","sources":["../src/rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,OAAO,EACP,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"rest-api-builder.d.ts","sourceRoot":"","sources":["../src/rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,OAAO,EACP,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG7F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,YAAY,EAAE,uBAAuB;CAAG;AAErF;;;GAGG;AACH,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;AAElF,cAAM,cAAe,YAAW,SAAS,CAAC,oBAAoB,CAAC;;IAC7D,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAM;IAIzC,QAAQ,CACN,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,WAAW,CAAC,KAAK,sBAAsB,CAAC,WAAW,CAAC,GAC7F,IAAI;IAKP;;;;;;;;OAQG;IACH,SAAS,CACP,UAAU,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC,EACrC,OAAO,CAAC,EAAE,aAAa,GACtB,IAAI;IAKP;;;;;;OAMG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,IAAI,GAAG,IAAI;IAKpF;;;;;;;;OAQG;IACH,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IAK1C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,oBAAoB;CAoB7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD"}
|
package/dist/rest-api-builder.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { RestApi, } from "aws-cdk-lib/aws-apigateway";
|
|
2
|
-
import {
|
|
2
|
+
import { COPY_STATE } from "@composurecdk/core";
|
|
3
|
+
import { taggedBuilder } from "@composurecdk/cloudformation";
|
|
3
4
|
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
4
5
|
import { REST_API_DEFAULTS } from "./defaults.js";
|
|
5
6
|
import { resolveDeployOptions } from "./deploy-options.js";
|
|
@@ -37,6 +38,19 @@ class RestApiBuilder {
|
|
|
37
38
|
this.#root.addResource(pathPart, configure);
|
|
38
39
|
return this;
|
|
39
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Copies non-`props` state onto a freshly cloned builder. The resource
|
|
43
|
+
* tree is deep-cloned via `ResourceBuilder.copyInto` so mutations on
|
|
44
|
+
* either side after `.copy()` do not leak; the alarm-builder array is
|
|
45
|
+
* spread into a fresh container with elements shared by reference per
|
|
46
|
+
* ADR-0005's shallow-clone stance.
|
|
47
|
+
*
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
[COPY_STATE](target) {
|
|
51
|
+
this.#root.copyInto(target.#root);
|
|
52
|
+
target.#customAlarms.push(...this.#customAlarms);
|
|
53
|
+
}
|
|
40
54
|
build(scope, id, context) {
|
|
41
55
|
const { accessLogging, recommendedAlarms: alarmConfig, ...restApiProps } = this.props;
|
|
42
56
|
const { accessLogGroup, deployOptions } = resolveDeployOptions(scope, id, accessLogging, REST_API_DEFAULTS.deployOptions ?? {}, restApiProps.deployOptions ?? {});
|
|
@@ -83,6 +97,6 @@ class RestApiBuilder {
|
|
|
83
97
|
* ```
|
|
84
98
|
*/
|
|
85
99
|
export function createRestApiBuilder() {
|
|
86
|
-
return
|
|
100
|
+
return taggedBuilder(RestApiBuilder);
|
|
87
101
|
}
|
|
88
102
|
//# sourceMappingURL=rest-api-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-api-builder.js","sourceRoot":"","sources":["../src/rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,GAGR,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rest-api-builder.js","sourceRoot":"","sources":["../src/rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,GAGR,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,UAAU,EAAmC,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAuB,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AA2C3D,MAAM,cAAc;IAClB,KAAK,GAAiC,EAAE,CAAC;IAChC,KAAK,GAAG,IAAI,eAAe,EAAE,CAAC;IAC9B,aAAa,GAA0C,EAAE,CAAC;IAEnE,QAAQ,CACN,GAAW,EACX,SAA8F;QAE9F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CACP,UAAkB,EAClB,WAAqC,EACrC,OAAuB;QAEvB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,QAAgB,EAAE,SAA+C;QAC3E,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,CAAC,UAAU,CAAC,CAAC,MAAsB;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,KAAiB,EAAE,EAAU,EAAE,OAAgC;QACnE,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtF,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAC5D,KAAK,EACL,EAAE,EACF,aAAa,EACb,iBAAiB,CAAC,aAAa,IAAI,EAAE,EACrC,YAAY,CAAC,aAAa,IAAI,EAAE,CACjC,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE;YACjC,GAAG,YAAY;YACf,aAAa;SACd,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpF,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,aAAa,CAAsC,cAAc,CAAC,CAAC;AAC5E,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { type RestApiBase, SpecRestApi, type SpecRestApiProps } from "aws-cdk-lib/aws-apigateway";
|
|
2
2
|
import { type IConstruct } from "constructs";
|
|
3
|
-
import {
|
|
3
|
+
import { COPY_STATE, type Lifecycle } from "@composurecdk/core";
|
|
4
|
+
import { type ITaggedBuilder } from "@composurecdk/cloudformation";
|
|
4
5
|
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
5
6
|
import type { RestApiBuilderPropsBase, RestApiBuilderResultBase } from "./builder-common.js";
|
|
6
7
|
/**
|
|
@@ -37,11 +38,13 @@ export type SpecRestApiBuilderResult = RestApiBuilderResultBase<SpecRestApi>;
|
|
|
37
38
|
* .apiDefinition(ApiDefinition.fromAsset("openapi/petstore.yaml"));
|
|
38
39
|
* ```
|
|
39
40
|
*/
|
|
40
|
-
export type ISpecRestApiBuilder =
|
|
41
|
+
export type ISpecRestApiBuilder = ITaggedBuilder<SpecRestApiBuilderProps, SpecRestApiBuilder>;
|
|
41
42
|
declare class SpecRestApiBuilder implements Lifecycle<SpecRestApiBuilderResult> {
|
|
42
43
|
#private;
|
|
43
44
|
props: Partial<SpecRestApiBuilderProps>;
|
|
44
45
|
addAlarm(key: string, configure: (alarm: AlarmDefinitionBuilder<RestApiBase>) => AlarmDefinitionBuilder<RestApiBase>): this;
|
|
46
|
+
/** @internal — see ADR-0005. */
|
|
47
|
+
[COPY_STATE](target: SpecRestApiBuilder): void;
|
|
45
48
|
build(scope: IConstruct, id: string): SpecRestApiBuilderResult;
|
|
46
49
|
}
|
|
47
50
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-rest-api-builder.d.ts","sourceRoot":"","sources":["../src/spec-rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,
|
|
1
|
+
{"version":3,"file":"spec-rest-api-builder.d.ts","sourceRoot":"","sources":["../src/spec-rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,KAAK,cAAc,EAAiB,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAK7F;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB,EAAE,uBAAuB;CAAG;AAE7F;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;AAE9F,cAAM,kBAAmB,YAAW,SAAS,CAAC,wBAAwB,CAAC;;IACrE,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAM;IAG7C,QAAQ,CACN,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,KAAK,EAAE,sBAAsB,CAAC,WAAW,CAAC,KAAK,sBAAsB,CAAC,WAAW,CAAC,GAC7F,IAAI;IAKP,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAI9C,KAAK,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,wBAAwB;CAmB/D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,wBAAgB,wBAAwB,IAAI,mBAAmB,CAE9D"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { SpecRestApi } from "aws-cdk-lib/aws-apigateway";
|
|
2
|
-
import {
|
|
2
|
+
import { COPY_STATE } from "@composurecdk/core";
|
|
3
|
+
import { taggedBuilder } from "@composurecdk/cloudformation";
|
|
3
4
|
import { AlarmDefinitionBuilder } from "@composurecdk/cloudwatch";
|
|
4
5
|
import { SPEC_REST_API_DEFAULTS } from "./defaults.js";
|
|
5
6
|
import { resolveDeployOptions } from "./deploy-options.js";
|
|
@@ -11,6 +12,10 @@ class SpecRestApiBuilder {
|
|
|
11
12
|
this.#customAlarms.push(configure(new AlarmDefinitionBuilder(key)));
|
|
12
13
|
return this;
|
|
13
14
|
}
|
|
15
|
+
/** @internal — see ADR-0005. */
|
|
16
|
+
[COPY_STATE](target) {
|
|
17
|
+
target.#customAlarms.push(...this.#customAlarms);
|
|
18
|
+
}
|
|
14
19
|
build(scope, id) {
|
|
15
20
|
const { accessLogging, recommendedAlarms: alarmConfig, ...specRestApiProps } = this.props;
|
|
16
21
|
const { accessLogGroup, deployOptions } = resolveDeployOptions(scope, id, accessLogging, SPEC_REST_API_DEFAULTS.deployOptions ?? {}, specRestApiProps.deployOptions ?? {});
|
|
@@ -61,6 +66,6 @@ class SpecRestApiBuilder {
|
|
|
61
66
|
* ```
|
|
62
67
|
*/
|
|
63
68
|
export function createSpecRestApiBuilder() {
|
|
64
|
-
return
|
|
69
|
+
return taggedBuilder(SpecRestApiBuilder);
|
|
65
70
|
}
|
|
66
71
|
//# sourceMappingURL=spec-rest-api-builder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-rest-api-builder.js","sourceRoot":"","sources":["../src/spec-rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAyB,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"spec-rest-api-builder.js","sourceRoot":"","sources":["../src/spec-rest-api-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAyB,MAAM,4BAA4B,CAAC;AAElG,OAAO,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAuB,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAuC3D,MAAM,kBAAkB;IACtB,KAAK,GAAqC,EAAE,CAAC;IACpC,aAAa,GAA0C,EAAE,CAAC;IAEnE,QAAQ,CACN,GAAW,EACX,SAA8F;QAE9F,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,sBAAsB,CAAc,GAAG,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gCAAgC;IAChC,CAAC,UAAU,CAAC,CAAC,MAA0B;QACrC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,KAAiB,EAAE,EAAU;QACjC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1F,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,oBAAoB,CAC5D,KAAK,EACL,EAAE,EACF,aAAa,EACb,sBAAsB,CAAC,aAAa,IAAI,EAAE,EAC1C,gBAAgB,CAAC,aAAa,IAAI,EAAE,CACrC,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE;YACrC,GAAG,gBAAgB;YACnB,aAAa;SACM,CAAC,CAAC;QAEvB,MAAM,MAAM,GAAG,mBAAmB,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpF,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;IACzC,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,aAAa,CAA8C,kBAAkB,CAAC,CAAC;AACxF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@composurecdk/apigateway",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Composable API Gateway REST API builder with well-architected defaults",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -35,9 +35,10 @@
|
|
|
35
35
|
},
|
|
36
36
|
"type": "module",
|
|
37
37
|
"peerDependencies": {
|
|
38
|
-
"@composurecdk/
|
|
39
|
-
"@composurecdk/
|
|
40
|
-
"@composurecdk/
|
|
38
|
+
"@composurecdk/cloudformation": "^0.7.0",
|
|
39
|
+
"@composurecdk/cloudwatch": "^0.7.0",
|
|
40
|
+
"@composurecdk/core": "^0.7.0",
|
|
41
|
+
"@composurecdk/logs": "^0.7.0",
|
|
41
42
|
"aws-cdk-lib": "^2.0.0",
|
|
42
43
|
"constructs": "^10.0.0"
|
|
43
44
|
},
|