From 6cf119cf87545727fb7b1f299417d8334a037771 Mon Sep 17 00:00:00 2001 From: Victor Berchet Date: Tue, 24 Sep 2024 18:16:17 +0200 Subject: [PATCH] chore: minor updates --- src/presets/cloudflare.ts | 27 +++++++++++---------------- src/presets/deno.ts | 6 ++++-- src/presets/vercel.ts | 6 ++++-- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/src/presets/cloudflare.ts b/src/presets/cloudflare.ts index 06fd5c1a..3adcea77 100644 --- a/src/presets/cloudflare.ts +++ b/src/presets/cloudflare.ts @@ -1,5 +1,6 @@ import type { Preset } from "../types"; +// Built-in APIs provided by workerd. // https://developers.cloudflare.com/workers/runtime-apis/nodejs/ // https://github.com/cloudflare/workerd/tree/main/src/node // Last checked: 2024-05-11 @@ -13,7 +14,6 @@ const cloudflareNodeCompatModules = [ "diagnostics_channel", "events", "path", - "process", "stream", "stream/consumers", "stream/promises", @@ -22,6 +22,8 @@ const cloudflareNodeCompatModules = [ "zlib", ]; +// Modules implemented via a mix of workerd APIs and polyfills. +// See `src/runtime/node//$cloudflare.ts`. const hybridNodeCompatModules = [ "async_hooks", "console", @@ -36,9 +38,11 @@ const hybridNodeCompatModules = [ const cloudflarePreset: Preset = { alias: { - ...Object.fromEntries(cloudflareNodeCompatModules.map((p) => [p, p])), ...Object.fromEntries( - cloudflareNodeCompatModules.map((p) => [`node:${p}`, `node:${p}`]), + cloudflareNodeCompatModules.flatMap((p) => [ + [p, p], + [`node:${p}`, `node:${p}`], + ]), ), // The `node:assert` implementation of workerd uses strict semantics by default "assert/strict": "node:assert", @@ -49,15 +53,9 @@ const cloudflarePreset: Preset = { // define aliases for hybrid modules ...Object.fromEntries( - hybridNodeCompatModules.map((m) => [ - m, - `unenv/runtime/node/${m}/$cloudflare`, - ]), - ), - ...Object.fromEntries( - hybridNodeCompatModules.map((m) => [ - `node:${m}`, - `unenv/runtime/node/${m}/$cloudflare`, + hybridNodeCompatModules.flatMap((m) => [ + [m, `unenv/runtime/node/${m}/$cloudflare`], + [`node:${m}`, `unenv/runtime/node/${m}/$cloudflare`], ]), ), }, @@ -72,10 +70,7 @@ const cloudflarePreset: Preset = { clearImmediate: ["unenv/runtime/node/timers/$cloudflare", "clearImmediate"], }, polyfill: [], - external: [ - ...cloudflareNodeCompatModules.map((p) => `${p}`), - ...cloudflareNodeCompatModules.map((p) => `node:${p}`), - ], + external: cloudflareNodeCompatModules.flatMap((p) => [`${p}`, `node:${p}`]), }; export default cloudflarePreset; diff --git a/src/presets/deno.ts b/src/presets/deno.ts index c551d4e6..3551c995 100644 --- a/src/presets/deno.ts +++ b/src/presets/deno.ts @@ -56,9 +56,11 @@ const denoNodeCompatModules = [ const denoPreset: Preset = { alias: { - ...Object.fromEntries(denoNodeCompatModules.map((p) => [p, `node:${p}`])), ...Object.fromEntries( - denoNodeCompatModules.map((p) => [`node:${p}`, `node:${p}`]), + denoNodeCompatModules.flatMap((p) => [ + [p, `node:${p}`], + [`node:${p}`, `node:${p}`], + ]), ), }, // Deno's listed globals manually tested against deno@1.38.5 diff --git a/src/presets/vercel.ts b/src/presets/vercel.ts index 756d9109..2534603a 100644 --- a/src/presets/vercel.ts +++ b/src/presets/vercel.ts @@ -12,9 +12,11 @@ const vercelNodeCompatModules = [ const vercelPreset: Preset = { alias: { - ...Object.fromEntries(vercelNodeCompatModules.map((p) => [p, `node:${p}`])), ...Object.fromEntries( - vercelNodeCompatModules.map((p) => [`node:${p}`, `node:${p}`]), + vercelNodeCompatModules.flatMap((p) => [ + [p, `node:${p}`], + [`node:${p}`, `node:${p}`], + ]), ), }, inject: {},