From 834dd4835191d4646e77176fe0b7b21f64e76420 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Tue, 4 Feb 2025 11:51:53 +0100 Subject: [PATCH] refactor(cloudflare): split legacy presets --- src/presets/cloudflare/preset-legacy.ts | 81 ++++++++++++++++++++++++ src/presets/cloudflare/preset.ts | 82 ++----------------------- 2 files changed, 86 insertions(+), 77 deletions(-) create mode 100644 src/presets/cloudflare/preset-legacy.ts diff --git a/src/presets/cloudflare/preset-legacy.ts b/src/presets/cloudflare/preset-legacy.ts new file mode 100644 index 0000000000..19b0745e1c --- /dev/null +++ b/src/presets/cloudflare/preset-legacy.ts @@ -0,0 +1,81 @@ +import { defineNitroPreset } from "nitropack/kit"; +import { writeFile } from "nitropack/kit"; +import type { Nitro } from "nitropack/types"; +import { resolve } from "pathe"; + +export type { CloudflareOptions as PresetOptions } from "./types"; + +const cloudflare = defineNitroPreset( + { + extends: "base-worker", + entry: "./runtime/cloudflare-worker", + exportConditions: ["workerd"], + commands: { + preview: "npx wrangler dev ./server/index.mjs --site ./public", + deploy: "npx wrangler deploy", + }, + wasm: { + lazy: true, + }, + hooks: { + async compiled(nitro: Nitro) { + await writeFile( + resolve(nitro.options.output.dir, "package.json"), + JSON.stringify({ private: true, main: "./server/index.mjs" }, null, 2) + ); + await writeFile( + resolve(nitro.options.output.dir, "package-lock.json"), + JSON.stringify({ lockfileVersion: 1 }, null, 2) + ); + }, + }, + }, + { + name: "cloudflare-worker" as const, + aliases: ["cloudflare"] as const, + url: import.meta.url, + } +); + +const cloudflareModuleLegacy = defineNitroPreset( + { + extends: "base-worker", + entry: "./runtime/cloudflare-module-legacy", + exportConditions: ["workerd"], + commands: { + preview: "npx wrangler dev ./server/index.mjs --site ./public", + deploy: "npx wrangler deploy", + }, + rollupConfig: { + external: "__STATIC_CONTENT_MANIFEST", + output: { + format: "esm", + exports: "named", + inlineDynamicImports: false, + }, + }, + wasm: { + lazy: false, + esmImport: true, + }, + hooks: { + async compiled(nitro: Nitro) { + await writeFile( + resolve(nitro.options.output.dir, "package.json"), + JSON.stringify({ private: true, main: "./server/index.mjs" }, null, 2) + ); + await writeFile( + resolve(nitro.options.output.dir, "package-lock.json"), + JSON.stringify({ lockfileVersion: 1 }, null, 2) + ); + }, + }, + }, + { + name: "cloudflare-module-legacy" as const, + aliases: ["cloudflare-module"] as const, + url: import.meta.url, + } +); + +export default [cloudflare, cloudflareModuleLegacy]; diff --git a/src/presets/cloudflare/preset.ts b/src/presets/cloudflare/preset.ts index 207f4b4de0..783e8d0e09 100644 --- a/src/presets/cloudflare/preset.ts +++ b/src/presets/cloudflare/preset.ts @@ -10,6 +10,8 @@ import { } from "./utils"; import { hybridNodePlugin, unenvCfPreset } from "./unenv/preset"; +import cfLegacyPresets from "./preset-legacy"; + export type { CloudflareOptions as PresetOptions } from "./types"; // TODO: Remove when wrangler -C support landed @@ -93,79 +95,6 @@ const cloudflarePagesStatic = defineNitroPreset( } ); -const cloudflare = defineNitroPreset( - { - extends: "base-worker", - entry: "./runtime/cloudflare-worker", - exportConditions: ["workerd"], - commands: { - preview: "npx wrangler dev ./server/index.mjs --site ./public", - deploy: "npx wrangler deploy", - }, - wasm: { - lazy: true, - }, - hooks: { - async compiled(nitro: Nitro) { - await writeFile( - resolve(nitro.options.output.dir, "package.json"), - JSON.stringify({ private: true, main: "./server/index.mjs" }, null, 2) - ); - await writeFile( - resolve(nitro.options.output.dir, "package-lock.json"), - JSON.stringify({ lockfileVersion: 1 }, null, 2) - ); - }, - }, - }, - { - name: "cloudflare-worker" as const, - aliases: ["cloudflare"] as const, - url: import.meta.url, - } -); - -const cloudflareModuleLegacy = defineNitroPreset( - { - extends: "base-worker", - entry: "./runtime/cloudflare-module-legacy", - exportConditions: ["workerd"], - commands: { - preview: "npx wrangler dev ./server/index.mjs --site ./public", - deploy: "npx wrangler deploy", - }, - rollupConfig: { - external: "__STATIC_CONTENT_MANIFEST", - output: { - format: "esm", - exports: "named", - inlineDynamicImports: false, - }, - }, - wasm: { - lazy: false, - esmImport: true, - }, - hooks: { - async compiled(nitro: Nitro) { - await writeFile( - resolve(nitro.options.output.dir, "package.json"), - JSON.stringify({ private: true, main: "./server/index.mjs" }, null, 2) - ); - await writeFile( - resolve(nitro.options.output.dir, "package-lock.json"), - JSON.stringify({ lockfileVersion: 1 }, null, 2) - ); - }, - }, - }, - { - name: "cloudflare-module-legacy" as const, - aliases: ["cloudflare-module"] as const, - url: import.meta.url, - } -); - const cloudflareModule = defineNitroPreset( { extends: "base-worker", @@ -222,10 +151,9 @@ const cloudflareDurable = defineNitroPreset( ); export default [ - cloudflare, - cloudflareModuleLegacy, - cloudflareModule, - cloudflareDurable, + ...cfLegacyPresets, cloudflarePages, cloudflarePagesStatic, + cloudflareModule, + cloudflareDurable, ];