@vercel/remix-builder 2.0.2 → 2.0.3

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/dist/build.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../src/build.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/build.ts"],
4
+ "sourcesContent": ["import { Project } from 'ts-morph';\nimport { readFileSync, promises as fs } from 'fs';\nimport { basename, dirname, extname, join, relative, sep } from 'path';\nimport {\n debug,\n download,\n execCommand,\n FileBlob,\n FileFsRef,\n getEnvForPackageManager,\n getNodeVersion,\n getSpawnOptions,\n glob,\n EdgeFunction,\n NodejsLambda,\n runNpmInstall,\n runPackageJsonScript,\n scanParentDirs,\n} from '@vercel/build-utils';\nimport { getConfig } from '@vercel/static-config';\nimport { nodeFileTrace } from '@vercel/nft';\nimport type {\n BuildV2,\n Files,\n NodeVersion,\n PackageJson,\n BuildResultV2Typical,\n} from '@vercel/build-utils';\nimport type { ConfigRoute } from '@remix-run/dev/dist/config/routes';\nimport type { BaseFunctionConfig } from '@vercel/static-config';\nimport {\n calculateRouteConfigHash,\n findConfig,\n getPathFromRoute,\n getRegExpFromPath,\n getResolvedRouteConfig,\n isLayoutRoute,\n ResolvedRouteConfig,\n ResolvedNodeRouteConfig,\n ResolvedEdgeRouteConfig,\n findEntry,\n chdirAndReadConfig,\n addDependencies,\n resolveSemverMinMax,\n ensureResolvable,\n isESM,\n} from './utils';\nimport { patchHydrogenServer } from './hydrogen';\n\ninterface ServerBundle {\n serverBuildPath: string;\n routes: string[];\n}\n\nconst remixBuilderPkg = JSON.parse(\n readFileSync(join(__dirname, '../package.json'), 'utf8')\n);\nconst remixRunDevForkVersion =\n remixBuilderPkg.devDependencies['@remix-run/dev'];\n\nconst DEFAULTS_PATH = join(__dirname, '../defaults');\n\nconst edgeServerSrcPromise = fs.readFile(\n join(DEFAULTS_PATH, 'server-edge.mjs'),\n 'utf-8'\n);\nconst nodeServerSrcPromise = fs.readFile(\n join(DEFAULTS_PATH, 'server-node.mjs'),\n 'utf-8'\n);\n\n// Minimum supported version of the `@vercel/remix` package\nconst VERCEL_REMIX_MIN_VERSION = '1.10.0';\n\n// Minimum supported version of the `@vercel/remix-run-dev` forked compiler\nconst REMIX_RUN_DEV_MIN_VERSION = '1.15.0';\n\n// Maximum version of `@vercel/remix-run-dev` fork\n// (and also `@vercel/remix` since they get published at the same time)\nconst REMIX_RUN_DEV_MAX_VERSION = remixRunDevForkVersion.slice(\n remixRunDevForkVersion.lastIndexOf('@') + 1\n);\n\nexport const build: BuildV2 = async ({\n entrypoint,\n files,\n workPath,\n repoRootPath,\n config,\n meta = {},\n}) => {\n const { installCommand, buildCommand } = config;\n\n await download(files, workPath, meta);\n\n const mountpoint = dirname(entrypoint);\n const entrypointFsDirname = join(workPath, mountpoint);\n\n // Run \"Install Command\"\n const nodeVersion = await getNodeVersion(\n entrypointFsDirname,\n undefined,\n config,\n meta\n );\n\n const { cliType, packageJsonPath, lockfileVersion } = await scanParentDirs(\n entrypointFsDirname\n );\n\n if (!packageJsonPath) {\n throw new Error('Failed to locate `package.json` file in your project');\n }\n\n const pkgRaw = await fs.readFile(packageJsonPath, 'utf8');\n const pkg = JSON.parse(pkgRaw);\n\n const spawnOpts = getSpawnOptions(meta, nodeVersion);\n if (!spawnOpts.env) {\n spawnOpts.env = {};\n }\n\n spawnOpts.env = getEnvForPackageManager({\n cliType,\n lockfileVersion,\n nodeVersion,\n env: spawnOpts.env,\n });\n\n if (typeof installCommand === 'string') {\n if (installCommand.trim()) {\n console.log(`Running \"install\" command: \\`${installCommand}\\`...`);\n await execCommand(installCommand, {\n ...spawnOpts,\n cwd: entrypointFsDirname,\n });\n } else {\n console.log(`Skipping \"install\" command...`);\n }\n } else {\n await runNpmInstall(entrypointFsDirname, [], spawnOpts, meta, nodeVersion);\n }\n\n const isHydrogen2 =\n pkg.dependencies?.['@shopify/remix-oxygen'] ||\n pkg.devDependencies?.['@shopify/remix-oxygen'];\n\n // Determine the version of Remix based on the `@remix-run/dev`\n // package version.\n const remixRunDevPath = await ensureResolvable(\n entrypointFsDirname,\n repoRootPath,\n '@remix-run/dev'\n );\n const remixRunDevPkg = JSON.parse(\n readFileSync(join(remixRunDevPath, 'package.json'), 'utf8')\n );\n const remixVersion = remixRunDevPkg.version;\n\n const remixConfig = await chdirAndReadConfig(\n remixRunDevPath,\n entrypointFsDirname,\n packageJsonPath\n );\n const { serverEntryPoint, appDirectory } = remixConfig;\n const remixRoutes = Object.values(remixConfig.routes);\n\n const depsToAdd: string[] = [];\n\n // Override the official `@remix-run/dev` package with the\n // Vercel fork, which supports the `serverBundles` config\n if (!isHydrogen2 && remixRunDevPkg.name !== '@vercel/remix-run-dev') {\n const remixDevForkVersion = resolveSemverMinMax(\n REMIX_RUN_DEV_MIN_VERSION,\n REMIX_RUN_DEV_MAX_VERSION,\n remixVersion\n );\n depsToAdd.push(\n `@remix-run/dev@npm:@vercel/remix-run-dev@${remixDevForkVersion}`\n );\n }\n\n // `app/entry.server.tsx` and `app/entry.client.tsx` are optional in Remix,\n // so if either of those files are missing then add our own versions.\n const userEntryServerFile = findEntry(appDirectory, 'entry.server');\n if (!userEntryServerFile) {\n await fs.copyFile(\n join(DEFAULTS_PATH, 'entry.server.jsx'),\n join(appDirectory, 'entry.server.jsx')\n );\n if (!pkg.dependencies['@vercel/remix']) {\n // Dependency version resolution logic\n // 1. Users app is on 1.9.0 -> we install the 1.10.0 (minimum) version of `@vercel/remix`.\n // 2. Users app is on 1.11.0 (a version greater than 1.10.0 and less than the known max\n // published version) -> we install the (matching) 1.11.0 version of `@vercel/remix`.\n // 3. Users app is on something greater than our latest version of the fork -> we install\n // the latest known published version of `@vercel/remix`.\n const vercelRemixVersion = resolveSemverMinMax(\n VERCEL_REMIX_MIN_VERSION,\n REMIX_RUN_DEV_MAX_VERSION,\n remixVersion\n );\n depsToAdd.push(`@vercel/remix@${vercelRemixVersion}`);\n }\n }\n\n if (depsToAdd.length) {\n await addDependencies(cliType, depsToAdd, {\n ...spawnOpts,\n cwd: entrypointFsDirname,\n });\n }\n\n const userEntryClientFile = findEntry(\n remixConfig.appDirectory,\n 'entry.client'\n );\n if (!userEntryClientFile) {\n await fs.copyFile(\n join(DEFAULTS_PATH, 'entry.client.react.jsx'),\n join(appDirectory, 'entry.client.jsx')\n );\n }\n\n let remixConfigWrapped = false;\n let serverEntryPointAbs: string | undefined;\n let originalServerEntryPoint: string | undefined;\n const remixConfigPath = findConfig(entrypointFsDirname, 'remix.config');\n const renamedRemixConfigPath = remixConfigPath\n ? `${remixConfigPath}.original${extname(remixConfigPath)}`\n : undefined;\n\n // These get populated inside the try/catch below\n let serverBundles: ServerBundle[];\n const serverBundlesMap = new Map<string, ConfigRoute[]>();\n const resolvedConfigsMap = new Map<ConfigRoute, ResolvedRouteConfig>();\n\n try {\n // Read the `export const config` (if any) for each route\n const project = new Project();\n const staticConfigsMap = new Map<ConfigRoute, BaseFunctionConfig | null>();\n for (const route of remixRoutes) {\n const routePath = join(remixConfig.appDirectory, route.file);\n let staticConfig = getConfig(project, routePath);\n if (staticConfig && isHydrogen2) {\n console.log(\n 'WARN: `export const config` is currently not supported for Hydrogen v2 apps'\n );\n staticConfig = null;\n }\n staticConfigsMap.set(route, staticConfig);\n }\n\n for (const route of remixRoutes) {\n const config = getResolvedRouteConfig(\n route,\n remixConfig.routes,\n staticConfigsMap,\n isHydrogen2\n );\n resolvedConfigsMap.set(route, config);\n }\n\n // Figure out which routes belong to which server bundles\n // based on having common static config properties\n for (const route of remixRoutes) {\n if (isLayoutRoute(route.id, remixRoutes)) continue;\n\n const config = resolvedConfigsMap.get(route);\n if (!config) {\n throw new Error(`Expected resolved config for \"${route.id}\"`);\n }\n const hash = calculateRouteConfigHash(config);\n\n let routesForHash = serverBundlesMap.get(hash);\n if (!Array.isArray(routesForHash)) {\n routesForHash = [];\n serverBundlesMap.set(hash, routesForHash);\n }\n\n routesForHash.push(route);\n }\n\n serverBundles = Array.from(serverBundlesMap.entries()).map(\n ([hash, routes]) => {\n const runtime = resolvedConfigsMap.get(routes[0])?.runtime ?? 'nodejs';\n return {\n serverBuildPath: isHydrogen2\n ? relative(entrypointFsDirname, remixConfig.serverBuildPath)\n : `${relative(\n entrypointFsDirname,\n dirname(remixConfig.serverBuildPath)\n )}/build-${runtime}-${hash}.js`,\n routes: routes.map(r => r.id),\n };\n }\n );\n\n // We need to patch the `remix.config.js` file to force some values necessary\n // for a build that works on either Node.js or the Edge runtime\n if (!isHydrogen2 && remixConfigPath && renamedRemixConfigPath) {\n await fs.rename(remixConfigPath, renamedRemixConfigPath);\n\n let patchedConfig: string;\n // Figure out if the `remix.config` file is using ESM syntax\n if (isESM(renamedRemixConfigPath)) {\n patchedConfig = `import config from './${basename(\n renamedRemixConfigPath\n )}';\nconfig.serverBuildTarget = undefined;\nconfig.serverModuleFormat = 'cjs';\nconfig.serverPlatform = 'node';\nconfig.serverBuildPath = undefined;\nconfig.serverBundles = ${JSON.stringify(serverBundles)};\nexport default config;`;\n } else {\n patchedConfig = `const config = require('./${basename(\n renamedRemixConfigPath\n )}');\nconfig.serverBuildTarget = undefined;\nconfig.serverModuleFormat = 'cjs';\nconfig.serverPlatform = 'node';\nconfig.serverBuildPath = undefined;\nconfig.serverBundles = ${JSON.stringify(serverBundles)};\nmodule.exports = config;`;\n }\n await fs.writeFile(remixConfigPath, patchedConfig);\n remixConfigWrapped = true;\n }\n\n // For Hydrogen v2, patch the `server.ts` file to be Vercel-compatible\n if (isHydrogen2) {\n if (remixConfig.serverEntryPoint) {\n serverEntryPointAbs = join(\n entrypointFsDirname,\n remixConfig.serverEntryPoint\n );\n originalServerEntryPoint = await fs.readFile(\n serverEntryPointAbs,\n 'utf8'\n );\n const patchedServerEntryPoint = patchHydrogenServer(\n project,\n serverEntryPointAbs\n );\n if (patchedServerEntryPoint) {\n debug(\n `Patched Hydrogen server file: ${remixConfig.serverEntryPoint}`\n );\n await fs.writeFile(serverEntryPointAbs, patchedServerEntryPoint);\n }\n } else {\n console.log('WARN: No \"server\" field found in Remix config');\n }\n }\n\n // Make `remix build` output production mode\n spawnOpts.env.NODE_ENV = 'production';\n\n // Run \"Build Command\"\n if (buildCommand) {\n debug(`Executing build command \"${buildCommand}\"`);\n await execCommand(buildCommand, {\n ...spawnOpts,\n cwd: entrypointFsDirname,\n });\n } else {\n if (hasScript('vercel-build', pkg)) {\n debug(`Executing \"yarn vercel-build\"`);\n await runPackageJsonScript(\n entrypointFsDirname,\n 'vercel-build',\n spawnOpts\n );\n } else if (hasScript('build', pkg)) {\n debug(`Executing \"yarn build\"`);\n await runPackageJsonScript(entrypointFsDirname, 'build', spawnOpts);\n } else {\n await execCommand('remix build', {\n ...spawnOpts,\n cwd: entrypointFsDirname,\n });\n }\n }\n } finally {\n const cleanupOps: Promise<void>[] = [];\n // Clean up our patched `remix.config.js` to be polite\n if (remixConfigWrapped && remixConfigPath && renamedRemixConfigPath) {\n cleanupOps.push(\n fs\n .rename(renamedRemixConfigPath, remixConfigPath)\n .then(() =>\n debug(`Restored original \"${basename(remixConfigPath)}\" file`)\n )\n );\n }\n // Restore original server entrypoint if it was modified (for Hydrogen v2)\n if (serverEntryPointAbs && originalServerEntryPoint) {\n cleanupOps.push(\n fs\n .writeFile(serverEntryPointAbs, originalServerEntryPoint)\n .then(() =>\n debug(`Restored original \"${basename(serverEntryPointAbs!)}\" file`)\n )\n );\n }\n await Promise.all(cleanupOps);\n }\n\n // This needs to happen before we run NFT to create the Node/Edge functions\n await Promise.all([\n ensureResolvable(\n entrypointFsDirname,\n repoRootPath,\n '@remix-run/server-runtime'\n ),\n !isHydrogen2\n ? ensureResolvable(entrypointFsDirname, repoRootPath, '@remix-run/node')\n : null,\n ]);\n\n const staticDir = join(\n remixConfig.assetsBuildDirectory,\n ...remixConfig.publicPath\n .replace(/^\\/|\\/$/g, '')\n .split('/')\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .map(_ => '..')\n );\n const [staticFiles, ...functions] = await Promise.all([\n glob('**', staticDir),\n ...serverBundles.map(bundle => {\n const firstRoute = remixConfig.routes[bundle.routes[0]];\n const config = resolvedConfigsMap.get(firstRoute) ?? {\n runtime: 'nodejs',\n };\n\n if (config.runtime === 'edge') {\n return createRenderEdgeFunction(\n entrypointFsDirname,\n repoRootPath,\n join(entrypointFsDirname, bundle.serverBuildPath),\n serverEntryPoint,\n remixVersion,\n config\n );\n }\n\n return createRenderNodeFunction(\n nodeVersion,\n entrypointFsDirname,\n repoRootPath,\n join(entrypointFsDirname, bundle.serverBuildPath),\n serverEntryPoint,\n remixVersion,\n config\n );\n }),\n ]);\n\n const output: BuildResultV2Typical['output'] = staticFiles;\n const routes: any[] = [\n {\n src: '^/build/(.*)$',\n headers: { 'cache-control': 'public, max-age=31536000, immutable' },\n continue: true,\n },\n {\n handle: 'filesystem',\n },\n ];\n\n for (const route of remixRoutes) {\n // Layout routes don't get a function / route added\n if (isLayoutRoute(route.id, remixRoutes)) continue;\n\n const { path, rePath } = getPathFromRoute(route, remixConfig.routes);\n\n // If the route is a pathless layout route (at the root level)\n // and doesn't have any sub-routes, then a function should not be created.\n if (!path) {\n continue;\n }\n\n const funcIndex = serverBundles.findIndex(bundle => {\n return bundle.routes.includes(route.id);\n });\n const func = functions[funcIndex];\n\n if (!func) {\n throw new Error(`Could not determine server bundle for \"${route.id}\"`);\n }\n\n output[path] =\n func instanceof EdgeFunction\n ? // `EdgeFunction` currently requires the \"name\" property to be set.\n // Ideally this property will be removed, at which point we can\n // return the same `edgeFunction` instance instead of creating a\n // new one for each page.\n new EdgeFunction({\n ...func,\n name: path,\n })\n : func;\n\n // If this is a dynamic route then add a Vercel route\n const re = getRegExpFromPath(rePath);\n if (re) {\n routes.push({\n src: re.source,\n dest: path,\n });\n }\n }\n\n // Add a 404 path for not found pages to be server-side rendered by Remix.\n // Use an edge function bundle if one was generated, otherwise use Node.js.\n if (!output['404']) {\n const edgeFunctionIndex = Array.from(serverBundlesMap.values()).findIndex(\n routes => {\n const runtime = resolvedConfigsMap.get(routes[0])?.runtime;\n return runtime === 'edge';\n }\n );\n const func =\n edgeFunctionIndex !== -1 ? functions[edgeFunctionIndex] : functions[0];\n output['404'] =\n func instanceof EdgeFunction\n ? new EdgeFunction({ ...func, name: '404' })\n : func;\n }\n routes.push({\n src: '/(.*)',\n dest: '/404',\n });\n\n return { routes, output, framework: { version: remixVersion } };\n};\n\nfunction hasScript(scriptName: string, pkg: PackageJson | null) {\n const scripts = (pkg && pkg.scripts) || {};\n return typeof scripts[scriptName] === 'string';\n}\n\nasync function createRenderNodeFunction(\n nodeVersion: NodeVersion,\n entrypointDir: string,\n rootDir: string,\n serverBuildPath: string,\n serverEntryPoint: string | undefined,\n remixVersion: string,\n config: ResolvedNodeRouteConfig\n): Promise<NodejsLambda> {\n const files: Files = {};\n\n let handler = relative(rootDir, serverBuildPath);\n let handlerPath = join(rootDir, handler);\n if (!serverEntryPoint) {\n const baseServerBuildPath = basename(serverBuildPath, '.js');\n handler = join(dirname(handler), `server-${baseServerBuildPath}.mjs`);\n handlerPath = join(rootDir, handler);\n\n // Copy the `server-node.mjs` file into the \"build\" directory\n const nodeServerSrc = await nodeServerSrcPromise;\n await writeEntrypointFile(\n handlerPath,\n nodeServerSrc.replace(\n '@remix-run/dev/server-build',\n `./${baseServerBuildPath}.js`\n ),\n rootDir\n );\n }\n\n // Trace the handler with `@vercel/nft`\n const trace = await nodeFileTrace([handlerPath], {\n base: rootDir,\n processCwd: entrypointDir,\n });\n\n for (const warning of trace.warnings) {\n debug(`Warning from trace: ${warning.message}`);\n }\n\n for (const file of trace.fileList) {\n files[file] = await FileFsRef.fromFsPath({ fsPath: join(rootDir, file) });\n }\n\n const fn = new NodejsLambda({\n files,\n handler,\n runtime: nodeVersion.runtime,\n shouldAddHelpers: false,\n shouldAddSourcemapSupport: false,\n operationType: 'SSR',\n supportsResponseStreaming: true,\n regions: config.regions,\n memory: config.memory,\n maxDuration: config.maxDuration,\n framework: {\n slug: 'remix',\n version: remixVersion,\n },\n });\n\n return fn;\n}\n\nasync function createRenderEdgeFunction(\n entrypointDir: string,\n rootDir: string,\n serverBuildPath: string,\n serverEntryPoint: string | undefined,\n remixVersion: string,\n config: ResolvedEdgeRouteConfig\n): Promise<EdgeFunction> {\n const files: Files = {};\n\n let handler = relative(rootDir, serverBuildPath);\n let handlerPath = join(rootDir, handler);\n if (!serverEntryPoint) {\n const baseServerBuildPath = basename(serverBuildPath, '.js');\n handler = join(dirname(handler), `server-${baseServerBuildPath}.mjs`);\n handlerPath = join(rootDir, handler);\n\n // Copy the `server-edge.mjs` file into the \"build\" directory\n const edgeServerSrc = await edgeServerSrcPromise;\n await writeEntrypointFile(\n handlerPath,\n edgeServerSrc.replace(\n '@remix-run/dev/server-build',\n `./${baseServerBuildPath}.js`\n ),\n rootDir\n );\n }\n\n let remixRunVercelPkgJson: string | undefined;\n\n // Trace the handler with `@vercel/nft`\n const trace = await nodeFileTrace([handlerPath], {\n base: rootDir,\n processCwd: entrypointDir,\n conditions: ['edge-light', 'browser', 'module', 'import', 'require'],\n async readFile(fsPath) {\n let source: Buffer | string;\n try {\n source = await fs.readFile(fsPath);\n } catch (err: any) {\n if (err.code === 'ENOENT' || err.code === 'EISDIR') {\n return null;\n }\n throw err;\n }\n if (basename(fsPath) === 'package.json') {\n // For Edge Functions, patch \"main\" field to prefer \"browser\" or \"module\"\n const pkgJson = JSON.parse(source.toString());\n\n // When `@remix-run/vercel` is detected, we need to modify the `package.json`\n // to include the \"browser\" field so that the proper Edge entrypoint file\n // is used. This is a temporary stop gap until this PR is merged:\n // https://github.com/remix-run/remix/pull/5537\n if (pkgJson.name === '@remix-run/vercel') {\n pkgJson.browser = 'dist/edge.js';\n pkgJson.dependencies['@remix-run/server-runtime'] =\n pkgJson.dependencies['@remix-run/node'];\n\n if (!remixRunVercelPkgJson) {\n remixRunVercelPkgJson = JSON.stringify(pkgJson, null, 2) + '\\n';\n\n // Copy in the edge entrypoint so that NFT can properly resolve it\n const vercelEdgeEntrypointPath = join(\n DEFAULTS_PATH,\n 'vercel-edge-entrypoint.js'\n );\n const vercelEdgeEntrypointDest = join(\n dirname(fsPath),\n 'dist/edge.js'\n );\n await fs.copyFile(\n vercelEdgeEntrypointPath,\n vercelEdgeEntrypointDest\n );\n }\n }\n\n for (const prop of ['browser', 'module']) {\n const val = pkgJson[prop];\n if (typeof val === 'string') {\n pkgJson.main = val;\n\n // Return the modified `package.json` to nft\n source = JSON.stringify(pkgJson);\n break;\n }\n }\n }\n return source;\n },\n });\n\n for (const warning of trace.warnings) {\n debug(`Warning from trace: ${warning.message}`);\n }\n\n for (const file of trace.fileList) {\n if (\n remixRunVercelPkgJson &&\n file.endsWith(`@remix-run${sep}vercel${sep}package.json`)\n ) {\n // Use the modified `@remix-run/vercel` package.json which contains \"browser\" field\n files[file] = new FileBlob({ data: remixRunVercelPkgJson });\n } else {\n files[file] = await FileFsRef.fromFsPath({ fsPath: join(rootDir, file) });\n }\n }\n\n const fn = new EdgeFunction({\n files,\n deploymentTarget: 'v8-worker',\n name: 'render',\n entrypoint: handler,\n regions: config.regions,\n framework: {\n slug: 'remix',\n version: remixVersion,\n },\n });\n\n return fn;\n}\n\nasync function writeEntrypointFile(\n path: string,\n data: string,\n rootDir: string\n) {\n try {\n await fs.writeFile(path, data);\n } catch (err: any) {\n if (err.code === 'ENOENT') {\n throw new Error(\n `The \"${relative(\n rootDir,\n dirname(path)\n )}\" directory does not exist. Please contact support at https://vercel.com/help.`\n );\n }\n throw err;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["fs", "config", "routes"]
7
+ }
package/dist/hydrogen.js CHANGED
@@ -1,85 +1,96 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.patchHydrogenServer = void 0;
4
- const path_1 = require("path");
5
- const ts_morph_1 = require("ts-morph");
6
- /**
7
- * For Hydrogen v2, the `server.ts` file exports a signature like:
8
- *
9
- * ```
10
- * export default {
11
- * async fetch(
12
- * request: Request,
13
- * env: Env,
14
- * executionContext: ExecutionContext,
15
- * ): Promise<Response>;
16
- * }
17
- * ```
18
- *
19
- * Here we parse the AST of that file so that we can:
20
- *
21
- * 1. Convert the signature to be compatible with Vercel Edge functions
22
- * (i.e. `export default (res: Response): Promise<Response>`).
23
- *
24
- * 2. Track usages of the `env` parameter which (which gets removed),
25
- * so that we can create that object based on `process.env`.
26
- */
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var hydrogen_exports = {};
20
+ __export(hydrogen_exports, {
21
+ patchHydrogenServer: () => patchHydrogenServer
22
+ });
23
+ module.exports = __toCommonJS(hydrogen_exports);
24
+ var import_path = require("path");
25
+ var import_ts_morph = require("ts-morph");
27
26
  function patchHydrogenServer(project, serverEntryPoint) {
28
- const sourceFile = project.addSourceFileAtPath(serverEntryPoint);
29
- const defaultExportSymbol = sourceFile.getDescendantsOfKind(ts_morph_1.SyntaxKind.ExportAssignment)[0];
30
- const envProperties = [];
31
- if (!defaultExportSymbol) {
32
- console.log(`WARN: No default export found in "${(0, path_1.basename)(serverEntryPoint)}"`);
33
- return;
34
- }
35
- const objectLiteral = defaultExportSymbol.getFirstChildByKind(ts_morph_1.SyntaxKind.ObjectLiteralExpression);
36
- if (!ts_morph_1.Node.isObjectLiteralExpression(objectLiteral)) {
37
- console.log(`WARN: Default export in "${(0, path_1.basename)(serverEntryPoint)}" does not conform to Oxygen syntax`);
38
- return;
39
- }
40
- const fetchMethod = objectLiteral.getProperty('fetch');
41
- if (!fetchMethod || !ts_morph_1.Node.isMethodDeclaration(fetchMethod)) {
42
- console.log(`WARN: Default export in "${(0, path_1.basename)(serverEntryPoint)}" does not conform to Oxygen syntax`);
43
- return;
44
- }
45
- const parameters = fetchMethod.getParameters();
46
- // Find usages of the env object within the fetch method
47
- const envParam = parameters[1];
48
- const envParamName = envParam.getName();
49
- if (envParam) {
50
- fetchMethod.forEachDescendant(node => {
51
- if (ts_morph_1.Node.isPropertyAccessExpression(node) &&
52
- node.getExpression().getText() === envParamName) {
53
- envProperties.push(node.getName());
54
- }
55
- });
56
- }
57
- // Vercel does not support the Web Cache API, so find
58
- // and replace `caches.open()` calls with `undefined`
59
- fetchMethod.forEachDescendant(node => {
60
- if (ts_morph_1.Node.isCallExpression(node) &&
61
- node.getExpression().getText() === 'caches.open') {
62
- node.replaceWithText(`undefined /* ${node.getText()} */`);
63
- }
27
+ const sourceFile = project.addSourceFileAtPath(serverEntryPoint);
28
+ const defaultExportSymbol = sourceFile.getDescendantsOfKind(
29
+ import_ts_morph.SyntaxKind.ExportAssignment
30
+ )[0];
31
+ const envProperties = [];
32
+ if (!defaultExportSymbol) {
33
+ console.log(
34
+ `WARN: No default export found in "${(0, import_path.basename)(serverEntryPoint)}"`
35
+ );
36
+ return;
37
+ }
38
+ const objectLiteral = defaultExportSymbol.getFirstChildByKind(
39
+ import_ts_morph.SyntaxKind.ObjectLiteralExpression
40
+ );
41
+ if (!import_ts_morph.Node.isObjectLiteralExpression(objectLiteral)) {
42
+ console.log(
43
+ `WARN: Default export in "${(0, import_path.basename)(
44
+ serverEntryPoint
45
+ )}" does not conform to Oxygen syntax`
46
+ );
47
+ return;
48
+ }
49
+ const fetchMethod = objectLiteral.getProperty("fetch");
50
+ if (!fetchMethod || !import_ts_morph.Node.isMethodDeclaration(fetchMethod)) {
51
+ console.log(
52
+ `WARN: Default export in "${(0, import_path.basename)(
53
+ serverEntryPoint
54
+ )}" does not conform to Oxygen syntax`
55
+ );
56
+ return;
57
+ }
58
+ const parameters = fetchMethod.getParameters();
59
+ const envParam = parameters[1];
60
+ const envParamName = envParam.getName();
61
+ if (envParam) {
62
+ fetchMethod.forEachDescendant((node) => {
63
+ if (import_ts_morph.Node.isPropertyAccessExpression(node) && node.getExpression().getText() === envParamName) {
64
+ envProperties.push(node.getName());
65
+ }
64
66
  });
65
- // Remove the 'env' parameter to match Vercel's Edge signature
66
- parameters.splice(1, 1);
67
- // Construct the new function with the parameters and body of the original fetch method
68
- const newFunction = `export default async function(${parameters
69
- .map(p => p.getText())
70
- .join(', ')}) ${fetchMethod.getBody().getText()}`;
71
- defaultExportSymbol.replaceWithText(newFunction);
72
- const defaultEnvVars = {
73
- SESSION_SECRET: 'foobar',
74
- PUBLIC_STORE_DOMAIN: 'mock.shop',
75
- };
76
- const envCode = `const env = { ${envProperties
77
- .map(name => `${name}: process.env.${name}`)
78
- .join(', ')} };\n${Object.entries(defaultEnvVars)
79
- .map(([k, v]) => `if (!env.${k}) { env.${k} = ${JSON.stringify(v)}; console.warn('Warning: ${JSON.stringify(k)} env var not set - using default value ${JSON.stringify(v)}'); }`)
80
- .join('\n')}`;
81
- const updatedCodeString = sourceFile.getFullText();
82
- return `${envCode}\n${updatedCodeString}`;
67
+ }
68
+ fetchMethod.forEachDescendant((node) => {
69
+ if (import_ts_morph.Node.isCallExpression(node) && node.getExpression().getText() === "caches.open") {
70
+ node.replaceWithText(`undefined /* ${node.getText()} */`);
71
+ }
72
+ });
73
+ parameters.splice(1, 1);
74
+ const newFunction = `export default async function(${parameters.map((p) => p.getText()).join(", ")}) ${fetchMethod.getBody().getText()}`;
75
+ defaultExportSymbol.replaceWithText(newFunction);
76
+ const defaultEnvVars = {
77
+ SESSION_SECRET: "foobar",
78
+ PUBLIC_STORE_DOMAIN: "mock.shop"
79
+ };
80
+ const envCode = `const env = { ${envProperties.map((name) => `${name}: process.env.${name}`).join(", ")} };
81
+ ${Object.entries(defaultEnvVars).map(
82
+ ([k, v]) => `if (!env.${k}) { env.${k} = ${JSON.stringify(
83
+ v
84
+ )}; console.warn('Warning: ${JSON.stringify(
85
+ k
86
+ )} env var not set - using default value ${JSON.stringify(v)}'); }`
87
+ ).join("\n")}`;
88
+ const updatedCodeString = sourceFile.getFullText();
89
+ return `${envCode}
90
+ ${updatedCodeString}`;
83
91
  }
84
- exports.patchHydrogenServer = patchHydrogenServer;
85
- //# sourceMappingURL=hydrogen.js.map
92
+ // Annotate the CommonJS export names for ESM import in node:
93
+ 0 && (module.exports = {
94
+ patchHydrogenServer
95
+ });
96
+ //# sourceMappingURL=hydrogen.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"hydrogen.js","sourceRoot":"","sources":["../src/hydrogen.ts"],"names":[],"mappings":"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"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/hydrogen.ts"],
4
+ "sourcesContent": ["import { basename } from 'path';\nimport { Node, Project, SyntaxKind } from 'ts-morph';\n\n/**\n * For Hydrogen v2, the `server.ts` file exports a signature like:\n *\n * ```\n * export default {\n * async fetch(\n * request: Request,\n * env: Env,\n * executionContext: ExecutionContext,\n * ): Promise<Response>;\n * }\n * ```\n *\n * Here we parse the AST of that file so that we can:\n *\n * 1. Convert the signature to be compatible with Vercel Edge functions\n * (i.e. `export default (res: Response): Promise<Response>`).\n *\n * 2. Track usages of the `env` parameter which (which gets removed),\n * so that we can create that object based on `process.env`.\n */\nexport function patchHydrogenServer(\n project: Project,\n serverEntryPoint: string\n) {\n const sourceFile = project.addSourceFileAtPath(serverEntryPoint);\n const defaultExportSymbol = sourceFile.getDescendantsOfKind(\n SyntaxKind.ExportAssignment\n )[0];\n const envProperties: string[] = [];\n\n if (!defaultExportSymbol) {\n console.log(\n `WARN: No default export found in \"${basename(serverEntryPoint)}\"`\n );\n return;\n }\n\n const objectLiteral = defaultExportSymbol.getFirstChildByKind(\n SyntaxKind.ObjectLiteralExpression\n );\n if (!Node.isObjectLiteralExpression(objectLiteral)) {\n console.log(\n `WARN: Default export in \"${basename(\n serverEntryPoint\n )}\" does not conform to Oxygen syntax`\n );\n return;\n }\n\n const fetchMethod = objectLiteral.getProperty('fetch');\n if (!fetchMethod || !Node.isMethodDeclaration(fetchMethod)) {\n console.log(\n `WARN: Default export in \"${basename(\n serverEntryPoint\n )}\" does not conform to Oxygen syntax`\n );\n return;\n }\n\n const parameters = fetchMethod.getParameters();\n\n // Find usages of the env object within the fetch method\n const envParam = parameters[1];\n const envParamName = envParam.getName();\n if (envParam) {\n fetchMethod.forEachDescendant(node => {\n if (\n Node.isPropertyAccessExpression(node) &&\n node.getExpression().getText() === envParamName\n ) {\n envProperties.push(node.getName());\n }\n });\n }\n\n // Vercel does not support the Web Cache API, so find\n // and replace `caches.open()` calls with `undefined`\n fetchMethod.forEachDescendant(node => {\n if (\n Node.isCallExpression(node) &&\n node.getExpression().getText() === 'caches.open'\n ) {\n node.replaceWithText(`undefined /* ${node.getText()} */`);\n }\n });\n\n // Remove the 'env' parameter to match Vercel's Edge signature\n parameters.splice(1, 1);\n\n // Construct the new function with the parameters and body of the original fetch method\n const newFunction = `export default async function(${parameters\n .map(p => p.getText())\n .join(', ')}) ${fetchMethod.getBody()!.getText()}`;\n defaultExportSymbol.replaceWithText(newFunction);\n\n const defaultEnvVars = {\n SESSION_SECRET: 'foobar',\n PUBLIC_STORE_DOMAIN: 'mock.shop',\n };\n const envCode = `const env = { ${envProperties\n .map(name => `${name}: process.env.${name}`)\n .join(', ')} };\\n${Object.entries(defaultEnvVars)\n .map(\n ([k, v]) =>\n `if (!env.${k}) { env.${k} = ${JSON.stringify(\n v\n )}; console.warn('Warning: ${JSON.stringify(\n k\n )} env var not set - using default value ${JSON.stringify(v)}'); }`\n )\n .join('\\n')}`;\n\n const updatedCodeString = sourceFile.getFullText();\n return `${envCode}\\n${updatedCodeString}`;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAyB;AACzB,sBAA0C;AAuBnC,SAAS,oBACd,SACA,kBACA;AACA,QAAM,aAAa,QAAQ,oBAAoB,gBAAgB;AAC/D,QAAM,sBAAsB,WAAW;AAAA,IACrC,2BAAW;AAAA,EACb,EAAE,CAAC;AACH,QAAM,gBAA0B,CAAC;AAEjC,MAAI,CAAC,qBAAqB;AACxB,YAAQ;AAAA,MACN,yCAAqC,sBAAS,gBAAgB,CAAC;AAAA,IACjE;AACA;AAAA,EACF;AAEA,QAAM,gBAAgB,oBAAoB;AAAA,IACxC,2BAAW;AAAA,EACb;AACA,MAAI,CAAC,qBAAK,0BAA0B,aAAa,GAAG;AAClD,YAAQ;AAAA,MACN,gCAA4B;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,QAAM,cAAc,cAAc,YAAY,OAAO;AACrD,MAAI,CAAC,eAAe,CAAC,qBAAK,oBAAoB,WAAW,GAAG;AAC1D,YAAQ;AAAA,MACN,gCAA4B;AAAA,QAC1B;AAAA,MACF,CAAC;AAAA,IACH;AACA;AAAA,EACF;AAEA,QAAM,aAAa,YAAY,cAAc;AAG7C,QAAM,WAAW,WAAW,CAAC;AAC7B,QAAM,eAAe,SAAS,QAAQ;AACtC,MAAI,UAAU;AACZ,gBAAY,kBAAkB,UAAQ;AACpC,UACE,qBAAK,2BAA2B,IAAI,KACpC,KAAK,cAAc,EAAE,QAAQ,MAAM,cACnC;AACA,sBAAc,KAAK,KAAK,QAAQ,CAAC;AAAA,MACnC;AAAA,IACF,CAAC;AAAA,EACH;AAIA,cAAY,kBAAkB,UAAQ;AACpC,QACE,qBAAK,iBAAiB,IAAI,KAC1B,KAAK,cAAc,EAAE,QAAQ,MAAM,eACnC;AACA,WAAK,gBAAgB,gBAAgB,KAAK,QAAQ,CAAC,KAAK;AAAA,IAC1D;AAAA,EACF,CAAC;AAGD,aAAW,OAAO,GAAG,CAAC;AAGtB,QAAM,cAAc,iCAAiC,WAClD,IAAI,OAAK,EAAE,QAAQ,CAAC,EACpB,KAAK,IAAI,CAAC,KAAK,YAAY,QAAQ,EAAG,QAAQ,CAAC;AAClD,sBAAoB,gBAAgB,WAAW;AAE/C,QAAM,iBAAiB;AAAA,IACrB,gBAAgB;AAAA,IAChB,qBAAqB;AAAA,EACvB;AACA,QAAM,UAAU,iBAAiB,cAC9B,IAAI,UAAQ,GAAG,IAAI,iBAAiB,IAAI,EAAE,EAC1C,KAAK,IAAI,CAAC;AAAA,EAAQ,OAAO,QAAQ,cAAc,EAC/C;AAAA,IACC,CAAC,CAAC,GAAG,CAAC,MACJ,YAAY,CAAC,WAAW,CAAC,MAAM,KAAK;AAAA,MAClC;AAAA,IACF,CAAC,4BAA4B,KAAK;AAAA,MAChC;AAAA,IACF,CAAC,0CAA0C,KAAK,UAAU,CAAC,CAAC;AAAA,EAChE,EACC,KAAK,IAAI,CAAC;AAEb,QAAM,oBAAoB,WAAW,YAAY;AACjD,SAAO,GAAG,OAAO;AAAA,EAAK,iBAAiB;AACzC;",
6
+ "names": []
7
+ }
package/dist/index.js CHANGED
@@ -1,21 +1,34 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
15
9
  };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.version = void 0;
