@aligent/cdk-prerender-proxy 2.1.0 → 2.1.1
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/index.d.ts +6 -0
- package/lib/error-response-construct.d.ts +11 -0
- package/lib/error-response-construct.js +42 -0
- package/lib/prerender-cf-cache-control-construct.d.ts +12 -0
- package/lib/prerender-cf-cache-control-construct.js +43 -0
- package/lib/prerender-check-construct.d.ts +8 -0
- package/lib/prerender-check-construct.js +38 -0
- package/lib/prerender-construct.d.ts +13 -0
- package/lib/prerender-construct.js +44 -0
- package/lib/prerender-lambda-construct.d.ts +17 -0
- package/lib/prerender-lambda-construct.js +19 -0
- package/package.json +3 -3
- package/index.ts +0 -29
- package/lib/error-response-construct.ts +0 -54
- package/lib/prerender-cf-cache-control-construct.ts +0 -58
- package/lib/prerender-check-construct.ts +0 -43
- package/lib/prerender-construct.ts +0 -55
- package/lib/prerender-lambda-construct.ts +0 -48
package/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { PrerenderLambda, PrerenderLambdaProps } from "./lib/prerender-lambda-construct";
|
|
2
|
+
import { PrerenderFunction, PrerenderFunctionOptions } from "./lib/prerender-construct";
|
|
3
|
+
import { PrerenderCheckFunction } from "./lib/prerender-check-construct";
|
|
4
|
+
import { ErrorResponseFunction, ErrorResponseFunctionOptions } from "./lib/error-response-construct";
|
|
5
|
+
import { CloudFrontCacheControl, CloudFrontCacheControlOptions } from "./lib/prerender-cf-cache-control-construct";
|
|
6
|
+
export { PrerenderLambda, PrerenderFunction, PrerenderCheckFunction, ErrorResponseFunction, CloudFrontCacheControl, CloudFrontCacheControlOptions, ErrorResponseFunctionOptions, PrerenderFunctionOptions, PrerenderLambdaProps, };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
2
|
+
import { IVersion } from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export interface ErrorResponseFunctionOptions {
|
|
5
|
+
pathPrefix?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class ErrorResponseFunction extends Construct {
|
|
8
|
+
readonly edgeFunction: EdgeFunction;
|
|
9
|
+
constructor(scope: Construct, id: string, options: ErrorResponseFunctionOptions);
|
|
10
|
+
getFunctionVersion(): IVersion;
|
|
11
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorResponseFunction = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const experimental_1 = require("aws-cdk-lib/aws-cloudfront/lib/experimental");
|
|
6
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
7
|
+
const constructs_1 = require("constructs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const cdk_esbuild_1 = require("@aligent/cdk-esbuild");
|
|
10
|
+
class ErrorResponseFunction extends constructs_1.Construct {
|
|
11
|
+
constructor(scope, id, options) {
|
|
12
|
+
var _a;
|
|
13
|
+
super(scope, id);
|
|
14
|
+
const command = [
|
|
15
|
+
"sh",
|
|
16
|
+
"-c",
|
|
17
|
+
'echo "Docker build not supported. Please install esbuild."',
|
|
18
|
+
];
|
|
19
|
+
this.edgeFunction = new experimental_1.EdgeFunction(this, `${id}-error-response-fn`, {
|
|
20
|
+
code: aws_lambda_1.Code.fromAsset((0, path_1.join)(__dirname, "handlers"), {
|
|
21
|
+
assetHashType: aws_cdk_lib_1.AssetHashType.OUTPUT,
|
|
22
|
+
bundling: {
|
|
23
|
+
command,
|
|
24
|
+
image: aws_cdk_lib_1.DockerImage.fromRegistry("busybox"),
|
|
25
|
+
local: new cdk_esbuild_1.Esbuild({
|
|
26
|
+
entryPoints: [(0, path_1.join)(__dirname, "handlers/error-response.ts")],
|
|
27
|
+
define: {
|
|
28
|
+
"process.env.PATH_PREFIX": (_a = options.pathPrefix) !== null && _a !== void 0 ? _a : "",
|
|
29
|
+
},
|
|
30
|
+
}),
|
|
31
|
+
},
|
|
32
|
+
}),
|
|
33
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
34
|
+
handler: "error-response.handler",
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
getFunctionVersion() {
|
|
38
|
+
return aws_lambda_1.Version.fromVersionArn(this, "error-response-fn-version", this.edgeFunction.currentVersion.edgeArn);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.ErrorResponseFunction = ErrorResponseFunction;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItcmVzcG9uc2UtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJyb3ItcmVzcG9uc2UtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5RDtBQUN6RCw4RUFBMkU7QUFDM0UsdURBQTBFO0FBQzFFLDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsc0RBQStDO0FBTS9DLE1BQWEscUJBQXNCLFNBQVEsc0JBQVM7SUFHbEQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsT0FBcUM7O1FBRXJDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJO1lBQ0osSUFBSTtZQUNKLDREQUE0RDtTQUM3RCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDJCQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxvQkFBb0IsRUFBRTtZQUNwRSxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUNoRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO2dCQUNuQyxRQUFRLEVBQUU7b0JBQ1IsT0FBTztvQkFDUCxLQUFLLEVBQUUseUJBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO29CQUMxQyxLQUFLLEVBQUUsSUFBSSxxQkFBTyxDQUFDO3dCQUNqQixXQUFXLEVBQUUsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsNEJBQTRCLENBQUMsQ0FBQzt3QkFDNUQsTUFBTSxFQUFFOzRCQUNOLHlCQUF5QixFQUFFLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksRUFBRTt5QkFDcEQ7cUJBQ0YsQ0FBQztpQkFDSDthQUNGLENBQUM7WUFDRixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSx3QkFBd0I7U0FDbEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPLG9CQUFPLENBQUMsY0FBYyxDQUMzQixJQUFJLEVBQ0osMkJBQTJCLEVBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDekMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFDRCxzREEwQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldEhhc2hUeXBlLCBEb2NrZXJJbWFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgRWRnZUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250L2xpYi9leHBlcmltZW50YWxcIjtcbmltcG9ydCB7IENvZGUsIElWZXJzaW9uLCBSdW50aW1lLCBWZXJzaW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEVzYnVpbGQgfSBmcm9tIFwiQGFsaWdlbnQvY2RrLWVzYnVpbGRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFcnJvclJlc3BvbnNlRnVuY3Rpb25PcHRpb25zIHtcbiAgcGF0aFByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEVycm9yUmVzcG9uc2VGdW5jdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGVkZ2VGdW5jdGlvbjogRWRnZUZ1bmN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBFcnJvclJlc3BvbnNlRnVuY3Rpb25PcHRpb25zXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBjb21tYW5kID0gW1xuICAgICAgXCJzaFwiLFxuICAgICAgXCItY1wiLFxuICAgICAgJ2VjaG8gXCJEb2NrZXIgYnVpbGQgbm90IHN1cHBvcnRlZC4gUGxlYXNlIGluc3RhbGwgZXNidWlsZC5cIicsXG4gICAgXTtcblxuICAgIHRoaXMuZWRnZUZ1bmN0aW9uID0gbmV3IEVkZ2VGdW5jdGlvbih0aGlzLCBgJHtpZH0tZXJyb3ItcmVzcG9uc2UtZm5gLCB7XG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChqb2luKF9fZGlybmFtZSwgXCJoYW5kbGVyc1wiKSwge1xuICAgICAgICBhc3NldEhhc2hUeXBlOiBBc3NldEhhc2hUeXBlLk9VVFBVVCxcbiAgICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgICBjb21tYW5kLFxuICAgICAgICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJidXN5Ym94XCIpLFxuICAgICAgICAgIGxvY2FsOiBuZXcgRXNidWlsZCh7XG4gICAgICAgICAgICBlbnRyeVBvaW50czogW2pvaW4oX19kaXJuYW1lLCBcImhhbmRsZXJzL2Vycm9yLXJlc3BvbnNlLnRzXCIpXSxcbiAgICAgICAgICAgIGRlZmluZToge1xuICAgICAgICAgICAgICBcInByb2Nlc3MuZW52LlBBVEhfUFJFRklYXCI6IG9wdGlvbnMucGF0aFByZWZpeCA/PyBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIGhhbmRsZXI6IFwiZXJyb3ItcmVzcG9uc2UuaGFuZGxlclwiLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZ1bmN0aW9uVmVyc2lvbigpOiBJVmVyc2lvbiB7XG4gICAgcmV0dXJuIFZlcnNpb24uZnJvbVZlcnNpb25Bcm4oXG4gICAgICB0aGlzLFxuICAgICAgXCJlcnJvci1yZXNwb25zZS1mbi12ZXJzaW9uXCIsXG4gICAgICB0aGlzLmVkZ2VGdW5jdGlvbi5jdXJyZW50VmVyc2lvbi5lZGdlQXJuXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
2
|
+
import { IVersion } from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export interface CloudFrontCacheControlOptions {
|
|
5
|
+
cacheKey?: string;
|
|
6
|
+
maxAge?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class CloudFrontCacheControl extends Construct {
|
|
9
|
+
readonly edgeFunction: EdgeFunction;
|
|
10
|
+
constructor(scope: Construct, id: string, options?: CloudFrontCacheControlOptions);
|
|
11
|
+
getFunctionVersion(): IVersion;
|
|
12
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudFrontCacheControl = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const experimental_1 = require("aws-cdk-lib/aws-cloudfront/lib/experimental");
|
|
6
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
7
|
+
const constructs_1 = require("constructs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const cdk_esbuild_1 = require("@aligent/cdk-esbuild");
|
|
10
|
+
class CloudFrontCacheControl extends constructs_1.Construct {
|
|
11
|
+
constructor(scope, id, options) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
super(scope, id);
|
|
14
|
+
const command = [
|
|
15
|
+
"sh",
|
|
16
|
+
"-c",
|
|
17
|
+
'echo "Docker build not supported. Please install esbuild."',
|
|
18
|
+
];
|
|
19
|
+
this.edgeFunction = new experimental_1.EdgeFunction(this, `${id}-cache-control-fn`, {
|
|
20
|
+
code: aws_lambda_1.Code.fromAsset((0, path_1.join)(__dirname, "handlers"), {
|
|
21
|
+
assetHashType: aws_cdk_lib_1.AssetHashType.OUTPUT,
|
|
22
|
+
bundling: {
|
|
23
|
+
command,
|
|
24
|
+
image: aws_cdk_lib_1.DockerImage.fromRegistry("busybox"),
|
|
25
|
+
local: new cdk_esbuild_1.Esbuild({
|
|
26
|
+
entryPoints: [(0, path_1.join)(__dirname, "handlers/cache-control.ts")],
|
|
27
|
+
define: {
|
|
28
|
+
"process.env.PRERENDER_CACHE_KEY": (_a = options === null || options === void 0 ? void 0 : options.cacheKey) !== null && _a !== void 0 ? _a : "x-prerender-requestid",
|
|
29
|
+
"process.env.PRERENDER_CACHE_MAX_AGE": (_b = String(options === null || options === void 0 ? void 0 : options.maxAge)) !== null && _b !== void 0 ? _b : "0",
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
}),
|
|
34
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
35
|
+
handler: "cache-control.handler",
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
getFunctionVersion() {
|
|
39
|
+
return aws_lambda_1.Version.fromVersionArn(this, "cache-control-fn-version", this.edgeFunction.currentVersion.edgeArn);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.CloudFrontCacheControl = CloudFrontCacheControl;
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWNmLWNhY2hlLWNvbnRyb2wtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicHJlcmVuZGVyLWNmLWNhY2hlLWNvbnRyb2wtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5RDtBQUN6RCw4RUFBMkU7QUFDM0UsdURBQTBFO0FBQzFFLDJDQUF1QztBQUN2QywrQkFBNEI7QUFDNUIsc0RBQStDO0FBTy9DLE1BQWEsc0JBQXVCLFNBQVEsc0JBQVM7SUFHbkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsT0FBdUM7O1FBRXZDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxPQUFPLEdBQUc7WUFDZCxJQUFJO1lBQ0osSUFBSTtZQUNKLDREQUE0RDtTQUM3RCxDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDJCQUFZLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxtQkFBbUIsRUFBRTtZQUNuRSxJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxFQUFFO2dCQUNoRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO2dCQUNuQyxRQUFRLEVBQUU7b0JBQ1IsT0FBTztvQkFDUCxLQUFLLEVBQUUseUJBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDO29CQUMxQyxLQUFLLEVBQUUsSUFBSSxxQkFBTyxDQUFDO3dCQUNqQixXQUFXLEVBQUUsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsMkJBQTJCLENBQUMsQ0FBQzt3QkFDM0QsTUFBTSxFQUFFOzRCQUNOLGlDQUFpQyxFQUMvQixNQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxRQUFRLG1DQUFJLHVCQUF1Qjs0QkFDOUMscUNBQXFDLEVBQ25DLE1BQUEsTUFBTSxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLENBQUMsbUNBQUksR0FBRzt5QkFDakM7cUJBQ0YsQ0FBQztpQkFDSDthQUNGLENBQUM7WUFDRixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSx1QkFBdUI7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixPQUFPLG9CQUFPLENBQUMsY0FBYyxDQUMzQixJQUFJLEVBQ0osMEJBQTBCLEVBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FDekMsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTdDRCx3REE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NldEhhc2hUeXBlLCBEb2NrZXJJbWFnZSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgRWRnZUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250L2xpYi9leHBlcmltZW50YWxcIjtcbmltcG9ydCB7IENvZGUsIElWZXJzaW9uLCBSdW50aW1lLCBWZXJzaW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEVzYnVpbGQgfSBmcm9tIFwiQGFsaWdlbnQvY2RrLWVzYnVpbGRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250Q2FjaGVDb250cm9sT3B0aW9ucyB7XG4gIGNhY2hlS2V5Pzogc3RyaW5nO1xuICBtYXhBZ2U/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBDbG91ZEZyb250Q2FjaGVDb250cm9sIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgZWRnZUZ1bmN0aW9uOiBFZGdlRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDbG91ZEZyb250Q2FjaGVDb250cm9sT3B0aW9uc1xuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY29tbWFuZCA9IFtcbiAgICAgIFwic2hcIixcbiAgICAgIFwiLWNcIixcbiAgICAgICdlY2hvIFwiRG9ja2VyIGJ1aWxkIG5vdCBzdXBwb3J0ZWQuIFBsZWFzZSBpbnN0YWxsIGVzYnVpbGQuXCInLFxuICAgIF07XG5cbiAgICB0aGlzLmVkZ2VGdW5jdGlvbiA9IG5ldyBFZGdlRnVuY3Rpb24odGhpcywgYCR7aWR9LWNhY2hlLWNvbnRyb2wtZm5gLCB7XG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChqb2luKF9fZGlybmFtZSwgXCJoYW5kbGVyc1wiKSwge1xuICAgICAgICBhc3NldEhhc2hUeXBlOiBBc3NldEhhc2hUeXBlLk9VVFBVVCxcbiAgICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgICBjb21tYW5kLFxuICAgICAgICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJidXN5Ym94XCIpLFxuICAgICAgICAgIGxvY2FsOiBuZXcgRXNidWlsZCh7XG4gICAgICAgICAgICBlbnRyeVBvaW50czogW2pvaW4oX19kaXJuYW1lLCBcImhhbmRsZXJzL2NhY2hlLWNvbnRyb2wudHNcIildLFxuICAgICAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgICAgIFwicHJvY2Vzcy5lbnYuUFJFUkVOREVSX0NBQ0hFX0tFWVwiOlxuICAgICAgICAgICAgICAgIG9wdGlvbnM/LmNhY2hlS2V5ID8/IFwieC1wcmVyZW5kZXItcmVxdWVzdGlkXCIsXG4gICAgICAgICAgICAgIFwicHJvY2Vzcy5lbnYuUFJFUkVOREVSX0NBQ0hFX01BWF9BR0VcIjpcbiAgICAgICAgICAgICAgICBTdHJpbmcob3B0aW9ucz8ubWF4QWdlKSA/PyBcIjBcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzE4X1gsXG4gICAgICBoYW5kbGVyOiBcImNhY2hlLWNvbnRyb2wuaGFuZGxlclwiLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZ1bmN0aW9uVmVyc2lvbigpOiBJVmVyc2lvbiB7XG4gICAgcmV0dXJuIFZlcnNpb24uZnJvbVZlcnNpb25Bcm4oXG4gICAgICB0aGlzLFxuICAgICAgXCJjYWNoZS1jb250cm9sLWZuLXZlcnNpb25cIixcbiAgICAgIHRoaXMuZWRnZUZ1bmN0aW9uLmN1cnJlbnRWZXJzaW9uLmVkZ2VBcm5cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
2
|
+
import { IVersion } from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export declare class PrerenderCheckFunction extends Construct {
|
|
5
|
+
readonly edgeFunction: EdgeFunction;
|
|
6
|
+
constructor(scope: Construct, id: string);
|
|
7
|
+
getFunctionVersion(): IVersion;
|
|
8
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrerenderCheckFunction = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const experimental_1 = require("aws-cdk-lib/aws-cloudfront/lib/experimental");
|
|
6
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
7
|
+
const constructs_1 = require("constructs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const cdk_esbuild_1 = require("@aligent/cdk-esbuild");
|
|
10
|
+
class PrerenderCheckFunction extends constructs_1.Construct {
|
|
11
|
+
constructor(scope, id) {
|
|
12
|
+
super(scope, id);
|
|
13
|
+
const command = [
|
|
14
|
+
"sh",
|
|
15
|
+
"-c",
|
|
16
|
+
'echo "Docker build not supported. Please install esbuild."',
|
|
17
|
+
];
|
|
18
|
+
this.edgeFunction = new experimental_1.EdgeFunction(this, `${id}-prerender-check-fn`, {
|
|
19
|
+
code: aws_lambda_1.Code.fromAsset((0, path_1.join)(__dirname, "handlers"), {
|
|
20
|
+
assetHashType: aws_cdk_lib_1.AssetHashType.OUTPUT,
|
|
21
|
+
bundling: {
|
|
22
|
+
command,
|
|
23
|
+
image: aws_cdk_lib_1.DockerImage.fromRegistry("busybox"),
|
|
24
|
+
local: new cdk_esbuild_1.Esbuild({
|
|
25
|
+
entryPoints: [(0, path_1.join)(__dirname, "handlers/prerender-check.ts")],
|
|
26
|
+
}),
|
|
27
|
+
},
|
|
28
|
+
}),
|
|
29
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
30
|
+
handler: "prerender-check.handler",
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
getFunctionVersion() {
|
|
34
|
+
return aws_lambda_1.Version.fromVersionArn(this, "prerender-check-fn-version", this.edgeFunction.currentVersion.edgeArn);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.PrerenderCheckFunction = PrerenderCheckFunction;
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWNoZWNrLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByZXJlbmRlci1jaGVjay1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXlEO0FBQ3pELDhFQUEyRTtBQUMzRSx1REFBMEU7QUFDMUUsMkNBQXVDO0FBQ3ZDLCtCQUE0QjtBQUM1QixzREFBK0M7QUFFL0MsTUFBYSxzQkFBdUIsU0FBUSxzQkFBUztJQUduRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSTtZQUNKLElBQUk7WUFDSiw0REFBNEQ7U0FDN0QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSwyQkFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUscUJBQXFCLEVBQUU7WUFDckUsSUFBSSxFQUFFLGlCQUFJLENBQUMsU0FBUyxDQUFDLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsRUFBRTtnQkFDaEQsYUFBYSxFQUFFLDJCQUFhLENBQUMsTUFBTTtnQkFDbkMsUUFBUSxFQUFFO29CQUNSLE9BQU87b0JBQ1AsS0FBSyxFQUFFLHlCQUFXLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQztvQkFDMUMsS0FBSyxFQUFFLElBQUkscUJBQU8sQ0FBQzt3QkFDakIsV0FBVyxFQUFFLENBQUMsSUFBQSxXQUFJLEVBQUMsU0FBUyxFQUFFLDZCQUE2QixDQUFDLENBQUM7cUJBQzlELENBQUM7aUJBQ0g7YUFDRixDQUFDO1lBQ0YsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztZQUM1QixPQUFPLEVBQUUseUJBQXlCO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxrQkFBa0I7UUFDdkIsT0FBTyxvQkFBTyxDQUFDLGNBQWMsQ0FDM0IsSUFBSSxFQUNKLDRCQUE0QixFQUM1QixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQ3pDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuQ0Qsd0RBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXNzZXRIYXNoVHlwZSwgRG9ja2VySW1hZ2UgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEVkZ2VGdW5jdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWRmcm9udC9saWIvZXhwZXJpbWVudGFsXCI7XG5pbXBvcnQgeyBDb2RlLCBJVmVyc2lvbiwgUnVudGltZSwgVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBFc2J1aWxkIH0gZnJvbSBcIkBhbGlnZW50L2Nkay1lc2J1aWxkXCI7XG5cbmV4cG9ydCBjbGFzcyBQcmVyZW5kZXJDaGVja0Z1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgZWRnZUZ1bmN0aW9uOiBFZGdlRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBjb21tYW5kID0gW1xuICAgICAgXCJzaFwiLFxuICAgICAgXCItY1wiLFxuICAgICAgJ2VjaG8gXCJEb2NrZXIgYnVpbGQgbm90IHN1cHBvcnRlZC4gUGxlYXNlIGluc3RhbGwgZXNidWlsZC5cIicsXG4gICAgXTtcblxuICAgIHRoaXMuZWRnZUZ1bmN0aW9uID0gbmV3IEVkZ2VGdW5jdGlvbih0aGlzLCBgJHtpZH0tcHJlcmVuZGVyLWNoZWNrLWZuYCwge1xuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoam9pbihfX2Rpcm5hbWUsIFwiaGFuZGxlcnNcIiksIHtcbiAgICAgICAgYXNzZXRIYXNoVHlwZTogQXNzZXRIYXNoVHlwZS5PVVRQVVQsXG4gICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgY29tbWFuZCxcbiAgICAgICAgICBpbWFnZTogRG9ja2VySW1hZ2UuZnJvbVJlZ2lzdHJ5KFwiYnVzeWJveFwiKSxcbiAgICAgICAgICBsb2NhbDogbmV3IEVzYnVpbGQoe1xuICAgICAgICAgICAgZW50cnlQb2ludHM6IFtqb2luKF9fZGlybmFtZSwgXCJoYW5kbGVycy9wcmVyZW5kZXItY2hlY2sudHNcIildLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xOF9YLFxuICAgICAgaGFuZGxlcjogXCJwcmVyZW5kZXItY2hlY2suaGFuZGxlclwiLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEZ1bmN0aW9uVmVyc2lvbigpOiBJVmVyc2lvbiB7XG4gICAgcmV0dXJuIFZlcnNpb24uZnJvbVZlcnNpb25Bcm4oXG4gICAgICB0aGlzLFxuICAgICAgXCJwcmVyZW5kZXItY2hlY2stZm4tdmVyc2lvblwiLFxuICAgICAgdGhpcy5lZGdlRnVuY3Rpb24uY3VycmVudFZlcnNpb24uZWRnZUFyblxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
2
|
+
import { IVersion } from "aws-cdk-lib/aws-lambda";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
export interface PrerenderFunctionOptions {
|
|
5
|
+
prerenderToken: string;
|
|
6
|
+
prerenderUrl?: string;
|
|
7
|
+
pathPrefix?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class PrerenderFunction extends Construct {
|
|
10
|
+
readonly edgeFunction: EdgeFunction;
|
|
11
|
+
constructor(scope: Construct, id: string, options: PrerenderFunctionOptions);
|
|
12
|
+
getFunctionVersion(): IVersion;
|
|
13
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrerenderFunction = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const experimental_1 = require("aws-cdk-lib/aws-cloudfront/lib/experimental");
|
|
6
|
+
const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
|
|
7
|
+
const constructs_1 = require("constructs");
|
|
8
|
+
const path_1 = require("path");
|
|
9
|
+
const cdk_esbuild_1 = require("@aligent/cdk-esbuild");
|
|
10
|
+
class PrerenderFunction extends constructs_1.Construct {
|
|
11
|
+
constructor(scope, id, options) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
super(scope, id);
|
|
14
|
+
const command = [
|
|
15
|
+
"sh",
|
|
16
|
+
"-c",
|
|
17
|
+
'echo "Docker build not supported. Please install esbuild."',
|
|
18
|
+
];
|
|
19
|
+
this.edgeFunction = new experimental_1.EdgeFunction(this, `${id}-prerender-fn`, {
|
|
20
|
+
code: aws_lambda_1.Code.fromAsset((0, path_1.join)(__dirname, "handlers"), {
|
|
21
|
+
assetHashType: aws_cdk_lib_1.AssetHashType.OUTPUT,
|
|
22
|
+
bundling: {
|
|
23
|
+
command,
|
|
24
|
+
image: aws_cdk_lib_1.DockerImage.fromRegistry("busybox"),
|
|
25
|
+
local: new cdk_esbuild_1.Esbuild({
|
|
26
|
+
entryPoints: [(0, path_1.join)(__dirname, "handlers/prerender.ts")],
|
|
27
|
+
define: {
|
|
28
|
+
"process.env.PRERENDER_TOKEN": options.prerenderToken,
|
|
29
|
+
"process.env.PATH_PREFIX": (_a = options.pathPrefix) !== null && _a !== void 0 ? _a : "",
|
|
30
|
+
"process.env.PRERENDER_URL": (_b = options.prerenderUrl) !== null && _b !== void 0 ? _b : "service.prerender.io",
|
|
31
|
+
},
|
|
32
|
+
}),
|
|
33
|
+
},
|
|
34
|
+
}),
|
|
35
|
+
runtime: aws_lambda_1.Runtime.NODEJS_18_X,
|
|
36
|
+
handler: "prerender.handler",
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
getFunctionVersion() {
|
|
40
|
+
return aws_lambda_1.Version.fromVersionArn(this, "prerender-fn-version", this.edgeFunction.currentVersion.edgeArn);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.PrerenderFunction = PrerenderFunction;
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByZXJlbmRlci1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXlEO0FBQ3pELDhFQUEyRTtBQUMzRSx1REFBMEU7QUFDMUUsMkNBQXVDO0FBQ3ZDLCtCQUE0QjtBQUM1QixzREFBK0M7QUFRL0MsTUFBYSxpQkFBa0IsU0FBUSxzQkFBUztJQUc5QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLE9BQWlDOztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSTtZQUNKLElBQUk7WUFDSiw0REFBNEQ7U0FDN0QsQ0FBQztRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSwyQkFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsZUFBZSxFQUFFO1lBQy9ELElBQUksRUFBRSxpQkFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFBLFdBQUksRUFBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLEVBQUU7Z0JBQ2hELGFBQWEsRUFBRSwyQkFBYSxDQUFDLE1BQU07Z0JBQ25DLFFBQVEsRUFBRTtvQkFDUixPQUFPO29CQUNQLEtBQUssRUFBRSx5QkFBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7b0JBQzFDLEtBQUssRUFBRSxJQUFJLHFCQUFPLENBQUM7d0JBQ2pCLFdBQVcsRUFBRSxDQUFDLElBQUEsV0FBSSxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO3dCQUN2RCxNQUFNLEVBQUU7NEJBQ04sNkJBQTZCLEVBQUUsT0FBTyxDQUFDLGNBQWM7NEJBQ3JELHlCQUF5QixFQUFFLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksRUFBRTs0QkFDbkQsMkJBQTJCLEVBQ3pCLE1BQUEsT0FBTyxDQUFDLFlBQVksbUNBQUksc0JBQXNCO3lCQUNqRDtxQkFDRixDQUFDO2lCQUNIO2FBQ0YsQ0FBQztZQUNGLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7WUFDNUIsT0FBTyxFQUFFLG1CQUFtQjtTQUM3QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3ZCLE9BQU8sb0JBQU8sQ0FBQyxjQUFjLENBQzNCLElBQUksRUFDSixzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUN6QyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBekNELDhDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzc2V0SGFzaFR5cGUsIERvY2tlckltYWdlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBFZGdlRnVuY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQvbGliL2V4cGVyaW1lbnRhbFwiO1xuaW1wb3J0IHsgQ29kZSwgSVZlcnNpb24sIFJ1bnRpbWUsIFZlcnNpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGpvaW4gfSBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRXNidWlsZCB9IGZyb20gXCJAYWxpZ2VudC9jZGstZXNidWlsZFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckZ1bmN0aW9uT3B0aW9ucyB7XG4gIHByZXJlbmRlclRva2VuOiBzdHJpbmc7XG4gIHByZXJlbmRlclVybD86IHN0cmluZztcbiAgcGF0aFByZWZpeD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFByZXJlbmRlckZ1bmN0aW9uIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgZWRnZUZ1bmN0aW9uOiBFZGdlRnVuY3Rpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogUHJlcmVuZGVyRnVuY3Rpb25PcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNvbW1hbmQgPSBbXG4gICAgICBcInNoXCIsXG4gICAgICBcIi1jXCIsXG4gICAgICAnZWNobyBcIkRvY2tlciBidWlsZCBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgaW5zdGFsbCBlc2J1aWxkLlwiJyxcbiAgICBdO1xuXG4gICAgdGhpcy5lZGdlRnVuY3Rpb24gPSBuZXcgRWRnZUZ1bmN0aW9uKHRoaXMsIGAke2lkfS1wcmVyZW5kZXItZm5gLCB7XG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChqb2luKF9fZGlybmFtZSwgXCJoYW5kbGVyc1wiKSwge1xuICAgICAgICBhc3NldEhhc2hUeXBlOiBBc3NldEhhc2hUeXBlLk9VVFBVVCxcbiAgICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgICBjb21tYW5kLFxuICAgICAgICAgIGltYWdlOiBEb2NrZXJJbWFnZS5mcm9tUmVnaXN0cnkoXCJidXN5Ym94XCIpLFxuICAgICAgICAgIGxvY2FsOiBuZXcgRXNidWlsZCh7XG4gICAgICAgICAgICBlbnRyeVBvaW50czogW2pvaW4oX19kaXJuYW1lLCBcImhhbmRsZXJzL3ByZXJlbmRlci50c1wiKV0sXG4gICAgICAgICAgICBkZWZpbmU6IHtcbiAgICAgICAgICAgICAgXCJwcm9jZXNzLmVudi5QUkVSRU5ERVJfVE9LRU5cIjogb3B0aW9ucy5wcmVyZW5kZXJUb2tlbixcbiAgICAgICAgICAgICAgXCJwcm9jZXNzLmVudi5QQVRIX1BSRUZJWFwiOiBvcHRpb25zLnBhdGhQcmVmaXggPz8gXCJcIixcbiAgICAgICAgICAgICAgXCJwcm9jZXNzLmVudi5QUkVSRU5ERVJfVVJMXCI6XG4gICAgICAgICAgICAgICAgb3B0aW9ucy5wcmVyZW5kZXJVcmwgPz8gXCJzZXJ2aWNlLnByZXJlbmRlci5pb1wiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgIGhhbmRsZXI6IFwicHJlcmVuZGVyLmhhbmRsZXJcIixcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGdW5jdGlvblZlcnNpb24oKTogSVZlcnNpb24ge1xuICAgIHJldHVybiBWZXJzaW9uLmZyb21WZXJzaW9uQXJuKFxuICAgICAgdGhpcyxcbiAgICAgIFwicHJlcmVuZGVyLWZuLXZlcnNpb25cIixcbiAgICAgIHRoaXMuZWRnZUZ1bmN0aW9uLmN1cnJlbnRWZXJzaW9uLmVkZ2VBcm5cbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { CloudFrontCacheControl, CloudFrontCacheControlOptions } from "./prerender-cf-cache-control-construct";
|
|
3
|
+
import { PrerenderCheckFunction } from "./prerender-check-construct";
|
|
4
|
+
import { PrerenderFunction } from "./prerender-construct";
|
|
5
|
+
import { ErrorResponseFunction } from "./error-response-construct";
|
|
6
|
+
export interface PrerenderLambdaProps {
|
|
7
|
+
prerenderToken: string;
|
|
8
|
+
exclusionExpression?: string;
|
|
9
|
+
cacheControlProps?: CloudFrontCacheControlOptions;
|
|
10
|
+
}
|
|
11
|
+
export declare class PrerenderLambda extends Construct {
|
|
12
|
+
readonly prerenderCheckFunction: PrerenderCheckFunction;
|
|
13
|
+
readonly prerenderFunction: PrerenderFunction;
|
|
14
|
+
readonly errorResponseFunction: ErrorResponseFunction;
|
|
15
|
+
readonly cacheControlFunction: CloudFrontCacheControl;
|
|
16
|
+
constructor(scope: Construct, id: string, props: PrerenderLambdaProps);
|
|
17
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PrerenderLambda = void 0;
|
|
4
|
+
const constructs_1 = require("constructs");
|
|
5
|
+
const prerender_cf_cache_control_construct_1 = require("./prerender-cf-cache-control-construct");
|
|
6
|
+
const prerender_check_construct_1 = require("./prerender-check-construct");
|
|
7
|
+
const prerender_construct_1 = require("./prerender-construct");
|
|
8
|
+
const error_response_construct_1 = require("./error-response-construct");
|
|
9
|
+
class PrerenderLambda extends constructs_1.Construct {
|
|
10
|
+
constructor(scope, id, props) {
|
|
11
|
+
super(scope, id);
|
|
12
|
+
this.prerenderCheckFunction = new prerender_check_construct_1.PrerenderCheckFunction(this, "PrerenderViewerRequest");
|
|
13
|
+
this.prerenderFunction = new prerender_construct_1.PrerenderFunction(this, "PrerenderOriginRequest", props);
|
|
14
|
+
this.errorResponseFunction = new error_response_construct_1.ErrorResponseFunction(this, "ErrorResponse", {});
|
|
15
|
+
this.cacheControlFunction = new prerender_cf_cache_control_construct_1.CloudFrontCacheControl(this, "PrerenderCloudFrontCacheControl", props.cacheControlProps);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.PrerenderLambda = PrerenderLambda;
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWxhbWJkYS1jb25zdHJ1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVyZW5kZXItbGFtYmRhLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBdUM7QUFDdkMsaUdBR2dEO0FBQ2hELDJFQUFxRTtBQUNyRSwrREFBMEQ7QUFDMUQseUVBQW1FO0FBUW5FLE1BQWEsZUFBZ0IsU0FBUSxzQkFBUztJQU01QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksa0RBQXNCLENBQ3RELElBQUksRUFDSix3QkFBd0IsQ0FDekIsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHVDQUFpQixDQUM1QyxJQUFJLEVBQ0osd0JBQXdCLEVBQ3hCLEtBQUssQ0FDTixDQUFDO1FBRUYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksZ0RBQXFCLENBQ3BELElBQUksRUFDSixlQUFlLEVBQ2YsRUFBRSxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSw2REFBc0IsQ0FDcEQsSUFBSSxFQUNKLGlDQUFpQyxFQUNqQyxLQUFLLENBQUMsaUJBQWlCLENBQ3hCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFoQ0QsMENBZ0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIENsb3VkRnJvbnRDYWNoZUNvbnRyb2wsXG4gIENsb3VkRnJvbnRDYWNoZUNvbnRyb2xPcHRpb25zLFxufSBmcm9tIFwiLi9wcmVyZW5kZXItY2YtY2FjaGUtY29udHJvbC1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IFByZXJlbmRlckNoZWNrRnVuY3Rpb24gfSBmcm9tIFwiLi9wcmVyZW5kZXItY2hlY2stY29uc3RydWN0XCI7XG5pbXBvcnQgeyBQcmVyZW5kZXJGdW5jdGlvbiB9IGZyb20gXCIuL3ByZXJlbmRlci1jb25zdHJ1Y3RcIjtcbmltcG9ydCB7IEVycm9yUmVzcG9uc2VGdW5jdGlvbiB9IGZyb20gXCIuL2Vycm9yLXJlc3BvbnNlLWNvbnN0cnVjdFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckxhbWJkYVByb3BzIHtcbiAgcHJlcmVuZGVyVG9rZW46IHN0cmluZztcbiAgZXhjbHVzaW9uRXhwcmVzc2lvbj86IHN0cmluZztcbiAgY2FjaGVDb250cm9sUHJvcHM/OiBDbG91ZEZyb250Q2FjaGVDb250cm9sT3B0aW9ucztcbn1cblxuZXhwb3J0IGNsYXNzIFByZXJlbmRlckxhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IHByZXJlbmRlckNoZWNrRnVuY3Rpb246IFByZXJlbmRlckNoZWNrRnVuY3Rpb247XG4gIHJlYWRvbmx5IHByZXJlbmRlckZ1bmN0aW9uOiBQcmVyZW5kZXJGdW5jdGlvbjtcbiAgcmVhZG9ubHkgZXJyb3JSZXNwb25zZUZ1bmN0aW9uOiBFcnJvclJlc3BvbnNlRnVuY3Rpb247XG4gIHJlYWRvbmx5IGNhY2hlQ29udHJvbEZ1bmN0aW9uOiBDbG91ZEZyb250Q2FjaGVDb250cm9sO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcmVyZW5kZXJMYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByZXJlbmRlckNoZWNrRnVuY3Rpb24gPSBuZXcgUHJlcmVuZGVyQ2hlY2tGdW5jdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIlByZXJlbmRlclZpZXdlclJlcXVlc3RcIlxuICAgICk7XG5cbiAgICB0aGlzLnByZXJlbmRlckZ1bmN0aW9uID0gbmV3IFByZXJlbmRlckZ1bmN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUHJlcmVuZGVyT3JpZ2luUmVxdWVzdFwiLFxuICAgICAgcHJvcHNcbiAgICApO1xuXG4gICAgdGhpcy5lcnJvclJlc3BvbnNlRnVuY3Rpb24gPSBuZXcgRXJyb3JSZXNwb25zZUZ1bmN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgIFwiRXJyb3JSZXNwb25zZVwiLFxuICAgICAge31cbiAgICApO1xuXG4gICAgdGhpcy5jYWNoZUNvbnRyb2xGdW5jdGlvbiA9IG5ldyBDbG91ZEZyb250Q2FjaGVDb250cm9sKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUHJlcmVuZGVyQ2xvdWRGcm9udENhY2hlQ29udHJvbFwiLFxuICAgICAgcHJvcHMuY2FjaGVDb250cm9sUHJvcHNcbiAgICApO1xuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aligent/cdk-prerender-proxy",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "Cloudfront Lambda@Edge constructs for integrating with prerender.io",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"jest": "^29.7.0",
|
|
24
24
|
"ts-jest": "^29.1.1",
|
|
25
25
|
"ts-node": "^10.9.1",
|
|
26
|
-
"typescript": "~5.3.2"
|
|
27
|
-
"@aligent/esbuild": "^2.0"
|
|
26
|
+
"typescript": "~5.3.2"
|
|
28
27
|
},
|
|
29
28
|
"dependencies": {
|
|
29
|
+
"@aligent/cdk-esbuild": "^2.0",
|
|
30
30
|
"aws-cdk-lib": "2.113.0",
|
|
31
31
|
"axios": "^1.5.1",
|
|
32
32
|
"constructs": "^10.3.0",
|
package/index.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PrerenderLambda,
|
|
3
|
-
PrerenderLambdaProps,
|
|
4
|
-
} from "./lib/prerender-lambda-construct";
|
|
5
|
-
import {
|
|
6
|
-
PrerenderFunction,
|
|
7
|
-
PrerenderFunctionOptions,
|
|
8
|
-
} from "./lib/prerender-construct";
|
|
9
|
-
import { PrerenderCheckFunction } from "./lib/prerender-check-construct";
|
|
10
|
-
import {
|
|
11
|
-
ErrorResponseFunction,
|
|
12
|
-
ErrorResponseFunctionOptions,
|
|
13
|
-
} from "./lib/error-response-construct";
|
|
14
|
-
import {
|
|
15
|
-
CloudFrontCacheControl,
|
|
16
|
-
CloudFrontCacheControlOptions,
|
|
17
|
-
} from "./lib/prerender-cf-cache-control-construct";
|
|
18
|
-
|
|
19
|
-
export {
|
|
20
|
-
PrerenderLambda,
|
|
21
|
-
PrerenderFunction,
|
|
22
|
-
PrerenderCheckFunction,
|
|
23
|
-
ErrorResponseFunction,
|
|
24
|
-
CloudFrontCacheControl,
|
|
25
|
-
CloudFrontCacheControlOptions,
|
|
26
|
-
ErrorResponseFunctionOptions,
|
|
27
|
-
PrerenderFunctionOptions,
|
|
28
|
-
PrerenderLambdaProps,
|
|
29
|
-
};
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { AssetHashType, DockerImage } from "aws-cdk-lib";
|
|
2
|
-
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
3
|
-
import { Code, IVersion, Runtime, Version } from "aws-cdk-lib/aws-lambda";
|
|
4
|
-
import { Construct } from "constructs";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
import { Esbuild } from "@aligent/esbuild";
|
|
7
|
-
|
|
8
|
-
export interface ErrorResponseFunctionOptions {
|
|
9
|
-
pathPrefix?: string;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
export class ErrorResponseFunction extends Construct {
|
|
13
|
-
readonly edgeFunction: EdgeFunction;
|
|
14
|
-
|
|
15
|
-
constructor(
|
|
16
|
-
scope: Construct,
|
|
17
|
-
id: string,
|
|
18
|
-
options: ErrorResponseFunctionOptions
|
|
19
|
-
) {
|
|
20
|
-
super(scope, id);
|
|
21
|
-
|
|
22
|
-
const command = [
|
|
23
|
-
"sh",
|
|
24
|
-
"-c",
|
|
25
|
-
'echo "Docker build not supported. Please install esbuild."',
|
|
26
|
-
];
|
|
27
|
-
|
|
28
|
-
this.edgeFunction = new EdgeFunction(this, `${id}-error-response-fn`, {
|
|
29
|
-
code: Code.fromAsset(join(__dirname, "handlers"), {
|
|
30
|
-
assetHashType: AssetHashType.OUTPUT,
|
|
31
|
-
bundling: {
|
|
32
|
-
command,
|
|
33
|
-
image: DockerImage.fromRegistry("busybox"),
|
|
34
|
-
local: new Esbuild({
|
|
35
|
-
entryPoints: [join(__dirname, "handlers/error-response.ts")],
|
|
36
|
-
define: {
|
|
37
|
-
"process.env.PATH_PREFIX": options.pathPrefix ?? "",
|
|
38
|
-
},
|
|
39
|
-
}),
|
|
40
|
-
},
|
|
41
|
-
}),
|
|
42
|
-
runtime: Runtime.NODEJS_18_X,
|
|
43
|
-
handler: "error-response.handler",
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
public getFunctionVersion(): IVersion {
|
|
48
|
-
return Version.fromVersionArn(
|
|
49
|
-
this,
|
|
50
|
-
"error-response-fn-version",
|
|
51
|
-
this.edgeFunction.currentVersion.edgeArn
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { AssetHashType, DockerImage } from "aws-cdk-lib";
|
|
2
|
-
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
3
|
-
import { Code, IVersion, Runtime, Version } from "aws-cdk-lib/aws-lambda";
|
|
4
|
-
import { Construct } from "constructs";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
import { Esbuild } from "@aligent/esbuild";
|
|
7
|
-
|
|
8
|
-
export interface CloudFrontCacheControlOptions {
|
|
9
|
-
cacheKey?: string;
|
|
10
|
-
maxAge?: number;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export class CloudFrontCacheControl extends Construct {
|
|
14
|
-
readonly edgeFunction: EdgeFunction;
|
|
15
|
-
|
|
16
|
-
constructor(
|
|
17
|
-
scope: Construct,
|
|
18
|
-
id: string,
|
|
19
|
-
options?: CloudFrontCacheControlOptions
|
|
20
|
-
) {
|
|
21
|
-
super(scope, id);
|
|
22
|
-
|
|
23
|
-
const command = [
|
|
24
|
-
"sh",
|
|
25
|
-
"-c",
|
|
26
|
-
'echo "Docker build not supported. Please install esbuild."',
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
this.edgeFunction = new EdgeFunction(this, `${id}-cache-control-fn`, {
|
|
30
|
-
code: Code.fromAsset(join(__dirname, "handlers"), {
|
|
31
|
-
assetHashType: AssetHashType.OUTPUT,
|
|
32
|
-
bundling: {
|
|
33
|
-
command,
|
|
34
|
-
image: DockerImage.fromRegistry("busybox"),
|
|
35
|
-
local: new Esbuild({
|
|
36
|
-
entryPoints: [join(__dirname, "handlers/cache-control.ts")],
|
|
37
|
-
define: {
|
|
38
|
-
"process.env.PRERENDER_CACHE_KEY":
|
|
39
|
-
options?.cacheKey ?? "x-prerender-requestid",
|
|
40
|
-
"process.env.PRERENDER_CACHE_MAX_AGE":
|
|
41
|
-
String(options?.maxAge) ?? "0",
|
|
42
|
-
},
|
|
43
|
-
}),
|
|
44
|
-
},
|
|
45
|
-
}),
|
|
46
|
-
runtime: Runtime.NODEJS_18_X,
|
|
47
|
-
handler: "cache-control.handler",
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
public getFunctionVersion(): IVersion {
|
|
52
|
-
return Version.fromVersionArn(
|
|
53
|
-
this,
|
|
54
|
-
"cache-control-fn-version",
|
|
55
|
-
this.edgeFunction.currentVersion.edgeArn
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { AssetHashType, DockerImage } from "aws-cdk-lib";
|
|
2
|
-
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
3
|
-
import { Code, IVersion, Runtime, Version } from "aws-cdk-lib/aws-lambda";
|
|
4
|
-
import { Construct } from "constructs";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
import { Esbuild } from "@aligent/esbuild";
|
|
7
|
-
|
|
8
|
-
export class PrerenderCheckFunction extends Construct {
|
|
9
|
-
readonly edgeFunction: EdgeFunction;
|
|
10
|
-
|
|
11
|
-
constructor(scope: Construct, id: string) {
|
|
12
|
-
super(scope, id);
|
|
13
|
-
|
|
14
|
-
const command = [
|
|
15
|
-
"sh",
|
|
16
|
-
"-c",
|
|
17
|
-
'echo "Docker build not supported. Please install esbuild."',
|
|
18
|
-
];
|
|
19
|
-
|
|
20
|
-
this.edgeFunction = new EdgeFunction(this, `${id}-prerender-check-fn`, {
|
|
21
|
-
code: Code.fromAsset(join(__dirname, "handlers"), {
|
|
22
|
-
assetHashType: AssetHashType.OUTPUT,
|
|
23
|
-
bundling: {
|
|
24
|
-
command,
|
|
25
|
-
image: DockerImage.fromRegistry("busybox"),
|
|
26
|
-
local: new Esbuild({
|
|
27
|
-
entryPoints: [join(__dirname, "handlers/prerender-check.ts")],
|
|
28
|
-
}),
|
|
29
|
-
},
|
|
30
|
-
}),
|
|
31
|
-
runtime: Runtime.NODEJS_18_X,
|
|
32
|
-
handler: "prerender-check.handler",
|
|
33
|
-
});
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
public getFunctionVersion(): IVersion {
|
|
37
|
-
return Version.fromVersionArn(
|
|
38
|
-
this,
|
|
39
|
-
"prerender-check-fn-version",
|
|
40
|
-
this.edgeFunction.currentVersion.edgeArn
|
|
41
|
-
);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { AssetHashType, DockerImage } from "aws-cdk-lib";
|
|
2
|
-
import { EdgeFunction } from "aws-cdk-lib/aws-cloudfront/lib/experimental";
|
|
3
|
-
import { Code, IVersion, Runtime, Version } from "aws-cdk-lib/aws-lambda";
|
|
4
|
-
import { Construct } from "constructs";
|
|
5
|
-
import { join } from "path";
|
|
6
|
-
import { Esbuild } from "@aligent/esbuild";
|
|
7
|
-
|
|
8
|
-
export interface PrerenderFunctionOptions {
|
|
9
|
-
prerenderToken: string;
|
|
10
|
-
prerenderUrl?: string;
|
|
11
|
-
pathPrefix?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export class PrerenderFunction extends Construct {
|
|
15
|
-
readonly edgeFunction: EdgeFunction;
|
|
16
|
-
|
|
17
|
-
constructor(scope: Construct, id: string, options: PrerenderFunctionOptions) {
|
|
18
|
-
super(scope, id);
|
|
19
|
-
|
|
20
|
-
const command = [
|
|
21
|
-
"sh",
|
|
22
|
-
"-c",
|
|
23
|
-
'echo "Docker build not supported. Please install esbuild."',
|
|
24
|
-
];
|
|
25
|
-
|
|
26
|
-
this.edgeFunction = new EdgeFunction(this, `${id}-prerender-fn`, {
|
|
27
|
-
code: Code.fromAsset(join(__dirname, "handlers"), {
|
|
28
|
-
assetHashType: AssetHashType.OUTPUT,
|
|
29
|
-
bundling: {
|
|
30
|
-
command,
|
|
31
|
-
image: DockerImage.fromRegistry("busybox"),
|
|
32
|
-
local: new Esbuild({
|
|
33
|
-
entryPoints: [join(__dirname, "handlers/prerender.ts")],
|
|
34
|
-
define: {
|
|
35
|
-
"process.env.PRERENDER_TOKEN": options.prerenderToken,
|
|
36
|
-
"process.env.PATH_PREFIX": options.pathPrefix ?? "",
|
|
37
|
-
"process.env.PRERENDER_URL":
|
|
38
|
-
options.prerenderUrl ?? "service.prerender.io",
|
|
39
|
-
},
|
|
40
|
-
}),
|
|
41
|
-
},
|
|
42
|
-
}),
|
|
43
|
-
runtime: Runtime.NODEJS_18_X,
|
|
44
|
-
handler: "prerender.handler",
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
public getFunctionVersion(): IVersion {
|
|
49
|
-
return Version.fromVersionArn(
|
|
50
|
-
this,
|
|
51
|
-
"prerender-fn-version",
|
|
52
|
-
this.edgeFunction.currentVersion.edgeArn
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { Construct } from "constructs";
|
|
2
|
-
import {
|
|
3
|
-
CloudFrontCacheControl,
|
|
4
|
-
CloudFrontCacheControlOptions,
|
|
5
|
-
} from "./prerender-cf-cache-control-construct";
|
|
6
|
-
import { PrerenderCheckFunction } from "./prerender-check-construct";
|
|
7
|
-
import { PrerenderFunction } from "./prerender-construct";
|
|
8
|
-
import { ErrorResponseFunction } from "./error-response-construct";
|
|
9
|
-
|
|
10
|
-
export interface PrerenderLambdaProps {
|
|
11
|
-
prerenderToken: string;
|
|
12
|
-
exclusionExpression?: string;
|
|
13
|
-
cacheControlProps?: CloudFrontCacheControlOptions;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export class PrerenderLambda extends Construct {
|
|
17
|
-
readonly prerenderCheckFunction: PrerenderCheckFunction;
|
|
18
|
-
readonly prerenderFunction: PrerenderFunction;
|
|
19
|
-
readonly errorResponseFunction: ErrorResponseFunction;
|
|
20
|
-
readonly cacheControlFunction: CloudFrontCacheControl;
|
|
21
|
-
|
|
22
|
-
constructor(scope: Construct, id: string, props: PrerenderLambdaProps) {
|
|
23
|
-
super(scope, id);
|
|
24
|
-
|
|
25
|
-
this.prerenderCheckFunction = new PrerenderCheckFunction(
|
|
26
|
-
this,
|
|
27
|
-
"PrerenderViewerRequest"
|
|
28
|
-
);
|
|
29
|
-
|
|
30
|
-
this.prerenderFunction = new PrerenderFunction(
|
|
31
|
-
this,
|
|
32
|
-
"PrerenderOriginRequest",
|
|
33
|
-
props
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
this.errorResponseFunction = new ErrorResponseFunction(
|
|
37
|
-
this,
|
|
38
|
-
"ErrorResponse",
|
|
39
|
-
{}
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
this.cacheControlFunction = new CloudFrontCacheControl(
|
|
43
|
-
this,
|
|
44
|
-
"PrerenderCloudFrontCacheControl",
|
|
45
|
-
props.cacheControlProps
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
}
|