@fy-stack/app-construct 0.0.131 → 0.0.132
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/lib/image-app-construct.d.ts +3 -3
- package/dist/lib/image-app-construct.d.ts.map +1 -1
- package/dist/lib/image-app-construct.js +3 -4
- package/dist/lib/next-app-router-construct.d.ts.map +1 -1
- package/dist/lib/next-app-router-construct.js +4 -0
- package/dist/lib/node-api-construct.js +1 -1
- package/dist/lib/node-app-construct.js +1 -1
- package/dist/lib/types.d.ts +1 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utils/getDefaultLambda.d.ts +8 -0
- package/dist/lib/utils/getDefaultLambda.d.ts.map +1 -0
- package/dist/lib/utils/getDefaultLambda.js +11 -0
- package/dist/lib/utils/lambda-api.js +1 -1
- package/package.json +2 -2
|
@@ -11,11 +11,11 @@ declare const BuildParamsSchema: z.ZodObject<{
|
|
|
11
11
|
file: z.ZodOptional<z.ZodString>;
|
|
12
12
|
cmd: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
13
13
|
}, "strip", z.ZodTypeAny, {
|
|
14
|
-
file?: string | undefined;
|
|
15
14
|
cmd?: string[] | undefined;
|
|
16
|
-
}, {
|
|
17
15
|
file?: string | undefined;
|
|
16
|
+
}, {
|
|
18
17
|
cmd?: string[] | undefined;
|
|
18
|
+
file?: string | undefined;
|
|
19
19
|
}>;
|
|
20
20
|
export declare class ImageAppConstruct extends Construct implements AppConstruct {
|
|
21
21
|
function: Function;
|
|
@@ -28,8 +28,8 @@ export declare class ImageAppConstruct extends Construct implements AppConstruct
|
|
|
28
28
|
cloudfrontPolicy(distributionId: string): void;
|
|
29
29
|
api(path: string): Record<string, HttpRouteIntegration>;
|
|
30
30
|
static parse(params: unknown): {
|
|
31
|
-
file?: string | undefined;
|
|
32
31
|
cmd?: string[] | undefined;
|
|
32
|
+
file?: string | undefined;
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
35
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-app-construct.d.ts","sourceRoot":"","sources":["../../src/lib/image-app-construct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAEL,eAAe,EAKhB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAEL,QAAQ,EAIT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK5E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"image-app-construct.d.ts","sourceRoot":"","sources":["../../src/lib/image-app-construct.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAEL,eAAe,EAKhB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAEL,QAAQ,EAIT,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK5E,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAMtD,QAAA,MAAM,iBAAiB;;;;;;;;;EAGrB,CAAA;AAEF,qBAAa,iBACX,SAAQ,SACR,YAAW,YAAY;IAEhB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;gBAEpB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;IA2BjG,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI;IAIpD,KAAK,CAAC,GAAG,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAIvC,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB;IAQ1D,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;IAqBzD,gBAAgB,CAAC,cAAc,EAAE,MAAM;IAIvC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAIvD,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO;;;;CAG7B"}
|
|
@@ -11,6 +11,7 @@ const aws_sns_subscriptions_1 = require("aws-cdk-lib/aws-sns-subscriptions");
|
|
|
11
11
|
const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
|
|
12
12
|
const constructs_1 = require("constructs");
|
|
13
13
|
const zod_1 = require("zod");
|
|
14
|
+
const getDefaultLambda_1 = require("./utils/getDefaultLambda");
|
|
14
15
|
const lambda_api_1 = require("./utils/lambda-api");
|
|
15
16
|
const lambda_attach_1 = require("./utils/lambda-attach");
|
|
16
17
|
const lambda_grant_1 = require("./utils/lambda-grant");
|
|
@@ -24,20 +25,18 @@ class ImageAppConstruct extends constructs_1.Construct {
|
|
|
24
25
|
constructor(scope, id, props) {
|
|
25
26
|
super(scope, id);
|
|
26
27
|
this.function = new aws_lambda_1.Function(this, `AppFunction`, {
|
|
27
|
-
|
|
28
|
-
timeout: aws_cdk_lib_1.Duration.seconds(30),
|
|
28
|
+
...(0, getDefaultLambda_1.getDefaultLambda)(props),
|
|
29
29
|
code: aws_lambda_1.Code.fromAssetImage(props.output, {
|
|
30
30
|
file: props.buildParams.file,
|
|
31
31
|
platform: aws_ecr_assets_1.Platform.LINUX_AMD64,
|
|
32
32
|
cmd: props.buildParams.cmd,
|
|
33
33
|
}),
|
|
34
|
-
environment: props.env,
|
|
35
34
|
handler: aws_lambda_1.Handler.FROM_IMAGE,
|
|
36
35
|
runtime: aws_lambda_1.Runtime.FROM_IMAGE,
|
|
37
36
|
});
|
|
38
37
|
if (props.queue) {
|
|
39
38
|
this.queue = new aws_sqs_1.Queue(this, 'AppQueue', {
|
|
40
|
-
visibilityTimeout: aws_cdk_lib_1.Duration.seconds(
|
|
39
|
+
visibilityTimeout: aws_cdk_lib_1.Duration.seconds((props.timeout ?? 30) + 30),
|
|
41
40
|
});
|
|
42
41
|
this.function.addEventSource(new aws_lambda_event_sources_1.SqsEventSource(this.queue, {
|
|
43
42
|
batchSize: props.queue.batchSize,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"next-app-router-construct.d.ts","sourceRoot":"","sources":["../../src/lib/next-app-router-construct.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAItD,QAAA,MAAM,iBAAiB;;;;;;EAErB,CAAA;AAEF,qBAAa,sBAAuB,SAAQ,SAAU,YAAW,YAAY;IACpE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAgEjG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"next-app-router-construct.d.ts","sourceRoot":"","sources":["../../src/lib/next-app-router-construct.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,KAAK,UAAU,MAAM,4BAA4B,CAAC;AAEzD,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AAIjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAItD,QAAA,MAAM,iBAAiB;;;;;;EAErB,CAAA;AAEF,qBAAa,sBAAuB,SAAQ,SAAU,YAAW,YAAY;IACpE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,KAAK,EAAE,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;gBAEvB,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;IAgEjG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,eAAe,CAAC;IAuDpE,gBAAgB,CAAC,cAAc,EAAE,MAAM;IAIvC,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAI3C,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC;IAI7C,KAAK,CAAC,GAAG,MAAM,EAAE,SAAS,EAAE;IAI5B,YAAY,IAAI,kBAAkB;IAIlC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO;;;CAG7B"}
|
|
@@ -111,6 +111,10 @@ class NextAppRouterConstruct extends constructs_1.Construct {
|
|
|
111
111
|
},
|
|
112
112
|
[`${path}/_next/*`]: staticBehavior,
|
|
113
113
|
[`${path}/*.ico`]: staticBehavior,
|
|
114
|
+
[`${path}/*.png`]: staticBehavior,
|
|
115
|
+
[`${path}/*.svg`]: staticBehavior,
|
|
116
|
+
[`${path}/*.jpg`]: staticBehavior,
|
|
117
|
+
[`${path}/*.jpeg`]: staticBehavior,
|
|
114
118
|
};
|
|
115
119
|
}
|
|
116
120
|
cloudfrontPolicy(distributionId) {
|
|
@@ -76,7 +76,7 @@ class NodeApiConstruct extends constructs_1.Construct {
|
|
|
76
76
|
responseHeadersPolicy: cloudfront.ResponseHeadersPolicy
|
|
77
77
|
.CORS_ALLOW_ALL_ORIGINS_WITH_PREFLIGHT_AND_SECURITY_HEADERS,
|
|
78
78
|
};
|
|
79
|
-
return { [`${path}
|
|
79
|
+
return { [`${path}/{proxy+}`]: apiBehavior };
|
|
80
80
|
}
|
|
81
81
|
cloudfrontPolicy(distributionId) {
|
|
82
82
|
throw new Error(`cloudfrontPolicy not supported for ${this}`);
|
|
@@ -61,7 +61,7 @@ class NodeAppConstruct extends constructs_1.Construct {
|
|
|
61
61
|
api(path) {
|
|
62
62
|
this.function.addEnvironment('BASE_PATH', path);
|
|
63
63
|
const integration = new aws_apigatewayv2_integrations_1.HttpLambdaIntegration('AppIntegration', this.function);
|
|
64
|
-
return { [`${path}
|
|
64
|
+
return { [`${path}/{proxy+}`]: integration };
|
|
65
65
|
}
|
|
66
66
|
static parse(params) {
|
|
67
67
|
return BuildParamsSchema.parse(params);
|
package/dist/lib/types.d.ts
CHANGED
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,MAAM,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACjE,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAA;CACX,CAAC;AAEF,MAAM,WAAW,YAAa,SAAQ,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;IAC1F,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAE5C,MAAM,MAAM,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACjE,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAA;CACX,CAAC;AAEF,MAAM,WAAW,YAAa,SAAQ,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW;IAC1F,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAA;CACd"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Duration } from 'aws-cdk-lib';
|
|
2
|
+
import { AppProperties } from '../types';
|
|
3
|
+
export declare function getDefaultLambda(props: AppProperties<unknown>): {
|
|
4
|
+
memorySize: number;
|
|
5
|
+
timeout: Duration;
|
|
6
|
+
environment: Record<string, string> | undefined;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=getDefaultLambda.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultLambda.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/getDefaultLambda.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC;;;;EAM7D"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultLambda = getDefaultLambda;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
function getDefaultLambda(props) {
|
|
6
|
+
return {
|
|
7
|
+
memorySize: 512,
|
|
8
|
+
timeout: aws_cdk_lib_1.Duration.seconds(props.timeout ?? 30),
|
|
9
|
+
environment: props.env,
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -10,5 +10,5 @@ function lambdaApi(func, path) {
|
|
|
10
10
|
});
|
|
11
11
|
func.addEnvironment('BASE_PATH', path);
|
|
12
12
|
const integration = new aws_apigatewayv2_integrations_1.HttpUrlIntegration('AppIntegration', apiUrl.url);
|
|
13
|
-
return { [`${path}
|
|
13
|
+
return { [`${path}/{proxy+}`]: integration };
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fy-stack/app-construct",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.132",
|
|
4
4
|
"repository": "https://github.com/festusyuma/fy-stack",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@fy-stack/types": "0.0.
|
|
6
|
+
"@fy-stack/types": "0.0.132",
|
|
7
7
|
"tslib": "^2.3.0",
|
|
8
8
|
"zod": "^3.24.1"
|
|
9
9
|
},
|