18
- exports.version = 2;
19
- __exportStar(require("./build"), exports);
20
- __exportStar(require("./prepare-cache"), exports);
21
- //# sourceMappingURL=index.js.map
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var src_exports = {};
21
+ __export(src_exports, {
22
+ version: () => version
23
+ });
24
+ module.exports = __toCommonJS(src_exports);
25
+ __reExport(src_exports, require("./build"), module.exports);
26
+ __reExport(src_exports, require("./prepare-cache"), module.exports);
27
+ const version = 2;
28
+ // Annotate the CommonJS export names for ESM import in node:
29
+ 0 && (module.exports = {
30
+ version,
31
+ ...require("./build"),
32
+ ...require("./prepare-cache")
33
+ });
34
+ //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1,7 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAa,QAAA,OAAO,GAAG,CAAC,CAAC;AACzB,0CAAwB;AACxB,kDAAgC"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["export const version = 2;\nexport * from './build';\nexport * from './prepare-cache';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,wBAAc,oBADd;AAEA,wBAAc,4BAFd;AAAO,MAAM,UAAU;",
6
+ "names": []
7
+ }
@@ -1,25 +1,58 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.prepareCache = void 0;
4
- const build_utils_1 = require("@vercel/build-utils");
5
- const path_1 = require("path");
6
- const utils_1 = require("./utils");
7
- const prepareCache = async ({ entrypoint, repoRootPath, workPath, }) => {
8
- const root = repoRootPath || workPath;
9
- const mountpoint = (0, path_1.dirname)(entrypoint);
10
- const entrypointFsDirname = (0, path_1.join)(workPath, mountpoint);
11
- const packageJsonPath = (0, path_1.join)(entrypointFsDirname, 'package.json');
12
- const remixRunDevPath = (0, path_1.dirname)(utils_1._require.resolve('@remix-run/dev/package.json', {
13
- paths: [entrypointFsDirname],
14
- }));
15
- const remixConfig = await (0, utils_1.chdirAndReadConfig)(remixRunDevPath, entrypointFsDirname, packageJsonPath);
16
- const [nodeModulesFiles, cacheDirFiles] = await Promise.all([
17
- // Cache `node_modules`
18
- (0, build_utils_1.glob)('**/node_modules/**', root),
19
- // Cache the Remix "cacheDirectory" (typically `.cache`)
20
- (0, build_utils_1.glob)((0, path_1.relative)(root, (0, path_1.join)(remixConfig.cacheDirectory, '**')), root),
21
- ]);
22
- return { ...nodeModulesFiles, ...cacheDirFiles };
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
23
9
  };
