@aligent/cdk-prerender-proxy 0.1.1 → 0.1.5
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/lib/error-response-construct.d.ts +2 -1
- package/lib/error-response-construct.js +4 -2
- package/lib/handlers/error-response.ts +4 -3
- package/lib/handlers/prerender.ts +32 -75
- package/lib/prerender-construct.d.ts +1 -2
- package/lib/prerender-construct.js +4 -4
- package/lib/prerender-lambda-construct.d.ts +2 -2
- package/lib/prerender-lambda-construct.js +3 -3
- package/package.json +15 -9
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Construct } from "@aws-cdk/core";
|
|
2
2
|
import { EdgeFunction } from "@aws-cdk/aws-cloudfront/lib/experimental";
|
|
3
3
|
export interface ErrorResponseFunctionOptions {
|
|
4
|
-
|
|
4
|
+
frontendHost: string;
|
|
5
|
+
pathPrefix?: string;
|
|
5
6
|
}
|
|
6
7
|
export declare class ErrorResponseFunction extends Construct {
|
|
7
8
|
readonly edgeFunction: EdgeFunction;
|
|
@@ -7,6 +7,7 @@ const aws_lambda_1 = require("@aws-cdk/aws-lambda");
|
|
|
7
7
|
const aws_cloudfront_1 = require("@aws-cdk/aws-cloudfront");
|
|
8
8
|
class ErrorResponseFunction extends core_1.Construct {
|
|
9
9
|
constructor(scope, id, options) {
|
|
10
|
+
var _a;
|
|
10
11
|
super(scope, id);
|
|
11
12
|
this.edgeFunction = new aws_cloudfront_1.experimental.EdgeFunction(this, 'ErrorResponseFunction', {
|
|
12
13
|
code: bundling_1.Bundling.bundle({
|
|
@@ -19,7 +20,8 @@ class ErrorResponseFunction extends core_1.Construct {
|
|
|
19
20
|
// and replace during build/deploy with static values. This gets around the lambda@edge limitation
|
|
20
21
|
// of no environment variables at runtime.
|
|
21
22
|
define: {
|
|
22
|
-
'process.env.REDIRECT_FRONTEND_HOST': JSON.stringify(options.
|
|
23
|
+
'process.env.REDIRECT_FRONTEND_HOST': JSON.stringify(options.frontendHost),
|
|
24
|
+
'process.env.PATH_PREFIX': JSON.stringify((_a = options.pathPrefix) !== null && _a !== void 0 ? _a : ''),
|
|
23
25
|
}
|
|
24
26
|
}),
|
|
25
27
|
runtime: aws_lambda_1.Runtime.NODEJS_12_X,
|
|
@@ -28,4 +30,4 @@ class ErrorResponseFunction extends core_1.Construct {
|
|
|
28
30
|
}
|
|
29
31
|
}
|
|
30
32
|
exports.ErrorResponseFunction = ErrorResponseFunction;
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItcmVzcG9uc2UtY29uc3RydWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZXJyb3ItcmVzcG9uc2UtY29uc3RydWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHdDQUEwQztBQUMxQyxzRUFBbUU7QUFDbkUsb0RBQThDO0FBQzlDLDREQUF1RDtBQVF2RCxNQUFhLHFCQUFzQixTQUFRLGdCQUFTO0lBR2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsT0FBcUM7O1FBQzNFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLDZCQUFZLENBQUMsWUFBWSxDQUM3QyxJQUFJLEVBQ0osdUJBQXVCLEVBQ3ZCO1lBQ0UsSUFBSSxFQUFFLG1CQUFRLENBQUMsTUFBTSxDQUFDO2dCQUNwQixLQUFLLEVBQUUsR0FBRyxTQUFTLDZCQUE2QjtnQkFDaEQsT0FBTyxFQUFFLG9CQUFPLENBQUMsV0FBVztnQkFDNUIsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsV0FBVyxFQUFFLEdBQUcsU0FBUyxZQUFZO2dCQUNyQyxnQkFBZ0IsRUFBRSxHQUFHLFNBQVMsNkJBQTZCO2dCQUMzRCxrR0FBa0c7Z0JBQ2xHLGtHQUFrRztnQkFDbEcsMENBQTBDO2dCQUMxQyxNQUFNLEVBQUU7b0JBQ04sb0NBQW9DLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO29CQUMxRSx5QkFBeUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQUEsT0FBTyxDQUFDLFVBQVUsbUNBQUksRUFBRSxDQUFDO2lCQUNwRTthQUNGLENBQUM7WUFDRixPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxlQUFlO1NBQ3pCLENBQ0YsQ0FBQztJQUNSLENBQUM7Q0FDSjtBQTdCRCxzREE2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiQGF3cy1jZGsvY29yZVwiO1xuaW1wb3J0IHsgQnVuZGxpbmcgfSBmcm9tICdAYXdzLWNkay9hd3MtbGFtYmRhLW5vZGVqcy9saWIvYnVuZGxpbmcnO1xuaW1wb3J0IHsgUnVudGltZSB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgZXhwZXJpbWVudGFsIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQnO1xuaW1wb3J0IHsgRWRnZUZ1bmN0aW9uIH0gZnJvbSBcIkBhd3MtY2RrL2F3cy1jbG91ZGZyb250L2xpYi9leHBlcmltZW50YWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFcnJvclJlc3BvbnNlRnVuY3Rpb25PcHRpb25zIHtcbiAgICBmcm9udGVuZEhvc3Q6IHN0cmluZyxcbiAgICBwYXRoUHJlZml4Pzogc3RyaW5nXG59XG5cbmV4cG9ydCBjbGFzcyBFcnJvclJlc3BvbnNlRnVuY3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIHJlYWRvbmx5IGVkZ2VGdW5jdGlvbjogRWRnZUZ1bmN0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogRXJyb3JSZXNwb25zZUZ1bmN0aW9uT3B0aW9ucykge1xuICAgICAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgICAgIHRoaXMuZWRnZUZ1bmN0aW9uID0gbmV3IGV4cGVyaW1lbnRhbC5FZGdlRnVuY3Rpb24oXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgJ0Vycm9yUmVzcG9uc2VGdW5jdGlvbicsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvZGU6IEJ1bmRsaW5nLmJ1bmRsZSh7XG4gICAgICAgICAgICAgICAgZW50cnk6IGAke19fZGlybmFtZX0vaGFuZGxlcnMvZXJyb3ItcmVzcG9uc2UudHNgLFxuICAgICAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICAgICAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICAgICAgICAgIHByb2plY3RSb290OiBgJHtfX2Rpcm5hbWV9L2hhbmRsZXJzL2AsXG4gICAgICAgICAgICAgICAgZGVwc0xvY2tGaWxlUGF0aDogYCR7X19kaXJuYW1lfS9oYW5kbGVycy9wYWNrYWdlLWxvY2suanNvbmAsXG4gICAgICAgICAgICAgICAgLy8gRGVmaW5lIG9wdGlvbnMgcmVwbGFjZSB2YWx1ZXMgYXQgYnVpbGQgdGltZSBzbyB3ZSBjYW4gdXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byB0ZXN0IGxvY2FsbHlcbiAgICAgICAgICAgICAgICAvLyBhbmQgcmVwbGFjZSBkdXJpbmcgYnVpbGQvZGVwbG95IHdpdGggc3RhdGljIHZhbHVlcy4gVGhpcyBnZXRzIGFyb3VuZCB0aGUgbGFtYmRhQGVkZ2UgbGltaXRhdGlvblxuICAgICAgICAgICAgICAgIC8vIG9mIG5vIGVudmlyb25tZW50IHZhcmlhYmxlcyBhdCBydW50aW1lLlxuICAgICAgICAgICAgICAgIGRlZmluZToge1xuICAgICAgICAgICAgICAgICAgJ3Byb2Nlc3MuZW52LlJFRElSRUNUX0ZST05URU5EX0hPU1QnOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLmZyb250ZW5kSG9zdCksXG4gICAgICAgICAgICAgICAgICAncHJvY2Vzcy5lbnYuUEFUSF9QUkVGSVgnOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLnBhdGhQcmVmaXggPz8gJycpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -4,7 +4,8 @@ import axios from "axios";
|
|
|
4
4
|
import { URL } from 'url';
|
|
5
5
|
import * as https from 'https';
|
|
6
6
|
|
|
7
|
-
const
|
|
7
|
+
const FRONTEND_HOST = process.env.FRONTEND_HOST;
|
|
8
|
+
const PATH_PREFIX = process.env.PATH_PREFIX;
|
|
8
9
|
|
|
9
10
|
// Create axios client outside of lambda function for re-use between calls
|
|
10
11
|
const instance = axios.create({
|
|
@@ -25,10 +26,10 @@ export const handler = (event: CloudFrontResponseEvent): Promise<CloudFrontRespo
|
|
|
25
26
|
|
|
26
27
|
if (response.status != '200' &&
|
|
27
28
|
! request.headers['x-request-prerender'] &&
|
|
28
|
-
request.uri !=
|
|
29
|
+
request.uri != `${PATH_PREFIX}/index.html`) {
|
|
29
30
|
|
|
30
31
|
// Fetch default page and return body
|
|
31
|
-
return instance.get(`https://${
|
|
32
|
+
return instance.get(`https://${FRONTEND_HOST}${PATH_PREFIX}/index.html`).then((res) => {
|
|
32
33
|
response.body = res.data;
|
|
33
34
|
|
|
34
35
|
|
|
@@ -1,85 +1,42 @@
|
|
|
1
1
|
import 'source-map-support/register';
|
|
2
|
-
import axios from "axios";
|
|
3
2
|
import { CloudFrontRequest, CloudFrontRequestEvent, CloudFrontResponse } from 'aws-lambda';
|
|
4
|
-
import { URL } from 'url';
|
|
5
|
-
import * as https from 'https';
|
|
6
3
|
|
|
7
|
-
const REDIRECT_BACKEND = process.env.REDIRECT_BACKEND;
|
|
8
|
-
const REDIRECT_FRONTEND_HOST = process.env.REDIRECT_FRONTEND_HOST;
|
|
9
4
|
const PRERENDER_TOKEN = process.env.PRERENDER_TOKEN;
|
|
5
|
+
const PATH_PREFIX = process.env.PATH_PREFIX;
|
|
10
6
|
|
|
11
|
-
|
|
12
|
-
const instance = axios.create({
|
|
13
|
-
timeout: 1000,
|
|
14
|
-
// Don't follow redirects
|
|
15
|
-
maxRedirects: 0,
|
|
16
|
-
// Only valid response codes are redirects
|
|
17
|
-
validateStatus: function (status) {
|
|
18
|
-
return status == 301 || status == 302;
|
|
19
|
-
},
|
|
20
|
-
// keep connection alive so we don't constantly do SSL negotiation
|
|
21
|
-
httpsAgent: new https.Agent({ keepAlive: true }),
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
export const handler = (event: CloudFrontRequestEvent): Promise<CloudFrontResponse|CloudFrontRequest> => {
|
|
7
|
+
export const handler = async (event: CloudFrontRequestEvent): Promise<CloudFrontResponse|CloudFrontRequest> => {
|
|
25
8
|
let request = event.Records[0].cf.request;
|
|
26
9
|
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
10
|
+
// viewer-request function will determine whether we prerender or not
|
|
11
|
+
// if we should we add prerender as our custom origin
|
|
12
|
+
if (request.headers['x-request-prerender']) {
|
|
13
|
+
// Cloudfront will alter the request for / to /index.html
|
|
14
|
+
// since it is defined as the default root object
|
|
15
|
+
// we do not want to do this when prerendering the homepage
|
|
16
|
+
if (request.uri === `${PATH_PREFIX}/index.html`) {
|
|
17
|
+
request.uri = `${PATH_PREFIX}/`;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
request.origin = {
|
|
21
|
+
custom: {
|
|
22
|
+
domainName: 'service.prerender.io',
|
|
23
|
+
port: 443,
|
|
24
|
+
protocol: 'https',
|
|
25
|
+
readTimeout: 20,
|
|
26
|
+
keepaliveTimeout: 5,
|
|
27
|
+
sslProtocols: ['TLSv1', 'TLSv1.1', 'TLSv1.2'],
|
|
28
|
+
path: '/https%3A%2F%2F' + request.headers['x-prerender-host'][0].value,
|
|
29
|
+
customHeaders: {
|
|
30
|
+
'x-prerender-token': [{
|
|
31
|
+
key: 'x-prerender-token',
|
|
32
|
+
value: PRERENDER_TOKEN
|
|
33
|
+
}]
|
|
34
|
+
}
|
|
44
35
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}
|
|
49
|
-
// An error is returned when any status code except a 301 or 302
|
|
50
|
-
// fallback to normal prerender behavior
|
|
51
|
-
|
|
52
|
-
// viewer-request function will determine whether we prerender or not
|
|
53
|
-
// if we should we add prerender as our custom origin
|
|
54
|
-
if (request.headers['x-request-prerender']) {
|
|
55
|
-
// Cloudfront will alter the request for / to /index.html
|
|
56
|
-
// since it is defined as the default root object
|
|
57
|
-
// we do not want to do this when prerendering the homepage
|
|
58
|
-
if (request.uri === "/index.html") {
|
|
59
|
-
request.uri = '/';
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
request.origin = {
|
|
63
|
-
custom: {
|
|
64
|
-
domainName: 'service.prerender.io',
|
|
65
|
-
port: 443,
|
|
66
|
-
protocol: 'https',
|
|
67
|
-
readTimeout: 20,
|
|
68
|
-
keepaliveTimeout: 5,
|
|
69
|
-
sslProtocols: ['TLSv1', 'TLSv1.1', 'TLSv1.2'],
|
|
70
|
-
path: '/https%3A%2F%2F' + request.headers['x-prerender-host'][0].value,
|
|
71
|
-
customHeaders: {
|
|
72
|
-
'x-prerender-token': [{
|
|
73
|
-
key: 'x-prerender-token',
|
|
74
|
-
value: PRERENDER_TOKEN
|
|
75
|
-
}]
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
} else {
|
|
80
|
-
request.uri = '/index.html';
|
|
81
|
-
}
|
|
36
|
+
};
|
|
37
|
+
} else {
|
|
38
|
+
request.uri = `${PATH_PREFIX}/index.html`;
|
|
39
|
+
}
|
|
82
40
|
|
|
83
|
-
|
|
84
|
-
});
|
|
41
|
+
return request;
|
|
85
42
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Construct } from "@aws-cdk/core";
|
|
2
2
|
import { EdgeFunction } from "@aws-cdk/aws-cloudfront/lib/experimental";
|
|
3
3
|
export interface PrerenderFunctionOptions {
|
|
4
|
-
redirectBackendOrigin: string;
|
|
5
|
-
redirectFrontendHost: string;
|
|
6
4
|
prerenderToken: string;
|
|
5
|
+
pathPrefix?: string;
|
|
7
6
|
}
|
|
8
7
|
export declare class PrerenderFunction extends Construct {
|
|
9
8
|
readonly edgeFunction: EdgeFunction;
|
|
@@ -7,6 +7,7 @@ const aws_lambda_1 = require("@aws-cdk/aws-lambda");
|
|
|
7
7
|
const aws_cloudfront_1 = require("@aws-cdk/aws-cloudfront");
|
|
8
8
|
class PrerenderFunction extends core_1.Construct {
|
|
9
9
|
constructor(scope, id, options) {
|
|
10
|
+
var _a;
|
|
10
11
|
super(scope, id);
|
|
11
12
|
this.edgeFunction = new aws_cloudfront_1.experimental.EdgeFunction(this, 'PrerenderFunction', {
|
|
12
13
|
code: bundling_1.Bundling.bundle({
|
|
@@ -19,9 +20,8 @@ class PrerenderFunction extends core_1.Construct {
|
|
|
19
20
|
// and replace during build/deploy with static values. This gets around the lambda@edge limitation
|
|
20
21
|
// of no environment variables at runtime.
|
|
21
22
|
define: {
|
|
22
|
-
'process.env.
|
|
23
|
-
'process.env.
|
|
24
|
-
'process.env.PRERENDER_TOKEN': JSON.stringify(options.prerenderToken)
|
|
23
|
+
'process.env.PRERENDER_TOKEN': JSON.stringify(options.prerenderToken),
|
|
24
|
+
'process.env.PATH_PREFIX': JSON.stringify((_a = options.pathPrefix) !== null && _a !== void 0 ? _a : ''),
|
|
25
25
|
}
|
|
26
26
|
}),
|
|
27
27
|
runtime: aws_lambda_1.Runtime.NODEJS_12_X,
|
|
@@ -30,4 +30,4 @@ class PrerenderFunction extends core_1.Construct {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
exports.PrerenderFunction = PrerenderFunction;
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWNvbnN0cnVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInByZXJlbmRlci1jb25zdHJ1Y3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsd0NBQTBDO0FBQzFDLHNFQUFtRTtBQUNuRSxvREFBOEM7QUFDOUMsNERBQXVEO0FBUXZELE1BQWEsaUJBQWtCLFNBQVEsZ0JBQVM7SUFHNUMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxPQUFpQzs7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksNkJBQVksQ0FBQyxZQUFZLENBQzdDLElBQUksRUFDSixtQkFBbUIsRUFDbkI7WUFDRSxJQUFJLEVBQUUsbUJBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BCLEtBQUssRUFBRSxHQUFHLFNBQVMsd0JBQXdCO2dCQUMzQyxPQUFPLEVBQUUsb0JBQU8sQ0FBQyxXQUFXO2dCQUM1QixTQUFTLEVBQUUsSUFBSTtnQkFDZixXQUFXLEVBQUUsR0FBRyxTQUFTLFlBQVk7Z0JBQ3JDLGdCQUFnQixFQUFFLEdBQUcsU0FBUyw2QkFBNkI7Z0JBQzNELGtHQUFrRztnQkFDbEcsa0dBQWtHO2dCQUNsRywwQ0FBMEM7Z0JBQzFDLE1BQU0sRUFBRTtvQkFDTiw2QkFBNkIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7b0JBQ3JFLHlCQUF5QixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBQSxPQUFPLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7aUJBQ3BFO2FBQ0YsQ0FBQztZQUNGLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFdBQVc7WUFDNUIsT0FBTyxFQUFFLGVBQWU7U0FDekIsQ0FDRixDQUFDO0lBQ1IsQ0FBQztDQUNKO0FBN0JELDhDQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJAYXdzLWNkay9jb3JlXCI7XG5pbXBvcnQgeyBCdW5kbGluZyB9IGZyb20gJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtbm9kZWpzL2xpYi9idW5kbGluZyc7XG5pbXBvcnQgeyBSdW50aW1lIH0gZnJvbSAnQGF3cy1jZGsvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBleHBlcmltZW50YWwgfSBmcm9tICdAYXdzLWNkay9hd3MtY2xvdWRmcm9udCc7XG5pbXBvcnQgeyBFZGdlRnVuY3Rpb24gfSBmcm9tIFwiQGF3cy1jZGsvYXdzLWNsb3VkZnJvbnQvbGliL2V4cGVyaW1lbnRhbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckZ1bmN0aW9uT3B0aW9ucyB7XG4gICAgcHJlcmVuZGVyVG9rZW46IHN0cmluZyxcbiAgICBwYXRoUHJlZml4Pzogc3RyaW5nLFxufVxuXG5leHBvcnQgY2xhc3MgUHJlcmVuZGVyRnVuY3Rpb24gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAgIHJlYWRvbmx5IGVkZ2VGdW5jdGlvbjogRWRnZUZ1bmN0aW9uO1xuXG4gICAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgb3B0aW9uczogUHJlcmVuZGVyRnVuY3Rpb25PcHRpb25zKSB7XG4gICAgICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAgICAgdGhpcy5lZGdlRnVuY3Rpb24gPSBuZXcgZXhwZXJpbWVudGFsLkVkZ2VGdW5jdGlvbihcbiAgICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgICAnUHJlcmVuZGVyRnVuY3Rpb24nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBjb2RlOiBCdW5kbGluZy5idW5kbGUoe1xuICAgICAgICAgICAgICAgIGVudHJ5OiBgJHtfX2Rpcm5hbWV9L2hhbmRsZXJzL3ByZXJlbmRlci50c2AsXG4gICAgICAgICAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgICAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgICAgICAgcHJvamVjdFJvb3Q6IGAke19fZGlybmFtZX0vaGFuZGxlcnMvYCxcbiAgICAgICAgICAgICAgICBkZXBzTG9ja0ZpbGVQYXRoOiBgJHtfX2Rpcm5hbWV9L2hhbmRsZXJzL3BhY2thZ2UtbG9jay5qc29uYCxcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgb3B0aW9ucyByZXBsYWNlIHZhbHVlcyBhdCBidWlsZCB0aW1lIHNvIHdlIGNhbiB1c2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHRlc3QgbG9jYWxseVxuICAgICAgICAgICAgICAgIC8vIGFuZCByZXBsYWNlIGR1cmluZyBidWlsZC9kZXBsb3kgd2l0aCBzdGF0aWMgdmFsdWVzLiBUaGlzIGdldHMgYXJvdW5kIHRoZSBsYW1iZGFAZWRnZSBsaW1pdGF0aW9uXG4gICAgICAgICAgICAgICAgLy8gb2Ygbm8gZW52aXJvbm1lbnQgdmFyaWFibGVzIGF0IHJ1bnRpbWUuXG4gICAgICAgICAgICAgICAgZGVmaW5lOiB7XG4gICAgICAgICAgICAgICAgICAncHJvY2Vzcy5lbnYuUFJFUkVOREVSX1RPS0VOJzogSlNPTi5zdHJpbmdpZnkob3B0aW9ucy5wcmVyZW5kZXJUb2tlbiksXG4gICAgICAgICAgICAgICAgICAncHJvY2Vzcy5lbnYuUEFUSF9QUkVGSVgnOiBKU09OLnN0cmluZ2lmeShvcHRpb25zLnBhdGhQcmVmaXggPz8gJycpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICAgICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Construct } from '@aws-cdk/core';
|
|
2
2
|
export interface PrerenderLambdaProps {
|
|
3
|
-
|
|
4
|
-
redirectFrontendHost: string;
|
|
3
|
+
frontendHost: string;
|
|
5
4
|
prerenderToken: string;
|
|
5
|
+
exclusionExpression?: string;
|
|
6
6
|
}
|
|
7
7
|
export declare class PrerenderLambda extends Construct {
|
|
8
8
|
constructor(scope: Construct, id: string, props: PrerenderLambdaProps);
|
|
@@ -13,10 +13,10 @@ class PrerenderLambda extends core_1.Construct {
|
|
|
13
13
|
description: 'PrerenderCheckVersionARN',
|
|
14
14
|
value: prerenderCheckFunction.edgeFunction.currentVersion.edgeArn,
|
|
15
15
|
});
|
|
16
|
-
const
|
|
16
|
+
const prerenderFunction = new prerender_construct_1.PrerenderFunction(this, 'PrerenderOriginRequest', props);
|
|
17
17
|
new core_1.CfnOutput(this, 'PrerenderFunctionVersionARN', {
|
|
18
18
|
description: 'PrerenderFunctionVersionARN',
|
|
19
|
-
value:
|
|
19
|
+
value: prerenderFunction.edgeFunction.currentVersion.edgeArn,
|
|
20
20
|
});
|
|
21
21
|
const errorResponseFunction = new error_response_construct_1.ErrorResponseFunction(this, 'ErrorResponse', props);
|
|
22
22
|
new core_1.CfnOutput(this, 'ErrorResponseVersionARN', {
|
|
@@ -26,4 +26,4 @@ class PrerenderLambda extends core_1.Construct {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
exports.PrerenderLambda = PrerenderLambda;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlcmVuZGVyLWxhbWJkYS1jb25zdHJ1Y3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwcmVyZW5kZXItbGFtYmRhLWNvbnN0cnVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx3Q0FBcUQ7QUFDckQsK0RBQTBEO0FBQzFELDJFQUFxRTtBQUNyRSx5RUFBbUU7QUFRbkUsTUFBYSxlQUFnQixTQUFRLGdCQUFTO0lBQzVDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLHNCQUFzQixHQUFHLElBQUksa0RBQXNCLENBQUMsSUFBSSxFQUFFLHdCQUF3QixDQUFDLENBQUM7UUFDMUYsSUFBSSxnQkFBUyxDQUFDLElBQUksRUFBRSwwQkFBMEIsRUFBRTtZQUM1QyxXQUFXLEVBQUUsMEJBQTBCO1lBQ3ZDLEtBQUssRUFBRSxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLE9BQU87U0FDcEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLHVDQUFpQixDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN2RixJQUFJLGdCQUFTLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFO1lBQy9DLFdBQVcsRUFBRSw2QkFBNkI7WUFDMUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsT0FBTztTQUMvRCxDQUFDLENBQUM7UUFFSCxNQUFNLHFCQUFxQixHQUFHLElBQUksZ0RBQXFCLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RixJQUFJLGdCQUFTLENBQUMsSUFBSSxFQUFFLHlCQUF5QixFQUFFO1lBQzNDLFdBQVcsRUFBRSx5QkFBeUI7WUFDdEMsS0FBSyxFQUFFLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsT0FBTztTQUNuRSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF0QkQsMENBc0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBDZm5PdXRwdXQgfSBmcm9tICdAYXdzLWNkay9jb3JlJztcbmltcG9ydCB7IFByZXJlbmRlckZ1bmN0aW9uIH0gZnJvbSAnLi9wcmVyZW5kZXItY29uc3RydWN0JztcbmltcG9ydCB7IFByZXJlbmRlckNoZWNrRnVuY3Rpb24gfSBmcm9tICcuL3ByZXJlbmRlci1jaGVjay1jb25zdHJ1Y3QnO1xuaW1wb3J0IHsgRXJyb3JSZXNwb25zZUZ1bmN0aW9uIH0gZnJvbSAnLi9lcnJvci1yZXNwb25zZS1jb25zdHJ1Y3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByZXJlbmRlckxhbWJkYVByb3BzIHtcbiAgICBmcm9udGVuZEhvc3Q6IHN0cmluZyxcbiAgICBwcmVyZW5kZXJUb2tlbjogc3RyaW5nXG4gICAgZXhjbHVzaW9uRXhwcmVzc2lvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgY2xhc3MgUHJlcmVuZGVyTGFtYmRhIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByZXJlbmRlckxhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IHByZXJlbmRlckNoZWNrRnVuY3Rpb24gPSBuZXcgUHJlcmVuZGVyQ2hlY2tGdW5jdGlvbih0aGlzLCAnUHJlcmVuZGVyVmlld2VyUmVxdWVzdCcpO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ1ByZXJlbmRlckNoZWNrVmVyc2lvbkFSTicsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdQcmVyZW5kZXJDaGVja1ZlcnNpb25BUk4nLFxuICAgICAgICB2YWx1ZTogcHJlcmVuZGVyQ2hlY2tGdW5jdGlvbi5lZGdlRnVuY3Rpb24uY3VycmVudFZlcnNpb24uZWRnZUFybixcbiAgICB9KTtcblxuICAgIGNvbnN0IHByZXJlbmRlckZ1bmN0aW9uID0gbmV3IFByZXJlbmRlckZ1bmN0aW9uKHRoaXMsICdQcmVyZW5kZXJPcmlnaW5SZXF1ZXN0JywgcHJvcHMpO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ1ByZXJlbmRlckZ1bmN0aW9uVmVyc2lvbkFSTicsIHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdQcmVyZW5kZXJGdW5jdGlvblZlcnNpb25BUk4nLFxuICAgICAgICB2YWx1ZTogcHJlcmVuZGVyRnVuY3Rpb24uZWRnZUZ1bmN0aW9uLmN1cnJlbnRWZXJzaW9uLmVkZ2VBcm4sXG4gICAgfSk7XG5cbiAgICBjb25zdCBlcnJvclJlc3BvbnNlRnVuY3Rpb24gPSBuZXcgRXJyb3JSZXNwb25zZUZ1bmN0aW9uKHRoaXMsICdFcnJvclJlc3BvbnNlJywgcHJvcHMpO1xuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgJ0Vycm9yUmVzcG9uc2VWZXJzaW9uQVJOJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0Vycm9yUmVzcG9uc2VWZXJzaW9uQVJOJyxcbiAgICAgICAgdmFsdWU6IGVycm9yUmVzcG9uc2VGdW5jdGlvbi5lZGdlRnVuY3Rpb24uY3VycmVudFZlcnNpb24uZWRnZUFybixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aligent/cdk-prerender-proxy",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "A Cloudfront Lambda@Edge stack for integrating with prerender.io",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -25,15 +25,21 @@
|
|
|
25
25
|
"ts-node": "^10.0.0",
|
|
26
26
|
"typescript": "^4.3.5"
|
|
27
27
|
},
|
|
28
|
-
"peerDependencies": {
|
|
29
|
-
"esbuild": "^0.12.15"
|
|
30
|
-
},
|
|
31
28
|
"dependencies": {
|
|
32
|
-
"@aws-cdk/aws-cloudfront": "
|
|
33
|
-
"@aws-cdk/aws-lambda": "
|
|
34
|
-
"@aws-cdk/aws-lambda-nodejs": "
|
|
35
|
-
"@aws-cdk/core": "
|
|
36
|
-
"aws-cdk": "
|
|
29
|
+
"@aws-cdk/aws-cloudfront": "1.111.0",
|
|
30
|
+
"@aws-cdk/aws-lambda": "1.111.0",
|
|
31
|
+
"@aws-cdk/aws-lambda-nodejs": "1.111.0",
|
|
32
|
+
"@aws-cdk/core": "1.111.0",
|
|
33
|
+
"aws-cdk": "1.111.0",
|
|
34
|
+
"esbuild": "0.12.15",
|
|
37
35
|
"source-map-support": "^0.5.16"
|
|
36
|
+
},
|
|
37
|
+
"peerDependencies": {
|
|
38
|
+
"@aws-cdk/aws-cloudfront": "1.111.0",
|
|
39
|
+
"@aws-cdk/aws-lambda": "1.111.0",
|
|
40
|
+
"@aws-cdk/aws-lambda-nodejs": "1.111.0",
|
|
41
|
+
"@aws-cdk/core": "1.111.0",
|
|
42
|
+
"aws-cdk": "1.111.0",
|
|
43
|
+
"esbuild": "0.12.15"
|
|
38
44
|
}
|
|
39
45
|
}
|