UNPKG

open-next-cdk

Version:

Deploy a NextJS app using OpenNext packaging to serverless AWS using CDK

41 lines 5.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.bundleFunction = exports.ESM_BUNDLE_DEFAULTS = void 0; const fs = require("fs"); const os = require("os"); const path = require("path"); const path_1 = require("path"); const esbuild = require("esbuild"); exports.ESM_BUNDLE_DEFAULTS = { format: 'esm', mainFields: ['module', 'main'], banner: { // https://github.com/evanw/esbuild/issues/1921 js: `import { createRequire } from 'module'; const require = createRequire(import.meta.url);`, }, }; /** * Compile a function handler with esbuild. * @returns bundle directory path */ function bundleFunction({ inputPath, outputPath, outputFilename, bundleOptions }) { if (!outputPath) { if (!outputFilename) outputFilename = bundleOptions.format === 'esm' ? 'index.mjs' : 'index.js'; const tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'nextjs-bundling-')); outputPath = path.join(tempDir, outputFilename); } const esbuildResult = esbuild.buildSync({ ...bundleOptions, entryPoints: [inputPath], outfile: outputPath, }); if (esbuildResult.errors.length > 0) { esbuildResult.errors.forEach((error) => console.error(error)); throw new Error('There was a problem bundling the function.'); } // console.debug('Bundled ', inputPath, 'to', outputPath); return path_1.dirname(outputPath); } exports.bundleFunction = bundleFunction; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVuZGxlRnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQnVuZGxlRnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLG1DQUFtQztBQVN0QixRQUFBLG1CQUFtQixHQUFrQztJQUNoRSxNQUFNLEVBQUUsS0FBSztJQUNiLFVBQVUsRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUM7SUFDOUIsTUFBTSxFQUFFO1FBQ04sK0NBQStDO1FBQy9DLEVBQUUsRUFBRSx5RkFBeUY7S0FDOUY7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFzQjtJQUN6RyxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQ2YsSUFBSSxDQUFDLGNBQWM7WUFBRSxjQUFjLEdBQUcsYUFBYSxDQUFDLE1BQU0sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO1FBQ2hHLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQzNFLFVBQVUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztLQUNqRDtJQUVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDdEMsR0FBRyxhQUFhO1FBQ2hCLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN4QixPQUFPLEVBQUUsVUFBVTtLQUNwQixDQUFDLENBQUM7SUFDSCxJQUFJLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNuQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztLQUMvRDtJQUVELDBEQUEwRDtJQUUxRCxPQUFPLGNBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBcEJELHdDQW9CQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBlc2J1aWxkIGZyb20gJ2VzYnVpbGQnO1xuXG5pbnRlcmZhY2UgQnVuZGxlRnVuY3Rpb25BcmdzIHtcbiAgaW5wdXRQYXRoOiBzdHJpbmc7XG4gIG91dHB1dEZpbGVuYW1lPzogc3RyaW5nO1xuICBvdXRwdXRQYXRoPzogc3RyaW5nO1xuICBidW5kbGVPcHRpb25zOiBlc2J1aWxkLkJ1aWxkT3B0aW9ucztcbn1cblxuZXhwb3J0IGNvbnN0IEVTTV9CVU5ETEVfREVGQVVMVFM6IFBhcnRpYWw8ZXNidWlsZC5CdWlsZE9wdGlvbnM+ID0ge1xuICBmb3JtYXQ6ICdlc20nLFxuICBtYWluRmllbGRzOiBbJ21vZHVsZScsICdtYWluJ10sXG4gIGJhbm5lcjoge1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9ldmFudy9lc2J1aWxkL2lzc3Vlcy8xOTIxXG4gICAganM6IGBpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbW9kdWxlJzsgY29uc3QgcmVxdWlyZSA9IGNyZWF0ZVJlcXVpcmUoaW1wb3J0Lm1ldGEudXJsKTtgLFxuICB9LFxufTtcblxuLyoqXG4gKiBDb21waWxlIGEgZnVuY3Rpb24gaGFuZGxlciB3aXRoIGVzYnVpbGQuXG4gKiBAcmV0dXJucyBidW5kbGUgZGlyZWN0b3J5IHBhdGhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1bmRsZUZ1bmN0aW9uKHsgaW5wdXRQYXRoLCBvdXRwdXRQYXRoLCBvdXRwdXRGaWxlbmFtZSwgYnVuZGxlT3B0aW9ucyB9OiBCdW5kbGVGdW5jdGlvbkFyZ3MpIHtcbiAgaWYgKCFvdXRwdXRQYXRoKSB7XG4gICAgaWYgKCFvdXRwdXRGaWxlbmFtZSkgb3V0cHV0RmlsZW5hbWUgPSBidW5kbGVPcHRpb25zLmZvcm1hdCA9PT0gJ2VzbScgPyAnaW5kZXgubWpzJyA6ICdpbmRleC5qcyc7XG4gICAgY29uc3QgdGVtcERpciA9IGZzLm1rZHRlbXBTeW5jKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ25leHRqcy1idW5kbGluZy0nKSk7XG4gICAgb3V0cHV0UGF0aCA9IHBhdGguam9pbih0ZW1wRGlyLCBvdXRwdXRGaWxlbmFtZSk7XG4gIH1cblxuICBjb25zdCBlc2J1aWxkUmVzdWx0ID0gZXNidWlsZC5idWlsZFN5bmMoe1xuICAgIC4uLmJ1bmRsZU9wdGlvbnMsXG4gICAgZW50cnlQb2ludHM6IFtpbnB1dFBhdGhdLFxuICAgIG91dGZpbGU6IG91dHB1dFBhdGgsXG4gIH0pO1xuICBpZiAoZXNidWlsZFJlc3VsdC5lcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGVzYnVpbGRSZXN1bHQuZXJyb3JzLmZvckVhY2goKGVycm9yKSA9PiBjb25zb2xlLmVycm9yKGVycm9yKSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdUaGVyZSB3YXMgYSBwcm9ibGVtIGJ1bmRsaW5nIHRoZSBmdW5jdGlvbi4nKTtcbiAgfVxuXG4gIC8vIGNvbnNvbGUuZGVidWcoJ0J1bmRsZWQgJywgaW5wdXRQYXRoLCAndG8nLCBvdXRwdXRQYXRoKTtcblxuICByZXR1cm4gZGlybmFtZShvdXRwdXRQYXRoKTtcbn1cbiJdfQ==