24
- exports.prepareCache = prepareCache;
25
- //# sourceMappingURL=prepare-cache.js.map
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var prepare_cache_exports = {};
20
+ __export(prepare_cache_exports, {
21
+ prepareCache: () => prepareCache
22
+ });
23
+ module.exports = __toCommonJS(prepare_cache_exports);
24
+ var import_build_utils = require("@vercel/build-utils");
25
+ var import_path = require("path");
26
+ var import_utils = require("./utils");
27
+ const prepareCache = async ({
28
+ entrypoint,
29
+ repoRootPath,
30
+ workPath
31
+ }) => {
32
+ const root = repoRootPath || workPath;
33
+ const mountpoint = (0, import_path.dirname)(entrypoint);
34
+ const entrypointFsDirname = (0, import_path.join)(workPath, mountpoint);
35
+ const packageJsonPath = (0, import_path.join)(entrypointFsDirname, "package.json");
36
+ const remixRunDevPath = (0, import_path.dirname)(
37
+ import_utils._require.resolve("@remix-run/dev/package.json", {
38
+ paths: [entrypointFsDirname]
39
+ })
40
+ );
41
+ const remixConfig = await (0, import_utils.chdirAndReadConfig)(
42
+ remixRunDevPath,
43
+ entrypointFsDirname,
44
+ packageJsonPath
45
+ );
46
+ const [nodeModulesFiles, cacheDirFiles] = await Promise.all([
47
+ // Cache `node_modules`
48
+ (0, import_build_utils.glob)("**/node_modules/**", root),
49
+ // Cache the Remix "cacheDirectory" (typically `.cache`)
50
+ (0, import_build_utils.glob)((0, import_path.relative)(root, (0, import_path.join)(remixConfig.cacheDirectory, "**")), root)
51
+ ]);
52
+ return { ...nodeModulesFiles, ...cacheDirFiles };
53
+ };
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ prepareCache
57
+ });
58
+ //# sourceMappingURL=prepare-cache.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"prepare-cache.js","sourceRoot":"","sources":["../src/prepare-cache.ts"],"names":[],"mappings":";;;AAAA,qDAA2C;AAC3C,+BAA+C;AAC/C,mCAAuD;AAGhD,MAAM,YAAY,GAAiB,KAAK,EAAE,EAC/C,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,IAAI,GAAG,YAAY,IAAI,QAAQ,CAAC;IACtC,MAAM,UAAU,GAAG,IAAA,cAAO,EAAC,UAAU,CAAC,CAAC;IACvC,MAAM,mBAAmB,GAAG,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IAClE,MAAM,eAAe,GAAG,IAAA,cAAO,EAC7B,gBAAQ,CAAC,OAAO,CAAC,6BAA6B,EAAE;QAC9C,KAAK,EAAE,CAAC,mBAAmB,CAAC;KAC7B,CAAC,CACH,CAAC;IACF,MAAM,WAAW,GAAG,MAAM,IAAA,0BAAkB,EAC1C,eAAe,EACf,mBAAmB,EACnB,eAAe,CAChB,CAAC;IACF,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC1D,uBAAuB;QACvB,IAAA,kBAAI,EAAC,oBAAoB,EAAE,IAAI,CAAC;QAEhC,wDAAwD;QACxD,IAAA,kBAAI,EAAC,IAAA,eAAQ,EAAC,IAAI,EAAE,IAAA,WAAI,EAAC,WAAW,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC;KACnE,CAAC,CAAC;IAEH,OAAO,EAAE,GAAG,gBAAgB,EAAE,GAAG,aAAa,EAAE,CAAC;AACnD,CAAC,CAAC;AA5BW,QAAA,YAAY,gBA4BvB"}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/prepare-cache.ts"],
4
+ "sourcesContent": ["import { glob } from '@vercel/build-utils';\nimport { dirname, join, relative } from 'path';\nimport { _require, chdirAndReadConfig } from './utils';\nimport type { PrepareCache } from '@vercel/build-utils';\n\nexport const prepareCache: PrepareCache = async ({\n entrypoint,\n repoRootPath,\n workPath,\n}) => {\n const root = repoRootPath || workPath;\n const mountpoint = dirname(entrypoint);\n const entrypointFsDirname = join(workPath, mountpoint);\n const packageJsonPath = join(entrypointFsDirname, 'package.json');\n const remixRunDevPath = dirname(\n _require.resolve('@remix-run/dev/package.json', {\n paths: [entrypointFsDirname],\n })\n );\n const remixConfig = await chdirAndReadConfig(\n remixRunDevPath,\n entrypointFsDirname,\n packageJsonPath\n );\n const [nodeModulesFiles, cacheDirFiles] = await Promise.all([\n // Cache `node_modules`\n glob('**/node_modules/**', root),\n\n // Cache the Remix \"cacheDirectory\" (typically `.cache`)\n glob(relative(root, join(remixConfig.cacheDirectory, '**')), root),\n ]);\n\n return { ...nodeModulesFiles, ...cacheDirFiles };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAqB;AACrB,kBAAwC;AACxC,mBAA6C;AAGtC,MAAM,eAA6B,OAAO;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,OAAO,gBAAgB;AAC7B,QAAM,iBAAa,qBAAQ,UAAU;AACrC,QAAM,0BAAsB,kBAAK,UAAU,UAAU;AACrD,QAAM,sBAAkB,kBAAK,qBAAqB,cAAc;AAChE,QAAM,sBAAkB;AAAA,IACtB,sBAAS,QAAQ,+BAA+B;AAAA,MAC9C,OAAO,CAAC,mBAAmB;AAAA,IAC7B,CAAC;AAAA,EACH;AACA,QAAM,cAAc,UAAM;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACA,QAAM,CAAC,kBAAkB,aAAa,IAAI,MAAM,QAAQ,IAAI;AAAA;AAAA,QAE1D,yBAAK,sBAAsB,IAAI;AAAA;AAAA,QAG/B,6BAAK,sBAAS,UAAM,kBAAK,YAAY,gBAAgB,IAAI,CAAC,GAAG,IAAI;AAAA,EACnE,CAAC;AAED,SAAO,EAAE,GAAG,kBAAkB,GAAG,cAAc;AACjD;",
6
+ "names": []
7
+ }