123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.ɵcodegenFunctionsDirectory = exports.ɵcodegenPublicDirectory = exports.build = exports.discover = exports.type = exports.support = exports.name = void 0;
- const child_process_1 = require("child_process");
- const fs_extra_1 = require("fs-extra");
- const promises_1 = require("fs/promises");
- const path_1 = require("path");
- const { dynamicImport } = require(true && "../../dynamicImport");
- exports.name = "Express.js";
- exports.support = "experimental";
- exports.type = 0;
- async function getConfig(root) {
- var _a, _b;
- const packageJsonBuffer = await (0, promises_1.readFile)((0, path_1.join)(root, "package.json"));
- const packageJson = JSON.parse(packageJsonBuffer.toString());
- const serve = (_a = packageJson.directories) === null || _a === void 0 ? void 0 : _a.serve;
- const serveDir = serve && (0, path_1.join)(root, (_b = packageJson.directories) === null || _b === void 0 ? void 0 : _b.serve);
- return { serveDir, packageJson };
- }
- async function discover(dir) {
- if (!(await (0, fs_extra_1.pathExists)((0, path_1.join)(dir, "package.json"))))
- return;
- const { serveDir } = await getConfig(dir);
- if (!serveDir)
- return;
- return { mayWantBackend: true };
- }
- exports.discover = discover;
- async function build(cwd) {
- (0, child_process_1.execSync)(`npm run build`, { stdio: "inherit", cwd });
- const wantsBackend = !!(await getBootstrapScript(cwd));
- return { wantsBackend };
- }
- exports.build = build;
- async function ɵcodegenPublicDirectory(root, dest) {
- const { serveDir } = await getConfig(root);
- await (0, fs_extra_1.copy)(serveDir, dest);
- }
- exports.ɵcodegenPublicDirectory = ɵcodegenPublicDirectory;
- async function getBootstrapScript(root, _bootstrapScript = "", _entry) {
- let entry = _entry;
- let bootstrapScript = _bootstrapScript;
- const allowRecursion = !entry;
- if (!entry) {
- const { packageJson: { name }, } = await getConfig(root);
- try {
- entry = require(root);
- bootstrapScript = `const bootstrap = Promise.resolve(require('${name}'))`;
- }
- catch (e) {
- entry = await dynamicImport(root).catch(() => undefined);
- bootstrapScript = `const bootstrap = import('${name}')`;
- }
- }
- if (!entry)
- return undefined;
- const { default: defaultExport, app, handle } = entry;
- if (typeof handle === "function") {
- return (bootstrapScript +
- ";\nexports.handle = async (req, res) => (await bootstrap).handle(req, res);");
- }
- if (typeof app === "function") {
- try {
- const express = app();
- if (typeof express.render === "function") {
- return (bootstrapScript +
- ";\nexports.handle = async (req, res) => (await bootstrap).app(req, res);");
- }
- }
- catch (e) {
- }
- }
- if (!allowRecursion)
- return undefined;
- if (typeof defaultExport === "object") {
- bootstrapScript += ".then(({ default }) => default)";
- if (typeof defaultExport.then === "function") {
- const awaitedDefaultExport = await defaultExport;
- return getBootstrapScript(root, bootstrapScript, awaitedDefaultExport);
- }
- else {
- return getBootstrapScript(root, bootstrapScript, defaultExport);
- }
- }
- return undefined;
- }
- async function ɵcodegenFunctionsDirectory(root, dest) {
- const bootstrapScript = await getBootstrapScript(root);
- if (!bootstrapScript)
- return;
- await (0, promises_1.mkdir)(dest, { recursive: true });
- const { packageJson } = await getConfig(root);
- const packResults = (0, child_process_1.execSync)(`npm pack ${root} --json`, { cwd: dest });
- const npmPackResults = JSON.parse(packResults.toString());
- const matchingPackResult = npmPackResults.find((it) => it.name === packageJson.name);
- const { filename } = matchingPackResult;
- packageJson.dependencies || (packageJson.dependencies = {});
- packageJson.dependencies[packageJson.name] = `file:${filename}`;
- return { bootstrapScript, packageJson };
- }
- exports.ɵcodegenFunctionsDirectory = ɵcodegenFunctionsDirectory;
|