cmux/node_modules/@vercel/hydrogen/dist/index.js
2026-01-29 17:36:26 -08:00

187 lines
5.9 KiB
JavaScript

"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
build: () => build,
prepareCache: () => prepareCache,
version: () => version
});
module.exports = __toCommonJS(src_exports);
// src/build.ts
var import_fs = require("fs");
var import_path = require("path");
var import_build_utils = require("@vercel/build-utils");
var import_static_config = require("@vercel/static-config");
var import_ts_morph = require("ts-morph");
var build = async ({
entrypoint,
files,
workPath,
config,
meta = {}
}) => {
const { installCommand, buildCommand } = config;
await (0, import_build_utils.download)(files, workPath, meta);
const prefixedEnvs = (0, import_build_utils.getPrefixedEnvVars)({
envPrefix: "PUBLIC_",
envs: process.env
});
for (const [key, value] of Object.entries(prefixedEnvs)) {
process.env[key] = value;
}
const mountpoint = (0, import_path.dirname)(entrypoint);
const entrypointDir = (0, import_path.join)(workPath, mountpoint);
const {
cliType,
lockfileVersion,
packageJsonPackageManager,
turboSupportsCorepackHome
} = await (0, import_build_utils.scanParentDirs)(entrypointDir, true);
const spawnEnv = (0, import_build_utils.getEnvForPackageManager)({
cliType,
lockfileVersion,
packageJsonPackageManager,
env: process.env,
turboSupportsCorepackHome,
projectCreatedAt: config.projectSettings?.createdAt
});
if (typeof installCommand === "string") {
if (installCommand.trim()) {
console.log(`Running "install" command: \`${installCommand}\`...`);
await (0, import_build_utils.execCommand)(installCommand, {
env: spawnEnv,
cwd: entrypointDir
});
} else {
console.log(`Skipping "install" command...`);
}
} else {
await (0, import_build_utils.runNpmInstall)(
entrypointDir,
[],
{ env: spawnEnv },
meta,
config.projectSettings?.createdAt
);
}
const edgeEntryDir = (0, import_path.join)(workPath, ".vercel/cache/hydrogen");
const edgeEntryRelative = (0, import_path.relative)(edgeEntryDir, workPath);
const edgeEntryDest = (0, import_path.join)(edgeEntryDir, "edge-entry.js");
let edgeEntryContents = await import_fs.promises.readFile(
(0, import_path.join)(__dirname, "..", "edge-entry.js"),
"utf8"
);
edgeEntryContents = edgeEntryContents.replace(
/__RELATIVE__/g,
edgeEntryRelative
);
await import_fs.promises.mkdir(edgeEntryDir, { recursive: true });
await import_fs.promises.writeFile(edgeEntryDest, edgeEntryContents);
spawnEnv.SHOPIFY_FLAG_BUILD_TARGET = "worker";
spawnEnv.SHOPIFY_FLAG_BUILD_SSR_ENTRY = edgeEntryDest;
if (buildCommand) {
(0, import_build_utils.debug)(`Executing build command "${buildCommand}"`);
await (0, import_build_utils.execCommand)(buildCommand, {
env: spawnEnv,
cwd: entrypointDir
});
} else {
const pkg = await (0, import_build_utils.readConfigFile)(
(0, import_path.join)(entrypointDir, "package.json")
);
if (hasScript("vercel-build", pkg)) {
(0, import_build_utils.debug)(`Executing "yarn vercel-build"`);
await (0, import_build_utils.runPackageJsonScript)(
entrypointDir,
"vercel-build",
{ env: spawnEnv },
config.projectSettings?.createdAt
);
} else if (hasScript("build", pkg)) {
(0, import_build_utils.debug)(`Executing "yarn build"`);
await (0, import_build_utils.runPackageJsonScript)(
entrypointDir,
"build",
{ env: spawnEnv },
config.projectSettings?.createdAt
);
} else {
await (0, import_build_utils.execCommand)("shopify hydrogen build", {
env: spawnEnv,
cwd: entrypointDir
});
}
}
const [staticFiles, edgeFunctionFiles] = await Promise.all([
(0, import_build_utils.glob)("**", (0, import_path.join)(entrypointDir, "dist/client")),
(0, import_build_utils.glob)("**", (0, import_path.join)(entrypointDir, "dist/worker"))
]);
const edgeFunction = new import_build_utils.EdgeFunction({
deploymentTarget: "v8-worker",
entrypoint: "index.js",
files: edgeFunctionFiles,
regions: (() => {
try {
const project = new import_ts_morph.Project();
const config2 = (0, import_static_config.getConfig)(project, edgeFunctionFiles["index.js"].fsPath);
return config2?.regions;
} catch {
return void 0;
}
})()
});
delete staticFiles["index.html"];
return {
routes: [
{
handle: "filesystem"
},
{
src: "/(.*)",
dest: "/hydrogen"
}
],
output: {
hydrogen: edgeFunction,
...staticFiles
}
};
};
function hasScript(scriptName, pkg) {
const scripts = pkg?.scripts || {};
return typeof scripts[scriptName] === "string";
}
// src/prepare-cache.ts
var import_build_utils2 = require("@vercel/build-utils");
var prepareCache = ({ repoRootPath, workPath }) => {
return (0, import_build_utils2.glob)(import_build_utils2.defaultCachePathGlob, repoRootPath || workPath);
};
// src/index.ts
var version = 2;
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
build,
prepareCache,
version
});