UNPKG

cdk-nextjs

Version:

Deploy Next.js apps on AWS with CDK

53 lines 6.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = void 0; const node_fs_1 = require("node:fs"); const fs_to_fs_1 = require("./fs-to-fs"); const fs_to_s3_1 = require("./fs-to-s3"); const utils_1 = require("../utils"); const handler = async (event, context) => { (0, utils_1.debug)({ event }); let responseStatus = utils_1.CfnResponseStatus.Failed; try { const props = event.ResourceProperties; if (event.RequestType === "Create" || event.RequestType === "Update") { const { actions, buildId, nextjsType } = props; for (const action of actions) { if (action.type === "fs-to-fs") { (0, fs_to_fs_1.fsToFs)(action); } else if (action.type === "fs-to-s3") { await (0, fs_to_s3_1.fsToS3)({ ...action, nextjsType, buildId }); } } initImageCache(props.imageCachePath); responseStatus = utils_1.CfnResponseStatus.Success; } else { responseStatus = utils_1.CfnResponseStatus.Success; } } catch (err) { console.error(err); } finally { await (0, utils_1.cfnResponse)({ event, context, responseStatus, responseData: {}, }); } }; exports.handler = handler; /** * On first deployment there is no directory for images to be optimized into by * Next.js so this creates directory for those images. Only runs once. * This is unlike other cache directories which are created at build time. */ function initImageCache(imageCachePath) { if (imageCachePath && !(0, node_fs_1.existsSync)(imageCachePath)) { (0, node_fs_1.mkdirSync)(imageCachePath); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xhbWJkYXMvYXNzZXRzLWRlcGxveW1lbnQvYXNzZXRzLWRlcGxveW1lbnQubGFtYmRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFDQUFnRDtBQUVoRCx5Q0FBb0M7QUFDcEMseUNBQW9DO0FBRXBDLG9DQUFpRTtBQU0xRCxNQUFNLE9BQU8sR0FBd0MsS0FBSyxFQUMvRCxLQUFLLEVBQ0wsT0FBTyxFQUNQLEVBQUU7SUFDRixJQUFBLGFBQUssRUFBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakIsSUFBSSxjQUFjLEdBQUcseUJBQWlCLENBQUMsTUFBTSxDQUFDO0lBQzlDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxrQkFBbUMsQ0FBQztRQUN4RCxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxJQUFJLEtBQUssQ0FBQyxXQUFXLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDckUsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDO1lBQy9DLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQzdCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDL0IsSUFBQSxpQkFBTSxFQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQixDQUFDO3FCQUFNLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLEVBQUUsQ0FBQztvQkFDdEMsTUFBTSxJQUFBLGlCQUFNLEVBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDbkQsQ0FBQztZQUNILENBQUM7WUFDRCxjQUFjLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLGNBQWMsR0FBRyx5QkFBaUIsQ0FBQyxPQUFPLENBQUM7UUFDN0MsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcseUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQztZQUFTLENBQUM7UUFDVCxNQUFNLElBQUEsbUJBQVcsRUFBQztZQUNoQixLQUFLO1lBQ0wsT0FBTztZQUNQLGNBQWM7WUFDZCxZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBaENXLFFBQUEsT0FBTyxXQWdDbEI7QUFFRjs7OztHQUlHO0FBQ0gsU0FBUyxjQUFjLENBQUMsY0FBc0I7SUFDNUMsSUFBSSxjQUFjLElBQUksQ0FBQyxJQUFBLG9CQUFVLEVBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxJQUFBLG1CQUFTLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jLCBta2RpclN5bmMgfSBmcm9tIFwibm9kZTpmc1wiO1xuaW1wb3J0IHR5cGUgeyBDbG91ZEZvcm1hdGlvbkN1c3RvbVJlc291cmNlSGFuZGxlciB9IGZyb20gXCJhd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBmc1RvRnMgfSBmcm9tIFwiLi9mcy10by1mc1wiO1xuaW1wb3J0IHsgZnNUb1MzIH0gZnJvbSBcIi4vZnMtdG8tczNcIjtcbmltcG9ydCB0eXBlIHsgU3RhdGljQXNzZXRzQ3VzdG9tUmVzb3VyY2VQcm9wZXJ0aWVzIH0gZnJvbSBcIi4uLy4uL25leHRqcy1hc3NldHMtZGVwbG95bWVudFwiO1xuaW1wb3J0IHsgY2ZuUmVzcG9uc2UsIENmblJlc3BvbnNlU3RhdHVzLCBkZWJ1ZyB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG50eXBlIFJlc291cmNlUHJvcHMgPSBTdGF0aWNBc3NldHNDdXN0b21SZXNvdXJjZVByb3BlcnRpZXMgJiB7XG4gIFNlcnZpY2VUb2tlbjogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IGhhbmRsZXI6IENsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VIYW5kbGVyID0gYXN5bmMgKFxuICBldmVudCxcbiAgY29udGV4dCxcbikgPT4ge1xuICBkZWJ1Zyh7IGV2ZW50IH0pO1xuICBsZXQgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5GYWlsZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcHJvcHMgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMgYXMgUmVzb3VyY2VQcm9wcztcbiAgICBpZiAoZXZlbnQuUmVxdWVzdFR5cGUgPT09IFwiQ3JlYXRlXCIgfHwgZXZlbnQuUmVxdWVzdFR5cGUgPT09IFwiVXBkYXRlXCIpIHtcbiAgICAgIGNvbnN0IHsgYWN0aW9ucywgYnVpbGRJZCwgbmV4dGpzVHlwZSB9ID0gcHJvcHM7XG4gICAgICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBhY3Rpb25zKSB7XG4gICAgICAgIGlmIChhY3Rpb24udHlwZSA9PT0gXCJmcy10by1mc1wiKSB7XG4gICAgICAgICAgZnNUb0ZzKGFjdGlvbik7XG4gICAgICAgIH0gZWxzZSBpZiAoYWN0aW9uLnR5cGUgPT09IFwiZnMtdG8tczNcIikge1xuICAgICAgICAgIGF3YWl0IGZzVG9TMyh7IC4uLmFjdGlvbiwgbmV4dGpzVHlwZSwgYnVpbGRJZCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaW5pdEltYWdlQ2FjaGUocHJvcHMuaW1hZ2VDYWNoZVBhdGgpO1xuICAgICAgcmVzcG9uc2VTdGF0dXMgPSBDZm5SZXNwb25zZVN0YXR1cy5TdWNjZXNzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNwb25zZVN0YXR1cyA9IENmblJlc3BvbnNlU3RhdHVzLlN1Y2Nlc3M7XG4gICAgfVxuICB9IGNhdGNoIChlcnIpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycik7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgY2ZuUmVzcG9uc2Uoe1xuICAgICAgZXZlbnQsXG4gICAgICBjb250ZXh0LFxuICAgICAgcmVzcG9uc2VTdGF0dXMsXG4gICAgICByZXNwb25zZURhdGE6IHt9LFxuICAgIH0pO1xuICB9XG59O1xuXG4vKipcbiAqIE9uIGZpcnN0IGRlcGxveW1lbnQgdGhlcmUgaXMgbm8gZGlyZWN0b3J5IGZvciBpbWFnZXMgdG8gYmUgb3B0aW1pemVkIGludG8gYnlcbiAqIE5leHQuanMgc28gdGhpcyBjcmVhdGVzIGRpcmVjdG9yeSBmb3IgdGhvc2UgaW1hZ2VzLiBPbmx5IHJ1bnMgb25jZS5cbiAqIFRoaXMgaXMgdW5saWtlIG90aGVyIGNhY2hlIGRpcmVjdG9yaWVzIHdoaWNoIGFyZSBjcmVhdGVkIGF0IGJ1aWxkIHRpbWUuXG4gKi9cbmZ1bmN0aW9uIGluaXRJbWFnZUNhY2hlKGltYWdlQ2FjaGVQYXRoOiBzdHJpbmcpIHtcbiAgaWYgKGltYWdlQ2FjaGVQYXRoICYmICFleGlzdHNTeW5jKGltYWdlQ2FjaGVQYXRoKSkge1xuICAgIG1rZGlyU3luYyhpbWFnZUNhY2hlUGF0aCk7XG4gIH1cbn1cbiJdfQ==