@srvkit/vite 0.1.1 → 0.2.0
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/README.md +1 -1
- package/dist/_virtual/_rolldown/runtime.js +0 -8
- package/dist/functions/ssr.js +0 -8
- package/dist/functions/ssr.js.map +1 -1
- package/dist/functions/ssr.mjs +0 -8
- package/dist/functions/ssr.mjs.map +1 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -8
- package/dist/index.mjs +0 -8
- package/dist/node.d.ts +0 -2
- package/dist/node.js +0 -8
- package/dist/node.mjs +0 -8
- package/dist/package.js +0 -8
- package/dist/package.mjs +0 -8
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.js +13 -8
- package/dist/plugin.mjs +2 -9
- package/dist/plugins/build/index.d.ts +0 -2
- package/dist/plugins/build/index.js +1 -9
- package/dist/plugins/build/index.js.map +1 -1
- package/dist/plugins/build/index.mjs +1 -9
- package/dist/plugins/build/index.mjs.map +1 -1
- package/dist/plugins/copy/index.d.ts +0 -2
- package/dist/plugins/copy/index.js +0 -8
- package/dist/plugins/copy/index.js.map +1 -1
- package/dist/plugins/copy/index.mjs +0 -8
- package/dist/plugins/copy/index.mjs.map +1 -1
- package/dist/plugins/dev/index.d.ts +0 -2
- package/dist/plugins/dev/index.js +18 -19
- package/dist/plugins/dev/index.js.map +1 -1
- package/dist/plugins/dev/index.mjs +18 -19
- package/dist/plugins/dev/index.mjs.map +1 -1
- package/dist/plugins/index.d.ts +0 -2
- package/dist/plugins/index.js +0 -8
- package/dist/plugins/index.js.map +1 -1
- package/dist/plugins/index.mjs +0 -8
- package/dist/plugins/index.mjs.map +1 -1
- package/dist/runtime.d.ts +0 -2
- package/dist/runtime.js +0 -8
- package/dist/runtime.mjs +0 -8
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
var __create = Object.create;
|
|
10
2
|
var __defProp = Object.defineProperty;
|
|
11
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
package/dist/functions/ssr.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
|
-
|
|
10
2
|
const getSsrTarget = (runtime) => {
|
|
11
3
|
switch (runtime) {
|
|
12
4
|
case "workerd": return "webworker";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.js","names":[],"sources":["../../src/functions/ssr.ts"],"sourcesContent":["import type { Runtime } from \"@srvkit/common/@types/options/complete\";\nimport type { SSRTarget } from \"vite\";\n\nconst getSsrTarget = (runtime: Runtime): SSRTarget => {\n switch (runtime) {\n // Cloudflare Workers runs in a Web Worker, not Node\n case \"workerd\":\n return \"webworker\";\n // Deno and Bun are Node-compatible for SSR purposes\n default:\n return \"node\";\n }\n};\n\nexport { getSsrTarget };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ssr.js","names":[],"sources":["../../src/functions/ssr.ts"],"sourcesContent":["import type { Runtime } from \"@srvkit/common/@types/options/complete\";\nimport type { SSRTarget } from \"vite\";\n\nconst getSsrTarget = (runtime: Runtime): SSRTarget => {\n switch (runtime) {\n // Cloudflare Workers runs in a Web Worker, not Node\n case \"workerd\":\n return \"webworker\";\n // Deno and Bun are Node-compatible for SSR purposes\n default:\n return \"node\";\n }\n};\n\nexport { getSsrTarget };\n"],"mappings":";AAGA,MAAM,gBAAgB,YAAgC;CAClD,QAAQ,SAAR;EAEI,KAAK,WACD,OAAO;EAEX,SACI,OAAO;CACf;AACJ"}
|
package/dist/functions/ssr.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
const getSsrTarget = (runtime) => {
|
|
10
2
|
switch (runtime) {
|
|
11
3
|
case "workerd": return "webworker";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr.mjs","names":[],"sources":["../../src/functions/ssr.ts"],"sourcesContent":["import type { Runtime } from \"@srvkit/common/@types/options/complete\";\nimport type { SSRTarget } from \"vite\";\n\nconst getSsrTarget = (runtime: Runtime): SSRTarget => {\n switch (runtime) {\n // Cloudflare Workers runs in a Web Worker, not Node\n case \"workerd\":\n return \"webworker\";\n // Deno and Bun are Node-compatible for SSR purposes\n default:\n return \"node\";\n }\n};\n\nexport { getSsrTarget };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ssr.mjs","names":[],"sources":["../../src/functions/ssr.ts"],"sourcesContent":["import type { Runtime } from \"@srvkit/common/@types/options/complete\";\nimport type { SSRTarget } from \"vite\";\n\nconst getSsrTarget = (runtime: Runtime): SSRTarget => {\n switch (runtime) {\n // Cloudflare Workers runs in a Web Worker, not Node\n case \"workerd\":\n return \"webworker\";\n // Deno and Bun are Node-compatible for SSR purposes\n default:\n return \"node\";\n }\n};\n\nexport { getSsrTarget };\n"],"mappings":"AAGA,MAAM,gBAAgB,YAAgC;CAClD,QAAQ,SAAR;EAEI,KAAK,WACD,OAAO;EAEX,SACI,OAAO;CACf;AACJ"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import __tsdown_shims_path from 'node:path';
|
|
2
|
-
import __tsdown_shims_url from 'node:url';
|
|
3
1
|
import { ErrorHandler, Server, ServerHandler, ServerMiddleware, ServerOptions, ServerPlugin, ServerRequest } from "@srvkit/common/@types/server";
|
|
4
2
|
import { defineServer } from "@srvkit/common/functions/server/define";
|
|
5
3
|
export { type ErrorHandler, type Server, type ServerHandler, type ServerMiddleware, type ServerOptions, type ServerPlugin, type ServerRequest, defineServer };
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
let _srvkit_common_functions_server_define = require("@srvkit/common/functions/server/define");
|
|
11
3
|
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { defineServer } from "@srvkit/common/functions/server/define";
|
|
10
2
|
|
|
11
3
|
export { defineServer };
|
package/dist/node.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import __tsdown_shims_path from 'node:path';
|
|
2
|
-
import __tsdown_shims_url from 'node:url';
|
|
3
1
|
import { AdapterMeta, FetchHandler, NodeHttpHandler } from "@srvkit/common/@types/node";
|
|
4
2
|
import { toFetchHandler } from "@srvkit/common/node";
|
|
5
3
|
export { type AdapterMeta, type FetchHandler, type NodeHttpHandler, toFetchHandler };
|
package/dist/node.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
let _srvkit_common_node = require("@srvkit/common/node");
|
|
11
3
|
|
package/dist/node.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { toFetchHandler } from "@srvkit/common/node";
|
|
10
2
|
|
|
11
3
|
export { toFetchHandler };
|
package/dist/package.js
CHANGED
|
@@ -1,12 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
|
-
|
|
10
2
|
var name = "@srvkit/vite";
|
|
11
3
|
|
|
12
4
|
Object.defineProperty(exports, 'name', {
|
package/dist/package.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
var name = "@srvkit/vite";
|
|
10
2
|
|
|
11
3
|
export { name };
|
package/dist/plugin.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import __tsdown_shims_path from 'node:path';
|
|
2
|
-
import __tsdown_shims_url from 'node:url';
|
|
3
1
|
import { plugin } from "./plugins/index.js";
|
|
2
|
+
import { ResolvableNumber, ResolvableString } from "@srvkit/common/@types/env";
|
|
4
3
|
import { Runtime } from "@srvkit/common/@types/options/complete";
|
|
5
4
|
import { BuildTarget, BundleMode } from "@srvkit/common/@types/options/complete/build";
|
|
6
5
|
import { BuildOptions, DevOptions, HttpsOptions, Options } from "@srvkit/common/@types/options/default";
|
|
7
|
-
|
|
6
|
+
import { EnvBoolean, EnvFunctions, EnvNumber, EnvString, EnvValue, Infer, IsFunctions, env, is } from "@srvkit/common/plugin";
|
|
7
|
+
export { type BuildOptions, type BuildTarget, type BundleMode, type DevOptions, type EnvBoolean, type EnvFunctions, type EnvNumber, type EnvString, type EnvValue, type HttpsOptions, type Infer, type IsFunctions, type Options, type ResolvableNumber, type ResolvableString, type Runtime, env, is, plugin as srvkit };
|
package/dist/plugin.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
const require_index = require('./plugins/index.js');
|
|
3
|
+
let _srvkit_common_plugin = require("@srvkit/common/plugin");
|
|
11
4
|
|
|
5
|
+
Object.defineProperty(exports, 'env', {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function () {
|
|
8
|
+
return _srvkit_common_plugin.env;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, 'is', {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () {
|
|
14
|
+
return _srvkit_common_plugin.is;
|
|
15
|
+
}
|
|
16
|
+
});
|
|
12
17
|
exports.srvkit = require_index.plugin;
|
package/dist/plugin.mjs
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { plugin } from "./plugins/index.mjs";
|
|
2
|
+
import { env, is } from "@srvkit/common/plugin";
|
|
10
3
|
|
|
11
|
-
export { plugin as srvkit };
|
|
4
|
+
export { env, is, plugin as srvkit };
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
const require_ssr = require('../../functions/ssr.js');
|
|
11
3
|
const require_package = require('../../package.js');
|
|
@@ -42,7 +34,7 @@ const buildPlugin = (opts) => {
|
|
|
42
34
|
format: packageJson.type === "module" ? "esm" : "cjs",
|
|
43
35
|
...build.bundle === "standalone" && { codeSplitting: false }
|
|
44
36
|
},
|
|
45
|
-
external: [...node_module.builtinModules, /^
|
|
37
|
+
external: [...node_module.builtinModules, /^cloudflare:/],
|
|
46
38
|
experimental: { attachDebugInfo: "none" }
|
|
47
39
|
},
|
|
48
40
|
minify: build.minify
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["name","getSsrTarget","builtinModules"],"sources":["../../../src/plugins/build/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { PackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport type { LoadResult, ResolveIdResult } from \"rolldown\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { createVirtualEntryCode } from \"@srvkit/common/functions/build/virtual-entry\";\nimport { getPackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\nconst VIRTUAL_ENTRY = \"virtual:srvkit\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: `${name}/build`,\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n const overrideConfig: UserConfig = {\n ssr: {\n target: getSsrTarget(opts.runtime),\n // Ensuring runtime-specific exports are selected first\n resolve: {\n conditions: [\n opts.runtime,\n ],\n externalConditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n outDir: build.outputDir,\n copyPublicDir: false, // Handled by copyPlugin instead\n rolldownOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n ...(build.bundle === \"standalone\" && {\n codeSplitting: false,\n }),\n },\n external: [\n ...builtinModules,\n /^
|
|
1
|
+
{"version":3,"file":"index.js","names":["name","getSsrTarget","builtinModules"],"sources":["../../../src/plugins/build/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { PackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport type { LoadResult, ResolveIdResult } from \"rolldown\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { createVirtualEntryCode } from \"@srvkit/common/functions/build/virtual-entry\";\nimport { getPackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\nconst VIRTUAL_ENTRY = \"virtual:srvkit\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: `${name}/build`,\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n const overrideConfig: UserConfig = {\n ssr: {\n target: getSsrTarget(opts.runtime),\n // Ensuring runtime-specific exports are selected first\n resolve: {\n conditions: [\n opts.runtime,\n ],\n externalConditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n outDir: build.outputDir,\n copyPublicDir: false, // Handled by copyPlugin instead\n rolldownOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n ...(build.bundle === \"standalone\" && {\n codeSplitting: false,\n }),\n },\n external: [\n ...builtinModules,\n /^cloudflare:/,\n ],\n experimental: {\n attachDebugInfo: \"none\",\n },\n },\n minify: build.minify,\n },\n };\n\n // Remove user-provided ssr.external and ssr.noExternal to avoid\n // conflicts with the bundle mode. If these were left, mergeConfig\n // would merge user values with the current config, causing unintended\n // bundling or externalization behavior.\n if (config.ssr) {\n delete config.ssr.external;\n delete config.ssr.noExternal;\n }\n\n if (build.bundle === \"external\") {\n overrideConfig.ssr = {\n ...overrideConfig.ssr,\n external: true,\n noExternal: [],\n };\n }\n\n if (build.bundle === \"standalone\") {\n overrideConfig.ssr = {\n ...overrideConfig.ssr,\n external: [],\n noExternal: true,\n };\n }\n\n return mergeConfig(config, overrideConfig);\n },\n resolveId: (id: string): ResolveIdResult => {\n if (id !== VIRTUAL_ENTRY) return void 0;\n return VIRTUAL_ENTRY_RESOLVED;\n },\n load: async (id: string): Promise<LoadResult> => {\n if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;\n return createVirtualEntryCode({\n ...opts,\n packageName: name,\n });\n },\n };\n};\n\nexport { buildPlugin };\n"],"mappings":";;;;;;;;AAiBA,MAAM,gBAAgB;AAEtB,MAAM,yBAAyB,KAAK;AAEpC,MAAM,eAAe,SAAkC;CACnD,MAAM,QAA8B,KAAK;CAEzC,MAAM,gFAA0C,KAAK,GAAG;CAExD,OAAO;EACH,MAAM,GAAGA,qBAAK;EACd,OAAO;EACP,SAAS,WAAmC;GACxC,MAAM,iBAA6B;IAC/B,KAAK;KACD,QAAQC,yBAAa,KAAK,OAAO;KAEjC,SAAS;MACL,YAAY,CACR,KAAK,OACT;MACA,oBAAoB,CAChB,KAAK,OACT;KACJ;IACJ;IACA,OAAO;KACH,KAAK;KACL,QAAQ,MAAM;KACd,eAAe;KACf,iBAAiB;MACb,OAAO;MACP,QAAQ;OACJ,gBAAgB,MAAM;OACtB,QACI,YAAY,SAAS,WAAW,QAAQ;OAC5C,GAAI,MAAM,WAAW,gBAAgB,EACjC,eAAe,MACnB;MACJ;MACA,UAAU,CACN,GAAGC,4BACH,cACJ;MACA,cAAc,EACV,iBAAiB,OACrB;KACJ;KACA,QAAQ,MAAM;IAClB;GACJ;GAMA,IAAI,OAAO,KAAK;IACZ,OAAO,OAAO,IAAI;IAClB,OAAO,OAAO,IAAI;GACtB;GAEA,IAAI,MAAM,WAAW,YACjB,eAAe,MAAM;IACjB,GAAG,eAAe;IAClB,UAAU;IACV,YAAY,CAAC;GACjB;GAGJ,IAAI,MAAM,WAAW,cACjB,eAAe,MAAM;IACjB,GAAG,eAAe;IAClB,UAAU,CAAC;IACX,YAAY;GAChB;GAGJ,6BAAmB,QAAQ,cAAc;EAC7C;EACA,YAAY,OAAgC;GACxC,IAAI,OAAO,eAAe,OAAO,KAAK;GACtC,OAAO;EACX;EACA,MAAM,OAAO,OAAoC;GAC7C,IAAI,OAAO,wBAAwB,OAAO,KAAK;GAC/C,gFAA8B;IAC1B,GAAG;IACH,aAAaF;GACjB,CAAC;EACL;CACJ;AACJ"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { getSsrTarget } from "../../functions/ssr.mjs";
|
|
10
2
|
import { name } from "../../package.mjs";
|
|
11
3
|
import { builtinModules } from "node:module";
|
|
@@ -41,7 +33,7 @@ const buildPlugin = (opts) => {
|
|
|
41
33
|
format: packageJson.type === "module" ? "esm" : "cjs",
|
|
42
34
|
...build.bundle === "standalone" && { codeSplitting: false }
|
|
43
35
|
},
|
|
44
|
-
external: [...builtinModules, /^
|
|
36
|
+
external: [...builtinModules, /^cloudflare:/],
|
|
45
37
|
experimental: { attachDebugInfo: "none" }
|
|
46
38
|
},
|
|
47
39
|
minify: build.minify
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/build/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { PackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport type { LoadResult, ResolveIdResult } from \"rolldown\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { createVirtualEntryCode } from \"@srvkit/common/functions/build/virtual-entry\";\nimport { getPackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\nconst VIRTUAL_ENTRY = \"virtual:srvkit\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: `${name}/build`,\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n const overrideConfig: UserConfig = {\n ssr: {\n target: getSsrTarget(opts.runtime),\n // Ensuring runtime-specific exports are selected first\n resolve: {\n conditions: [\n opts.runtime,\n ],\n externalConditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n outDir: build.outputDir,\n copyPublicDir: false, // Handled by copyPlugin instead\n rolldownOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n ...(build.bundle === \"standalone\" && {\n codeSplitting: false,\n }),\n },\n external: [\n ...builtinModules,\n /^
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/build/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { PackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport type { LoadResult, ResolveIdResult } from \"rolldown\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { createVirtualEntryCode } from \"@srvkit/common/functions/build/virtual-entry\";\nimport { getPackageJson } from \"@srvkit/common/functions/package/package-json\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\nconst VIRTUAL_ENTRY = \"virtual:srvkit\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: `${name}/build`,\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n const overrideConfig: UserConfig = {\n ssr: {\n target: getSsrTarget(opts.runtime),\n // Ensuring runtime-specific exports are selected first\n resolve: {\n conditions: [\n opts.runtime,\n ],\n externalConditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n outDir: build.outputDir,\n copyPublicDir: false, // Handled by copyPlugin instead\n rolldownOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n ...(build.bundle === \"standalone\" && {\n codeSplitting: false,\n }),\n },\n external: [\n ...builtinModules,\n /^cloudflare:/,\n ],\n experimental: {\n attachDebugInfo: \"none\",\n },\n },\n minify: build.minify,\n },\n };\n\n // Remove user-provided ssr.external and ssr.noExternal to avoid\n // conflicts with the bundle mode. If these were left, mergeConfig\n // would merge user values with the current config, causing unintended\n // bundling or externalization behavior.\n if (config.ssr) {\n delete config.ssr.external;\n delete config.ssr.noExternal;\n }\n\n if (build.bundle === \"external\") {\n overrideConfig.ssr = {\n ...overrideConfig.ssr,\n external: true,\n noExternal: [],\n };\n }\n\n if (build.bundle === \"standalone\") {\n overrideConfig.ssr = {\n ...overrideConfig.ssr,\n external: [],\n noExternal: true,\n };\n }\n\n return mergeConfig(config, overrideConfig);\n },\n resolveId: (id: string): ResolveIdResult => {\n if (id !== VIRTUAL_ENTRY) return void 0;\n return VIRTUAL_ENTRY_RESOLVED;\n },\n load: async (id: string): Promise<LoadResult> => {\n if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;\n return createVirtualEntryCode({\n ...opts,\n packageName: name,\n });\n },\n };\n};\n\nexport { buildPlugin };\n"],"mappings":";;;;;;;AAiBA,MAAM,gBAAgB;AAEtB,MAAM,yBAAyB,KAAK;AAEpC,MAAM,eAAe,SAAkC;CACnD,MAAM,QAA8B,KAAK;CAEzC,MAAM,cAA2B,eAAe,KAAK,GAAG;CAExD,OAAO;EACH,MAAM,GAAG,KAAK;EACd,OAAO;EACP,SAAS,WAAmC;GACxC,MAAM,iBAA6B;IAC/B,KAAK;KACD,QAAQ,aAAa,KAAK,OAAO;KAEjC,SAAS;MACL,YAAY,CACR,KAAK,OACT;MACA,oBAAoB,CAChB,KAAK,OACT;KACJ;IACJ;IACA,OAAO;KACH,KAAK;KACL,QAAQ,MAAM;KACd,eAAe;KACf,iBAAiB;MACb,OAAO;MACP,QAAQ;OACJ,gBAAgB,MAAM;OACtB,QACI,YAAY,SAAS,WAAW,QAAQ;OAC5C,GAAI,MAAM,WAAW,gBAAgB,EACjC,eAAe,MACnB;MACJ;MACA,UAAU,CACN,GAAG,gBACH,cACJ;MACA,cAAc,EACV,iBAAiB,OACrB;KACJ;KACA,QAAQ,MAAM;IAClB;GACJ;GAMA,IAAI,OAAO,KAAK;IACZ,OAAO,OAAO,IAAI;IAClB,OAAO,OAAO,IAAI;GACtB;GAEA,IAAI,MAAM,WAAW,YACjB,eAAe,MAAM;IACjB,GAAG,eAAe;IAClB,UAAU;IACV,YAAY,CAAC;GACjB;GAGJ,IAAI,MAAM,WAAW,cACjB,eAAe,MAAM;IACjB,GAAG,eAAe;IAClB,UAAU,CAAC;IACX,YAAY;GAChB;GAGJ,OAAO,YAAY,QAAQ,cAAc;EAC7C;EACA,YAAY,OAAgC;GACxC,IAAI,OAAO,eAAe,OAAO,KAAK;GACtC,OAAO;EACX;EACA,MAAM,OAAO,OAAoC;GAC7C,IAAI,OAAO,wBAAwB,OAAO,KAAK;GAC/C,OAAO,uBAAuB;IAC1B,GAAG;IACH,aAAa;GACjB,CAAC;EACL;CACJ;AACJ"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
const require_runtime = require('../../_virtual/_rolldown/runtime.js');
|
|
11
3
|
let node_path = require("node:path");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Path"],"sources":["../../../src/plugins/copy/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { CopyEvent, Options as Copyoptions } from \"rolldown-plugin-copy\";\nimport type { Plugin } from \"vite\";\n\nimport * as Path from \"node:path\";\n\nimport { log } from \"@srvkit/common/configs/log\";\nimport { copy } from \"rolldown-plugin-copy\";\n\nconst copyPlugin = (opts: ResolvedOptions): Plugin[] => {\n const build: ResolvedBuildOptions = opts.build;\n\n if (build.target !== \"server\" || !build.copyPublicDir) {\n return [];\n }\n\n const copyOptions: Copyoptions = {\n cwd: opts.cwd,\n targets: [\n {\n src: Path.posix.join(build.publicDir, \"**\", \"*\"),\n dest: Path.posix.join(build.outputDir, build.publicDir),\n },\n ],\n };\n\n if (opts.verbose) {\n copyOptions.onStart = (): void => {\n console.log(\"\");\n console.log(\"\");\n };\n\n copyOptions.onCopy = (event: CopyEvent): void => {\n const src: string = Path.relative(opts.cwd, event.target.src);\n\n const dest: string = Path.relative(opts.cwd, event.target.dest);\n\n let message: string = `${src} → ${dest}`;\n\n const flags: string[] = [];\n\n if (event.target.renamed) {\n flags.push(\"R\");\n }\n\n if (event.target.transformed) {\n flags.push(\"T\");\n }\n\n if (flags.length > 0) {\n message += ` [${flags.join(\",\")}]`;\n }\n\n log.success(message);\n };\n\n copyOptions.onEnd = (): void => {\n console.log(\"\");\n };\n }\n\n return [\n copy(copyOptions) as Plugin,\n ];\n};\n\nexport { copyPlugin };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["Path"],"sources":["../../../src/plugins/copy/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { CopyEvent, Options as Copyoptions } from \"rolldown-plugin-copy\";\nimport type { Plugin } from \"vite\";\n\nimport * as Path from \"node:path\";\n\nimport { log } from \"@srvkit/common/configs/log\";\nimport { copy } from \"rolldown-plugin-copy\";\n\nconst copyPlugin = (opts: ResolvedOptions): Plugin[] => {\n const build: ResolvedBuildOptions = opts.build;\n\n if (build.target !== \"server\" || !build.copyPublicDir) {\n return [];\n }\n\n const copyOptions: Copyoptions = {\n cwd: opts.cwd,\n targets: [\n {\n src: Path.posix.join(build.publicDir, \"**\", \"*\"),\n dest: Path.posix.join(build.outputDir, build.publicDir),\n },\n ],\n };\n\n if (opts.verbose) {\n copyOptions.onStart = (): void => {\n console.log(\"\");\n console.log(\"\");\n };\n\n copyOptions.onCopy = (event: CopyEvent): void => {\n const src: string = Path.relative(opts.cwd, event.target.src);\n\n const dest: string = Path.relative(opts.cwd, event.target.dest);\n\n let message: string = `${src} → ${dest}`;\n\n const flags: string[] = [];\n\n if (event.target.renamed) {\n flags.push(\"R\");\n }\n\n if (event.target.transformed) {\n flags.push(\"T\");\n }\n\n if (flags.length > 0) {\n message += ` [${flags.join(\",\")}]`;\n }\n\n log.success(message);\n };\n\n copyOptions.onEnd = (): void => {\n console.log(\"\");\n };\n }\n\n return [\n copy(copyOptions) as Plugin,\n ];\n};\n\nexport { copyPlugin };\n"],"mappings":";;;;;;;AAYA,MAAM,cAAc,SAAoC;CACpD,MAAM,QAA8B,KAAK;CAEzC,IAAI,MAAM,WAAW,YAAY,CAAC,MAAM,eACpC,OAAO,CAAC;CAGZ,MAAM,cAA2B;EAC7B,KAAK,KAAK;EACV,SAAS,CACL;GACI,KAAKA,UAAK,MAAM,KAAK,MAAM,WAAW,MAAM,GAAG;GAC/C,MAAMA,UAAK,MAAM,KAAK,MAAM,WAAW,MAAM,SAAS;EAC1D,CACJ;CACJ;CAEA,IAAI,KAAK,SAAS;EACd,YAAY,gBAAsB;GAC9B,QAAQ,IAAI,EAAE;GACd,QAAQ,IAAI,EAAE;EAClB;EAEA,YAAY,UAAU,UAA2B;GAK7C,IAAI,UAAkB,GAJFA,UAAK,SAAS,KAAK,KAAK,MAAM,OAAO,GAI9B,EAAE,KAFRA,UAAK,SAAS,KAAK,KAAK,MAAM,OAAO,IAErB;GAErC,MAAM,QAAkB,CAAC;GAEzB,IAAI,MAAM,OAAO,SACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,OAAO,aACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,SAAS,GACf,WAAW,KAAK,MAAM,KAAK,GAAG,EAAE;GAGpC,+BAAI,QAAQ,OAAO;EACvB;EAEA,YAAY,cAAoB;GAC5B,QAAQ,IAAI,EAAE;EAClB;CACJ;CAEA,OAAO,gCACE,WAAW,CACpB;AACJ"}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import * as Path from "node:path";
|
|
10
2
|
import { log } from "@srvkit/common/configs/log";
|
|
11
3
|
import { copy } from "rolldown-plugin-copy";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/copy/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { CopyEvent, Options as Copyoptions } from \"rolldown-plugin-copy\";\nimport type { Plugin } from \"vite\";\n\nimport * as Path from \"node:path\";\n\nimport { log } from \"@srvkit/common/configs/log\";\nimport { copy } from \"rolldown-plugin-copy\";\n\nconst copyPlugin = (opts: ResolvedOptions): Plugin[] => {\n const build: ResolvedBuildOptions = opts.build;\n\n if (build.target !== \"server\" || !build.copyPublicDir) {\n return [];\n }\n\n const copyOptions: Copyoptions = {\n cwd: opts.cwd,\n targets: [\n {\n src: Path.posix.join(build.publicDir, \"**\", \"*\"),\n dest: Path.posix.join(build.outputDir, build.publicDir),\n },\n ],\n };\n\n if (opts.verbose) {\n copyOptions.onStart = (): void => {\n console.log(\"\");\n console.log(\"\");\n };\n\n copyOptions.onCopy = (event: CopyEvent): void => {\n const src: string = Path.relative(opts.cwd, event.target.src);\n\n const dest: string = Path.relative(opts.cwd, event.target.dest);\n\n let message: string = `${src} → ${dest}`;\n\n const flags: string[] = [];\n\n if (event.target.renamed) {\n flags.push(\"R\");\n }\n\n if (event.target.transformed) {\n flags.push(\"T\");\n }\n\n if (flags.length > 0) {\n message += ` [${flags.join(\",\")}]`;\n }\n\n log.success(message);\n };\n\n copyOptions.onEnd = (): void => {\n console.log(\"\");\n };\n }\n\n return [\n copy(copyOptions) as Plugin,\n ];\n};\n\nexport { copyPlugin };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/copy/index.ts"],"sourcesContent":["import type {\n ResolvedBuildOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { CopyEvent, Options as Copyoptions } from \"rolldown-plugin-copy\";\nimport type { Plugin } from \"vite\";\n\nimport * as Path from \"node:path\";\n\nimport { log } from \"@srvkit/common/configs/log\";\nimport { copy } from \"rolldown-plugin-copy\";\n\nconst copyPlugin = (opts: ResolvedOptions): Plugin[] => {\n const build: ResolvedBuildOptions = opts.build;\n\n if (build.target !== \"server\" || !build.copyPublicDir) {\n return [];\n }\n\n const copyOptions: Copyoptions = {\n cwd: opts.cwd,\n targets: [\n {\n src: Path.posix.join(build.publicDir, \"**\", \"*\"),\n dest: Path.posix.join(build.outputDir, build.publicDir),\n },\n ],\n };\n\n if (opts.verbose) {\n copyOptions.onStart = (): void => {\n console.log(\"\");\n console.log(\"\");\n };\n\n copyOptions.onCopy = (event: CopyEvent): void => {\n const src: string = Path.relative(opts.cwd, event.target.src);\n\n const dest: string = Path.relative(opts.cwd, event.target.dest);\n\n let message: string = `${src} → ${dest}`;\n\n const flags: string[] = [];\n\n if (event.target.renamed) {\n flags.push(\"R\");\n }\n\n if (event.target.transformed) {\n flags.push(\"T\");\n }\n\n if (flags.length > 0) {\n message += ` [${flags.join(\",\")}]`;\n }\n\n log.success(message);\n };\n\n copyOptions.onEnd = (): void => {\n console.log(\"\");\n };\n }\n\n return [\n copy(copyOptions) as Plugin,\n ];\n};\n\nexport { copyPlugin };\n"],"mappings":";;;;AAYA,MAAM,cAAc,SAAoC;CACpD,MAAM,QAA8B,KAAK;CAEzC,IAAI,MAAM,WAAW,YAAY,CAAC,MAAM,eACpC,OAAO,CAAC;CAGZ,MAAM,cAA2B;EAC7B,KAAK,KAAK;EACV,SAAS,CACL;GACI,KAAK,KAAK,MAAM,KAAK,MAAM,WAAW,MAAM,GAAG;GAC/C,MAAM,KAAK,MAAM,KAAK,MAAM,WAAW,MAAM,SAAS;EAC1D,CACJ;CACJ;CAEA,IAAI,KAAK,SAAS;EACd,YAAY,gBAAsB;GAC9B,QAAQ,IAAI,EAAE;GACd,QAAQ,IAAI,EAAE;EAClB;EAEA,YAAY,UAAU,UAA2B;GAK7C,IAAI,UAAkB,GAJF,KAAK,SAAS,KAAK,KAAK,MAAM,OAAO,GAI9B,EAAE,KAFR,KAAK,SAAS,KAAK,KAAK,MAAM,OAAO,IAErB;GAErC,MAAM,QAAkB,CAAC;GAEzB,IAAI,MAAM,OAAO,SACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,OAAO,aACb,MAAM,KAAK,GAAG;GAGlB,IAAI,MAAM,SAAS,GACf,WAAW,KAAK,MAAM,KAAK,GAAG,EAAE;GAGpC,IAAI,QAAQ,OAAO;EACvB;EAEA,YAAY,cAAoB;GAC5B,QAAQ,IAAI,EAAE;EAClB;CACJ;CAEA,OAAO,CACH,KAAK,WAAW,CACpB;AACJ"}
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
const require_ssr = require('../../functions/ssr.js');
|
|
11
3
|
const require_package = require('../../package.js');
|
|
12
4
|
let vite = require("vite");
|
|
5
|
+
let _srvkit_common_consts_options = require("@srvkit/common/consts/options");
|
|
6
|
+
let _srvkit_common_functions_env_resolve = require("@srvkit/common/functions/env/resolve");
|
|
13
7
|
let _srvkit_common_functions_http_request_header = require("@srvkit/common/functions/http/request/header");
|
|
14
8
|
let _srvkit_common_functions_http_response_write = require("@srvkit/common/functions/http/response/write");
|
|
15
9
|
let _srvkit_common_functions_server_live = require("@srvkit/common/functions/server/live");
|
|
@@ -38,6 +32,11 @@ const createMiddleware = ({ vite: vite$1, server }) => {
|
|
|
38
32
|
const devPlugin = (opts) => {
|
|
39
33
|
const dev = opts.dev;
|
|
40
34
|
const https = opts.dev.https ?? {};
|
|
35
|
+
const resolvedHost = (0, _srvkit_common_functions_env_resolve.resolveString)(dev.host, _srvkit_common_consts_options.OPTIONS_DEV.host);
|
|
36
|
+
const resolvedPort = (0, _srvkit_common_functions_env_resolve.resolveNumber)(dev.port, _srvkit_common_consts_options.OPTIONS_DEV.port);
|
|
37
|
+
const resolvedCert = (0, _srvkit_common_functions_env_resolve.resolveString)(https.cert);
|
|
38
|
+
const resolvedKey = (0, _srvkit_common_functions_env_resolve.resolveString)(https.key);
|
|
39
|
+
const resolvedPassphrase = (0, _srvkit_common_functions_env_resolve.resolveString)(https.passphrase);
|
|
41
40
|
return {
|
|
42
41
|
name: `${require_package.name}/dev`,
|
|
43
42
|
apply: "serve",
|
|
@@ -53,12 +52,12 @@ const devPlugin = (opts) => {
|
|
|
53
52
|
rollupOptions: { input: opts.entry }
|
|
54
53
|
},
|
|
55
54
|
server: {
|
|
56
|
-
host:
|
|
57
|
-
port:
|
|
58
|
-
...
|
|
59
|
-
cert:
|
|
60
|
-
key:
|
|
61
|
-
passphrase:
|
|
55
|
+
host: resolvedHost,
|
|
56
|
+
port: resolvedPort,
|
|
57
|
+
...resolvedCert !== void 0 && resolvedKey !== void 0 ? { https: {
|
|
58
|
+
cert: resolvedCert,
|
|
59
|
+
key: resolvedKey,
|
|
60
|
+
passphrase: resolvedPassphrase
|
|
62
61
|
} } : {}
|
|
63
62
|
}
|
|
64
63
|
});
|
|
@@ -69,12 +68,12 @@ const devPlugin = (opts) => {
|
|
|
69
68
|
gracefulShutdown: false,
|
|
70
69
|
...serverOptions,
|
|
71
70
|
manual: true,
|
|
72
|
-
hostname:
|
|
73
|
-
port:
|
|
71
|
+
hostname: resolvedHost,
|
|
72
|
+
port: resolvedPort,
|
|
74
73
|
tls: {
|
|
75
|
-
cert:
|
|
76
|
-
key:
|
|
77
|
-
passphrase:
|
|
74
|
+
cert: resolvedCert,
|
|
75
|
+
key: resolvedKey,
|
|
76
|
+
passphrase: resolvedPassphrase
|
|
78
77
|
}
|
|
79
78
|
});
|
|
80
79
|
const middleware = createMiddleware({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["vite","name","getSsrTarget"],"sources":["../../../src/plugins/dev/index.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { Server, ServerOptions } from \"@srvkit/common/@types/server\";\nimport type {\n Connect,\n DevEnvironment,\n EnvironmentModuleNode,\n Plugin,\n UserConfig,\n ViteDevServer,\n} from \"vite\";\n\nimport { toHeaders } from \"@srvkit/common/functions/http/request/header\";\nimport { writeHttpResponse } from \"@srvkit/common/functions/http/response/write\";\nimport { createLiveServer } from \"@srvkit/common/functions/server/live\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\ntype CreateMiddlewareOptions = {\n vite: ViteDevServer;\n server: Server;\n};\n\nconst createMiddleware = ({ vite, server }: CreateMiddlewareOptions) => {\n return async (\n req: Connect.IncomingMessage,\n res: HTTP.ServerResponse,\n ): Promise<void> => {\n const isHttps: boolean =\n vite.config.server.https?.cert !== void 0 &&\n vite.config.server.https?.key !== void 0;\n\n const protocol: string = `http${isHttps ? \"s\" : \"\"}`;\n\n const serverHost: string | boolean | undefined =\n vite.config.server.host;\n\n // Vite uses `true` as shorthand for \"listen on all interfaces\" (0.0.0.0)\n const host: string =\n typeof serverHost === \"boolean\"\n ? \"0.0.0.0\"\n : typeof serverHost === \"string\"\n ? serverHost\n : \"localhost\";\n\n const port: number = vite.config.server.port;\n\n const path: string = req.url ?? \"\";\n\n const url: URL = new URL(`${protocol}://${host}:${port}${path}`);\n\n // GET and HEAD requests must not have a body per HTTP spec\n const body: Connect.IncomingMessage | undefined =\n req.method !== \"GET\" && req.method !== \"HEAD\" ? req : void 0;\n\n const request: Request = new Request(url, {\n method: req.method,\n headers: toHeaders(req.headers),\n // @ts-expect-error\n body,\n // Required for streaming request bodies in Node's fetch implementation\n duplex: \"half\",\n });\n\n const response: Response = await server.fetch(request);\n\n await writeHttpResponse({\n response,\n httpResponse: res,\n });\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n return {\n name: `${name}/dev`,\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host:
|
|
1
|
+
{"version":3,"file":"index.js","names":["vite","OPTIONS_DEV","name","getSsrTarget"],"sources":["../../../src/plugins/dev/index.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { Server, ServerOptions } from \"@srvkit/common/@types/server\";\nimport type {\n Connect,\n DevEnvironment,\n EnvironmentModuleNode,\n Plugin,\n UserConfig,\n ViteDevServer,\n} from \"vite\";\n\nimport { OPTIONS_DEV } from \"@srvkit/common/consts/options\";\nimport {\n resolveNumber,\n resolveString,\n} from \"@srvkit/common/functions/env/resolve\";\nimport { toHeaders } from \"@srvkit/common/functions/http/request/header\";\nimport { writeHttpResponse } from \"@srvkit/common/functions/http/response/write\";\nimport { createLiveServer } from \"@srvkit/common/functions/server/live\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\ntype CreateMiddlewareOptions = {\n vite: ViteDevServer;\n server: Server;\n};\n\nconst createMiddleware = ({ vite, server }: CreateMiddlewareOptions) => {\n return async (\n req: Connect.IncomingMessage,\n res: HTTP.ServerResponse,\n ): Promise<void> => {\n const isHttps: boolean =\n vite.config.server.https?.cert !== void 0 &&\n vite.config.server.https?.key !== void 0;\n\n const protocol: string = `http${isHttps ? \"s\" : \"\"}`;\n\n const serverHost: string | boolean | undefined =\n vite.config.server.host;\n\n // Vite uses `true` as shorthand for \"listen on all interfaces\" (0.0.0.0)\n const host: string =\n typeof serverHost === \"boolean\"\n ? \"0.0.0.0\"\n : typeof serverHost === \"string\"\n ? serverHost\n : \"localhost\";\n\n const port: number = vite.config.server.port;\n\n const path: string = req.url ?? \"\";\n\n const url: URL = new URL(`${protocol}://${host}:${port}${path}`);\n\n // GET and HEAD requests must not have a body per HTTP spec\n const body: Connect.IncomingMessage | undefined =\n req.method !== \"GET\" && req.method !== \"HEAD\" ? req : void 0;\n\n const request: Request = new Request(url, {\n method: req.method,\n headers: toHeaders(req.headers),\n // @ts-expect-error\n body,\n // Required for streaming request bodies in Node's fetch implementation\n duplex: \"half\",\n });\n\n const response: Response = await server.fetch(request);\n\n await writeHttpResponse({\n response,\n httpResponse: res,\n });\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n const resolvedHost: string = resolveString(dev.host, OPTIONS_DEV.host);\n const resolvedPort: number = resolveNumber(dev.port, OPTIONS_DEV.port);\n const resolvedCert: string | undefined = resolveString(https.cert);\n const resolvedKey: string | undefined = resolveString(https.key);\n const resolvedPassphrase: string | undefined = resolveString(\n https.passphrase,\n );\n\n return {\n name: `${name}/dev`,\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host: resolvedHost,\n port: resolvedPort,\n ...(resolvedCert !== void 0 && resolvedKey !== void 0\n ? {\n https: {\n cert: resolvedCert,\n key: resolvedKey,\n passphrase: resolvedPassphrase,\n },\n }\n : {}),\n },\n };\n\n return mergeConfig(config, devConfig);\n },\n configureServer: async (vite: ViteDevServer): Promise<void> => {\n const serverOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n const { server, update } = createLiveServer({\n // Prevent srvx from installing its own SIGTERM handler\n gracefulShutdown: false,\n ...serverOptions,\n // Defer server start so middleware can be attached first\n manual: true,\n hostname: resolvedHost,\n port: resolvedPort,\n tls: {\n cert: resolvedCert,\n key: resolvedKey,\n passphrase: resolvedPassphrase,\n },\n });\n\n const middleware: Middleware = createMiddleware({\n vite,\n server,\n });\n\n vite.middlewares.use(middleware);\n\n // Live update\n\n let reloadTimer: ReturnType<typeof setTimeout> | undefined = void 0;\n\n // Retry up to 3 times with backoff because the module graph\n // may not be fully invalidated on the first attempt\n const reload = async (attempt: number): Promise<void> => {\n try {\n const ssrEnv: DevEnvironment = vite.environments.ssr;\n\n const mod: EnvironmentModuleNode =\n await ssrEnv.moduleGraph.ensureEntryFromUrl(opts.entry);\n\n ssrEnv.moduleGraph.invalidateModule(mod);\n\n const newServerOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n update(newServerOptions);\n } catch {\n if (attempt < 3) {\n setTimeout(\n (): void => {\n reload(attempt + 1);\n },\n (attempt + 1) * 100,\n );\n }\n }\n };\n\n // Debounce rapid file changes to avoid redundant reloads\n vite.watcher.on(\"change\", (): void => {\n clearTimeout(reloadTimer);\n\n reloadTimer = setTimeout((): void => {\n reload(0);\n }, 100);\n });\n },\n };\n};\n\nexport { devPlugin };\n"],"mappings":";;;;;;;;;;AAmCA,MAAM,oBAAoB,EAAE,cAAM,aAAsC;CACpE,OAAO,OACH,KACA,QACgB;EAKhB,MAAM,WAAmB,OAHrBA,OAAK,OAAO,OAAO,OAAO,SAAS,KAAK,KACxCA,OAAK,OAAO,OAAO,OAAO,QAAQ,KAAK,IAED,MAAM;EAEhD,MAAM,aACFA,OAAK,OAAO,OAAO;EAGvB,MAAM,OACF,OAAO,eAAe,YAChB,YACA,OAAO,eAAe,WACpB,aACA;EAEZ,MAAM,OAAeA,OAAK,OAAO,OAAO;EAExC,MAAM,OAAe,IAAI,OAAO;EAEhC,MAAM,MAAW,IAAI,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,OAAO,MAAM;EAG/D,MAAM,OACF,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,MAAM,KAAK;EAE/D,MAAM,UAAmB,IAAI,QAAQ,KAAK;GACtC,QAAQ,IAAI;GACZ,qEAAmB,IAAI,OAAO;GAE9B;GAEA,QAAQ;EACZ,CAAC;EAID,0EAAwB;GACpB,gBAH6B,OAAO,MAAM,OAAO;GAIjD,cAAc;EAClB,CAAC;CACL;AACJ;AAIA,MAAM,aAAa,SAAkC;CACjD,MAAM,MAA0B,KAAK;CACrC,MAAM,QAA8B,KAAK,IAAI,SAAS,CAAC;CAEvD,MAAM,uEAAqC,IAAI,MAAMC,0CAAY,IAAI;CACrE,MAAM,uEAAqC,IAAI,MAAMA,0CAAY,IAAI;CACrE,MAAM,uEAAiD,MAAM,IAAI;CACjE,MAAM,sEAAgD,MAAM,GAAG;CAC/D,MAAM,6EACF,MAAM,UACV;CAEA,OAAO;EACH,MAAM,GAAGC,qBAAK;EACd,OAAO;EACP,OAAO,QAAgC;GAoCnC,6BAAmB,QAAQ;IAlCvB,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACA,KAAK;KACD,QAAQC,yBAAa,KAAK,OAAO;KACjC,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACJ;IACA,OAAO;KACH,KAAK;KACL,eAAe,EACX,OAAO,KAAK,MAChB;IACJ;IACA,QAAQ;KACJ,MAAM;KACN,MAAM;KACN,GAAI,iBAAiB,KAAK,KAAK,gBAAgB,KAAK,IAC9C,EACI,OAAO;MACH,MAAM;MACN,KAAK;MACL,YAAY;KAChB,EACJ,IACA,CAAC;IACX;GAG+B,CAAC;EACxC;EACA,iBAAiB,OAAO,WAAuC;GAC3D,MAAM,iBACF,MAAMH,OAAK,cAAc,KAAK,KAAK,EAAC,CACtC;GAEF,MAAM,EAAE,QAAQ,sEAA4B;IAExC,kBAAkB;IAClB,GAAG;IAEH,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;KACD,MAAM;KACN,KAAK;KACL,YAAY;IAChB;GACJ,CAAC;GAED,MAAM,aAAyB,iBAAiB;IAC5C;IACA;GACJ,CAAC;GAED,OAAK,YAAY,IAAI,UAAU;GAI/B,IAAI,cAAyD,KAAK;GAIlE,MAAM,SAAS,OAAO,YAAmC;IACrD,IAAI;KACA,MAAM,SAAyBA,OAAK,aAAa;KAEjD,MAAM,MACF,MAAM,OAAO,YAAY,mBAAmB,KAAK,KAAK;KAE1D,OAAO,YAAY,iBAAiB,GAAG;KAEvC,MAAM,oBACF,MAAMA,OAAK,cAAc,KAAK,KAAK,EAAC,CACtC;KAEF,OAAO,gBAAgB;IAC3B,QAAQ;KACJ,IAAI,UAAU,GACV,iBACgB;MACR,OAAO,UAAU,CAAC;KACtB,IACC,UAAU,KAAK,GACpB;IAER;GACJ;GAGA,OAAK,QAAQ,GAAG,gBAAsB;IAClC,aAAa,WAAW;IAExB,cAAc,iBAAuB;KACjC,OAAO,CAAC;IACZ,GAAG,GAAG;GACV,CAAC;EACL;CACJ;AACJ"}
|
|
@@ -1,14 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { getSsrTarget } from "../../functions/ssr.mjs";
|
|
10
2
|
import { name } from "../../package.mjs";
|
|
11
3
|
import { mergeConfig } from "vite";
|
|
4
|
+
import { OPTIONS_DEV } from "@srvkit/common/consts/options";
|
|
5
|
+
import { resolveNumber, resolveString } from "@srvkit/common/functions/env/resolve";
|
|
12
6
|
import { toHeaders } from "@srvkit/common/functions/http/request/header";
|
|
13
7
|
import { writeHttpResponse } from "@srvkit/common/functions/http/response/write";
|
|
14
8
|
import { createLiveServer } from "@srvkit/common/functions/server/live";
|
|
@@ -37,6 +31,11 @@ const createMiddleware = ({ vite, server }) => {
|
|
|
37
31
|
const devPlugin = (opts) => {
|
|
38
32
|
const dev = opts.dev;
|
|
39
33
|
const https = opts.dev.https ?? {};
|
|
34
|
+
const resolvedHost = resolveString(dev.host, OPTIONS_DEV.host);
|
|
35
|
+
const resolvedPort = resolveNumber(dev.port, OPTIONS_DEV.port);
|
|
36
|
+
const resolvedCert = resolveString(https.cert);
|
|
37
|
+
const resolvedKey = resolveString(https.key);
|
|
38
|
+
const resolvedPassphrase = resolveString(https.passphrase);
|
|
40
39
|
return {
|
|
41
40
|
name: `${name}/dev`,
|
|
42
41
|
apply: "serve",
|
|
@@ -52,12 +51,12 @@ const devPlugin = (opts) => {
|
|
|
52
51
|
rollupOptions: { input: opts.entry }
|
|
53
52
|
},
|
|
54
53
|
server: {
|
|
55
|
-
host:
|
|
56
|
-
port:
|
|
57
|
-
...
|
|
58
|
-
cert:
|
|
59
|
-
key:
|
|
60
|
-
passphrase:
|
|
54
|
+
host: resolvedHost,
|
|
55
|
+
port: resolvedPort,
|
|
56
|
+
...resolvedCert !== void 0 && resolvedKey !== void 0 ? { https: {
|
|
57
|
+
cert: resolvedCert,
|
|
58
|
+
key: resolvedKey,
|
|
59
|
+
passphrase: resolvedPassphrase
|
|
61
60
|
} } : {}
|
|
62
61
|
}
|
|
63
62
|
});
|
|
@@ -68,12 +67,12 @@ const devPlugin = (opts) => {
|
|
|
68
67
|
gracefulShutdown: false,
|
|
69
68
|
...serverOptions,
|
|
70
69
|
manual: true,
|
|
71
|
-
hostname:
|
|
72
|
-
port:
|
|
70
|
+
hostname: resolvedHost,
|
|
71
|
+
port: resolvedPort,
|
|
73
72
|
tls: {
|
|
74
|
-
cert:
|
|
75
|
-
key:
|
|
76
|
-
passphrase:
|
|
73
|
+
cert: resolvedCert,
|
|
74
|
+
key: resolvedKey,
|
|
75
|
+
passphrase: resolvedPassphrase
|
|
77
76
|
}
|
|
78
77
|
});
|
|
79
78
|
const middleware = createMiddleware({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/dev/index.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { Server, ServerOptions } from \"@srvkit/common/@types/server\";\nimport type {\n Connect,\n DevEnvironment,\n EnvironmentModuleNode,\n Plugin,\n UserConfig,\n ViteDevServer,\n} from \"vite\";\n\nimport { toHeaders } from \"@srvkit/common/functions/http/request/header\";\nimport { writeHttpResponse } from \"@srvkit/common/functions/http/response/write\";\nimport { createLiveServer } from \"@srvkit/common/functions/server/live\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\ntype CreateMiddlewareOptions = {\n vite: ViteDevServer;\n server: Server;\n};\n\nconst createMiddleware = ({ vite, server }: CreateMiddlewareOptions) => {\n return async (\n req: Connect.IncomingMessage,\n res: HTTP.ServerResponse,\n ): Promise<void> => {\n const isHttps: boolean =\n vite.config.server.https?.cert !== void 0 &&\n vite.config.server.https?.key !== void 0;\n\n const protocol: string = `http${isHttps ? \"s\" : \"\"}`;\n\n const serverHost: string | boolean | undefined =\n vite.config.server.host;\n\n // Vite uses `true` as shorthand for \"listen on all interfaces\" (0.0.0.0)\n const host: string =\n typeof serverHost === \"boolean\"\n ? \"0.0.0.0\"\n : typeof serverHost === \"string\"\n ? serverHost\n : \"localhost\";\n\n const port: number = vite.config.server.port;\n\n const path: string = req.url ?? \"\";\n\n const url: URL = new URL(`${protocol}://${host}:${port}${path}`);\n\n // GET and HEAD requests must not have a body per HTTP spec\n const body: Connect.IncomingMessage | undefined =\n req.method !== \"GET\" && req.method !== \"HEAD\" ? req : void 0;\n\n const request: Request = new Request(url, {\n method: req.method,\n headers: toHeaders(req.headers),\n // @ts-expect-error\n body,\n // Required for streaming request bodies in Node's fetch implementation\n duplex: \"half\",\n });\n\n const response: Response = await server.fetch(request);\n\n await writeHttpResponse({\n response,\n httpResponse: res,\n });\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n return {\n name: `${name}/dev`,\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host:
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/plugins/dev/index.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedOptions,\n} from \"@srvkit/common/@types/options/resolved\";\nimport type { Server, ServerOptions } from \"@srvkit/common/@types/server\";\nimport type {\n Connect,\n DevEnvironment,\n EnvironmentModuleNode,\n Plugin,\n UserConfig,\n ViteDevServer,\n} from \"vite\";\n\nimport { OPTIONS_DEV } from \"@srvkit/common/consts/options\";\nimport {\n resolveNumber,\n resolveString,\n} from \"@srvkit/common/functions/env/resolve\";\nimport { toHeaders } from \"@srvkit/common/functions/http/request/header\";\nimport { writeHttpResponse } from \"@srvkit/common/functions/http/response/write\";\nimport { createLiveServer } from \"@srvkit/common/functions/server/live\";\nimport { mergeConfig } from \"vite\";\n\nimport { getSsrTarget } from \"#/functions/ssr\";\nimport { name } from \"#/root/package.json\";\n\ntype CreateMiddlewareOptions = {\n vite: ViteDevServer;\n server: Server;\n};\n\nconst createMiddleware = ({ vite, server }: CreateMiddlewareOptions) => {\n return async (\n req: Connect.IncomingMessage,\n res: HTTP.ServerResponse,\n ): Promise<void> => {\n const isHttps: boolean =\n vite.config.server.https?.cert !== void 0 &&\n vite.config.server.https?.key !== void 0;\n\n const protocol: string = `http${isHttps ? \"s\" : \"\"}`;\n\n const serverHost: string | boolean | undefined =\n vite.config.server.host;\n\n // Vite uses `true` as shorthand for \"listen on all interfaces\" (0.0.0.0)\n const host: string =\n typeof serverHost === \"boolean\"\n ? \"0.0.0.0\"\n : typeof serverHost === \"string\"\n ? serverHost\n : \"localhost\";\n\n const port: number = vite.config.server.port;\n\n const path: string = req.url ?? \"\";\n\n const url: URL = new URL(`${protocol}://${host}:${port}${path}`);\n\n // GET and HEAD requests must not have a body per HTTP spec\n const body: Connect.IncomingMessage | undefined =\n req.method !== \"GET\" && req.method !== \"HEAD\" ? req : void 0;\n\n const request: Request = new Request(url, {\n method: req.method,\n headers: toHeaders(req.headers),\n // @ts-expect-error\n body,\n // Required for streaming request bodies in Node's fetch implementation\n duplex: \"half\",\n });\n\n const response: Response = await server.fetch(request);\n\n await writeHttpResponse({\n response,\n httpResponse: res,\n });\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n const resolvedHost: string = resolveString(dev.host, OPTIONS_DEV.host);\n const resolvedPort: number = resolveNumber(dev.port, OPTIONS_DEV.port);\n const resolvedCert: string | undefined = resolveString(https.cert);\n const resolvedKey: string | undefined = resolveString(https.key);\n const resolvedPassphrase: string | undefined = resolveString(\n https.passphrase,\n );\n\n return {\n name: `${name}/dev`,\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n ssr: {\n target: getSsrTarget(opts.runtime),\n resolve: {\n conditions: [\n opts.runtime,\n ],\n },\n },\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host: resolvedHost,\n port: resolvedPort,\n ...(resolvedCert !== void 0 && resolvedKey !== void 0\n ? {\n https: {\n cert: resolvedCert,\n key: resolvedKey,\n passphrase: resolvedPassphrase,\n },\n }\n : {}),\n },\n };\n\n return mergeConfig(config, devConfig);\n },\n configureServer: async (vite: ViteDevServer): Promise<void> => {\n const serverOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n const { server, update } = createLiveServer({\n // Prevent srvx from installing its own SIGTERM handler\n gracefulShutdown: false,\n ...serverOptions,\n // Defer server start so middleware can be attached first\n manual: true,\n hostname: resolvedHost,\n port: resolvedPort,\n tls: {\n cert: resolvedCert,\n key: resolvedKey,\n passphrase: resolvedPassphrase,\n },\n });\n\n const middleware: Middleware = createMiddleware({\n vite,\n server,\n });\n\n vite.middlewares.use(middleware);\n\n // Live update\n\n let reloadTimer: ReturnType<typeof setTimeout> | undefined = void 0;\n\n // Retry up to 3 times with backoff because the module graph\n // may not be fully invalidated on the first attempt\n const reload = async (attempt: number): Promise<void> => {\n try {\n const ssrEnv: DevEnvironment = vite.environments.ssr;\n\n const mod: EnvironmentModuleNode =\n await ssrEnv.moduleGraph.ensureEntryFromUrl(opts.entry);\n\n ssrEnv.moduleGraph.invalidateModule(mod);\n\n const newServerOptions: ServerOptions = (\n await vite.ssrLoadModule(opts.entry)\n ).default;\n\n update(newServerOptions);\n } catch {\n if (attempt < 3) {\n setTimeout(\n (): void => {\n reload(attempt + 1);\n },\n (attempt + 1) * 100,\n );\n }\n }\n };\n\n // Debounce rapid file changes to avoid redundant reloads\n vite.watcher.on(\"change\", (): void => {\n clearTimeout(reloadTimer);\n\n reloadTimer = setTimeout((): void => {\n reload(0);\n }, 100);\n });\n },\n };\n};\n\nexport { devPlugin };\n"],"mappings":";;;;;;;;;AAmCA,MAAM,oBAAoB,EAAE,MAAM,aAAsC;CACpE,OAAO,OACH,KACA,QACgB;EAKhB,MAAM,WAAmB,OAHrB,KAAK,OAAO,OAAO,OAAO,SAAS,KAAK,KACxC,KAAK,OAAO,OAAO,OAAO,QAAQ,KAAK,IAED,MAAM;EAEhD,MAAM,aACF,KAAK,OAAO,OAAO;EAGvB,MAAM,OACF,OAAO,eAAe,YAChB,YACA,OAAO,eAAe,WACpB,aACA;EAEZ,MAAM,OAAe,KAAK,OAAO,OAAO;EAExC,MAAM,OAAe,IAAI,OAAO;EAEhC,MAAM,MAAW,IAAI,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,OAAO,MAAM;EAG/D,MAAM,OACF,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,MAAM,KAAK;EAE/D,MAAM,UAAmB,IAAI,QAAQ,KAAK;GACtC,QAAQ,IAAI;GACZ,SAAS,UAAU,IAAI,OAAO;GAE9B;GAEA,QAAQ;EACZ,CAAC;EAID,MAAM,kBAAkB;GACpB,gBAH6B,OAAO,MAAM,OAAO;GAIjD,cAAc;EAClB,CAAC;CACL;AACJ;AAIA,MAAM,aAAa,SAAkC;CACjD,MAAM,MAA0B,KAAK;CACrC,MAAM,QAA8B,KAAK,IAAI,SAAS,CAAC;CAEvD,MAAM,eAAuB,cAAc,IAAI,MAAM,YAAY,IAAI;CACrE,MAAM,eAAuB,cAAc,IAAI,MAAM,YAAY,IAAI;CACrE,MAAM,eAAmC,cAAc,MAAM,IAAI;CACjE,MAAM,cAAkC,cAAc,MAAM,GAAG;CAC/D,MAAM,qBAAyC,cAC3C,MAAM,UACV;CAEA,OAAO;EACH,MAAM,GAAG,KAAK;EACd,OAAO;EACP,OAAO,QAAgC;GAoCnC,OAAO,YAAY,QAAQ;IAlCvB,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACA,KAAK;KACD,QAAQ,aAAa,KAAK,OAAO;KACjC,SAAS,EACL,YAAY,CACR,KAAK,OACT,EACJ;IACJ;IACA,OAAO;KACH,KAAK;KACL,eAAe,EACX,OAAO,KAAK,MAChB;IACJ;IACA,QAAQ;KACJ,MAAM;KACN,MAAM;KACN,GAAI,iBAAiB,KAAK,KAAK,gBAAgB,KAAK,IAC9C,EACI,OAAO;MACH,MAAM;MACN,KAAK;MACL,YAAY;KAChB,EACJ,IACA,CAAC;IACX;GAG+B,CAAC;EACxC;EACA,iBAAiB,OAAO,SAAuC;GAC3D,MAAM,iBACF,MAAM,KAAK,cAAc,KAAK,KAAK,EAAC,CACtC;GAEF,MAAM,EAAE,QAAQ,WAAW,iBAAiB;IAExC,kBAAkB;IAClB,GAAG;IAEH,QAAQ;IACR,UAAU;IACV,MAAM;IACN,KAAK;KACD,MAAM;KACN,KAAK;KACL,YAAY;IAChB;GACJ,CAAC;GAED,MAAM,aAAyB,iBAAiB;IAC5C;IACA;GACJ,CAAC;GAED,KAAK,YAAY,IAAI,UAAU;GAI/B,IAAI,cAAyD,KAAK;GAIlE,MAAM,SAAS,OAAO,YAAmC;IACrD,IAAI;KACA,MAAM,SAAyB,KAAK,aAAa;KAEjD,MAAM,MACF,MAAM,OAAO,YAAY,mBAAmB,KAAK,KAAK;KAE1D,OAAO,YAAY,iBAAiB,GAAG;KAEvC,MAAM,oBACF,MAAM,KAAK,cAAc,KAAK,KAAK,EAAC,CACtC;KAEF,OAAO,gBAAgB;IAC3B,QAAQ;KACJ,IAAI,UAAU,GACV,iBACgB;MACR,OAAO,UAAU,CAAC;KACtB,IACC,UAAU,KAAK,GACpB;IAER;GACJ;GAGA,KAAK,QAAQ,GAAG,gBAAsB;IAClC,aAAa,WAAW;IAExB,cAAc,iBAAuB;KACjC,OAAO,CAAC;IACZ,GAAG,GAAG;GACV,CAAC;EACL;CACJ;AACJ"}
|
package/dist/plugins/index.d.ts
CHANGED
package/dist/plugins/index.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
const require_plugins_build_index = require('./build/index.js');
|
|
10
2
|
const require_plugins_copy_index = require('./copy/index.js');
|
|
11
3
|
const require_plugins_dev_index = require('./dev/index.js');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["devPlugin","buildPlugin","copyPlugin"],"sources":["../../src/plugins/index.ts"],"sourcesContent":["import type { Options } from \"@srvkit/common/@types/options/default\";\nimport type { ResolvedOptions } from \"@srvkit/common/@types/options/resolved\";\nimport type { Plugin } from \"vite\";\n\nimport { resolveOptions } from \"@srvkit/common/functions/options/resolve\";\n\nimport { buildPlugin } from \"#/plugins/build\";\nimport { copyPlugin } from \"#/plugins/copy\";\nimport { devPlugin } from \"#/plugins/dev\";\n\nconst plugin = (options?: Options): Plugin[] => {\n const opts: ResolvedOptions = resolveOptions(options);\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...copyPlugin({\n ...opts,\n }),\n ];\n};\n\nexport { plugin };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["devPlugin","buildPlugin","copyPlugin"],"sources":["../../src/plugins/index.ts"],"sourcesContent":["import type { Options } from \"@srvkit/common/@types/options/default\";\nimport type { ResolvedOptions } from \"@srvkit/common/@types/options/resolved\";\nimport type { Plugin } from \"vite\";\n\nimport { resolveOptions } from \"@srvkit/common/functions/options/resolve\";\n\nimport { buildPlugin } from \"#/plugins/build\";\nimport { copyPlugin } from \"#/plugins/copy\";\nimport { devPlugin } from \"#/plugins/dev\";\n\nconst plugin = (options?: Options): Plugin[] => {\n const opts: ResolvedOptions = resolveOptions(options);\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...copyPlugin({\n ...opts,\n }),\n ];\n};\n\nexport { plugin };\n"],"mappings":";;;;;AAUA,MAAM,UAAU,YAAgC;CAC5C,MAAM,oEAAuC,OAAO;CAEpD,OAAO;EACHA,oCAAU,EACN,GAAG,KACP,CAAC;EACDC,wCAAY,EACR,GAAG,KACP,CAAC;EACD,GAAGC,sCAAW,EACV,GAAG,KACP,CAAC;CACL;AACJ"}
|
package/dist/plugins/index.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { buildPlugin } from "./build/index.mjs";
|
|
10
2
|
import { copyPlugin } from "./copy/index.mjs";
|
|
11
3
|
import { devPlugin } from "./dev/index.mjs";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/plugins/index.ts"],"sourcesContent":["import type { Options } from \"@srvkit/common/@types/options/default\";\nimport type { ResolvedOptions } from \"@srvkit/common/@types/options/resolved\";\nimport type { Plugin } from \"vite\";\n\nimport { resolveOptions } from \"@srvkit/common/functions/options/resolve\";\n\nimport { buildPlugin } from \"#/plugins/build\";\nimport { copyPlugin } from \"#/plugins/copy\";\nimport { devPlugin } from \"#/plugins/dev\";\n\nconst plugin = (options?: Options): Plugin[] => {\n const opts: ResolvedOptions = resolveOptions(options);\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...copyPlugin({\n ...opts,\n }),\n ];\n};\n\nexport { plugin };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../src/plugins/index.ts"],"sourcesContent":["import type { Options } from \"@srvkit/common/@types/options/default\";\nimport type { ResolvedOptions } from \"@srvkit/common/@types/options/resolved\";\nimport type { Plugin } from \"vite\";\n\nimport { resolveOptions } from \"@srvkit/common/functions/options/resolve\";\n\nimport { buildPlugin } from \"#/plugins/build\";\nimport { copyPlugin } from \"#/plugins/copy\";\nimport { devPlugin } from \"#/plugins/dev\";\n\nconst plugin = (options?: Options): Plugin[] => {\n const opts: ResolvedOptions = resolveOptions(options);\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...copyPlugin({\n ...opts,\n }),\n ];\n};\n\nexport { plugin };\n"],"mappings":";;;;;AAUA,MAAM,UAAU,YAAgC;CAC5C,MAAM,OAAwB,eAAe,OAAO;CAEpD,OAAO;EACH,UAAU,EACN,GAAG,KACP,CAAC;EACD,YAAY,EACR,GAAG,KACP,CAAC;EACD,GAAG,WAAW,EACV,GAAG,KACP,CAAC;CACL;AACJ"}
|
package/dist/runtime.d.ts
CHANGED
package/dist/runtime.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
10
2
|
let _srvkit_common_runtime = require("@srvkit/common/runtime");
|
|
11
3
|
|
package/dist/runtime.mjs
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import __tsdown_shims_path from 'node:path'
|
|
4
|
-
import __tsdown_shims_url from 'node:url'
|
|
5
|
-
|
|
6
|
-
const __TSDOWN_SHIM_FILENAME__ = /* @__PURE__ */ __tsdown_shims_url.fileURLToPath(import.meta.url)
|
|
7
|
-
const __TSDOWN_SHIM_DIRNAME__ = /* @__PURE__ */ __tsdown_shims_path.dirname(__TSDOWN_SHIM_FILENAME__)
|
|
8
|
-
|
|
9
1
|
import { serve } from "@srvkit/common/runtime";
|
|
10
2
|
|
|
11
3
|
export { serve };
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/vitejs/vite-plugin-registry/refs/heads/main/data/schema/extended-package-json.schema.json",
|
|
3
3
|
"name": "@srvkit/vite",
|
|
4
|
-
"version": "0.
|
|
5
|
-
"description": "A toolkit for building
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"description": "A toolkit for building APIs",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"srvkit",
|
|
8
8
|
"vite-plugin",
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
],
|
|
73
73
|
"dependencies": {
|
|
74
74
|
"rolldown-plugin-copy": "~0.2.0",
|
|
75
|
-
"@srvkit/common": "~0.
|
|
75
|
+
"@srvkit/common": "~0.2.0"
|
|
76
76
|
},
|
|
77
77
|
"devDependencies": {
|
|
78
78
|
"rolldown": "1.0.0",
|