vitend 0.0.0-dev.20260125.f95058a
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/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/@types/node.d.ts +16 -0
- package/dist/@types/options/complete.d.ts +158 -0
- package/dist/@types/options/default.d.ts +39 -0
- package/dist/@types/server.d.ts +32 -0
- package/dist/_virtual/rolldown_runtime.js +27 -0
- package/dist/functions/define.d.ts +21 -0
- package/dist/functions/define.js +22 -0
- package/dist/functions/define.js.map +1 -0
- package/dist/functions/define.mjs +21 -0
- package/dist/functions/define.mjs.map +1 -0
- package/dist/functions/entry.js +20 -0
- package/dist/functions/entry.js.map +1 -0
- package/dist/functions/entry.mjs +17 -0
- package/dist/functions/entry.mjs.map +1 -0
- package/dist/functions/options.js +53 -0
- package/dist/functions/options.js.map +1 -0
- package/dist/functions/options.mjs +52 -0
- package/dist/functions/options.mjs.map +1 -0
- package/dist/functions/package-json.js +15 -0
- package/dist/functions/package-json.js.map +1 -0
- package/dist/functions/package-json.mjs +12 -0
- package/dist/functions/package-json.mjs.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.mjs +3 -0
- package/dist/node.d.ts +3 -0
- package/dist/node.js +9 -0
- package/dist/node.mjs +3 -0
- package/dist/runtime.d.ts +2 -0
- package/dist/runtime.js +9 -0
- package/dist/runtime.mjs +3 -0
- package/dist/vite/build.js +78 -0
- package/dist/vite/build.js.map +1 -0
- package/dist/vite/build.mjs +77 -0
- package/dist/vite/build.mjs.map +1 -0
- package/dist/vite/dev.js +90 -0
- package/dist/vite/dev.js.map +1 -0
- package/dist/vite/dev.mjs +89 -0
- package/dist/vite/dev.mjs.map +1 -0
- package/dist/vite/vitend.d.ts +23 -0
- package/dist/vite/vitend.js +45 -0
- package/dist/vite/vitend.js.map +1 -0
- package/dist/vite/vitend.mjs +42 -0
- package/dist/vite/vitend.mjs.map +1 -0
- package/dist/vite.d.ts +3 -0
- package/dist/vite.js +3 -0
- package/dist/vite.mjs +3 -0
- package/package.json +68 -0
package/dist/node.mjs
ADDED
package/dist/runtime.js
ADDED
package/dist/runtime.mjs
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_package_json = require('../functions/package-json.js');
|
|
3
|
+
let es_toolkit = require("es-toolkit");
|
|
4
|
+
let node_module = require("node:module");
|
|
5
|
+
|
|
6
|
+
const VIRTUAL_ENTRY = "virtual:vitend-entry";
|
|
7
|
+
const VIRTUAL_ENTRY_RESOLVED = `\0${VIRTUAL_ENTRY}`;
|
|
8
|
+
const buildPlugin = (opts) => {
|
|
9
|
+
const build = opts.build;
|
|
10
|
+
const packageJson = require_package_json.getPackageJson(opts.cwd);
|
|
11
|
+
return {
|
|
12
|
+
name: "vitend/build",
|
|
13
|
+
apply: "build",
|
|
14
|
+
config: (config) => {
|
|
15
|
+
let result = {};
|
|
16
|
+
result = (0, es_toolkit.toMerged)({
|
|
17
|
+
ssr: {
|
|
18
|
+
external: true,
|
|
19
|
+
noExternal: void 0,
|
|
20
|
+
target: "webworker"
|
|
21
|
+
},
|
|
22
|
+
build: { copyPublicDir: false }
|
|
23
|
+
}, config);
|
|
24
|
+
const overrideConfig = { build: {
|
|
25
|
+
ssr: true,
|
|
26
|
+
outDir: build.outputDir,
|
|
27
|
+
rollupOptions: {
|
|
28
|
+
input: VIRTUAL_ENTRY,
|
|
29
|
+
output: {
|
|
30
|
+
entryFileNames: build.outputFile,
|
|
31
|
+
format: packageJson.type === "module" ? "esm" : "cjs"
|
|
32
|
+
},
|
|
33
|
+
external: [...node_module.builtinModules, /^node:/]
|
|
34
|
+
},
|
|
35
|
+
minify: build.minify
|
|
36
|
+
} };
|
|
37
|
+
result = (0, es_toolkit.toMerged)(result, overrideConfig);
|
|
38
|
+
return result;
|
|
39
|
+
},
|
|
40
|
+
resolveId: (id) => {
|
|
41
|
+
if (id !== VIRTUAL_ENTRY) return void 0;
|
|
42
|
+
return VIRTUAL_ENTRY_RESOLVED;
|
|
43
|
+
},
|
|
44
|
+
load: async (id) => {
|
|
45
|
+
if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;
|
|
46
|
+
let code = "";
|
|
47
|
+
code += `import options from "${opts.entry}";`;
|
|
48
|
+
code += `import { serve } from "vitend/runtime";`;
|
|
49
|
+
if (build.mode === "vercel") {
|
|
50
|
+
code += `const server = serve({`;
|
|
51
|
+
code += `...options,`;
|
|
52
|
+
code += `manual: true,`;
|
|
53
|
+
code += `});`;
|
|
54
|
+
code += `const handler = {`;
|
|
55
|
+
code += `fetch: server.fetch,`;
|
|
56
|
+
code += `};`;
|
|
57
|
+
code += `export default handler;`;
|
|
58
|
+
return code;
|
|
59
|
+
}
|
|
60
|
+
code += `serve({`;
|
|
61
|
+
code += `...options,`;
|
|
62
|
+
if (build.host !== "localhost") code += `hostname: "${build.host}",`;
|
|
63
|
+
if (build.port !== 3e3) code += `port: ${build.port},`;
|
|
64
|
+
if (build.https) {
|
|
65
|
+
code += `tls: {`;
|
|
66
|
+
if (build.https.cert) code += `cert: "${build.https.cert}",`;
|
|
67
|
+
if (build.https.key) code += `key: "${build.https.key}",`;
|
|
68
|
+
if (build.https.passphrase) code += `passphrase: "${build.https.passphrase}",`;
|
|
69
|
+
code += `},`;
|
|
70
|
+
}
|
|
71
|
+
code += `});`;
|
|
72
|
+
return code;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
exports.buildPlugin = buildPlugin;
|
|
78
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","names":["getPackageJson","builtinModules"],"sources":["../../src/vite/build.ts"],"sourcesContent":["import type { LoadResult, ResolveIdResult } from \"rollup\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport type {\n ResolvedBuildOptions,\n ResolvedVitendOptions,\n} from \"#/@types/options/resolved\";\nimport type { PackageJson } from \"#/functions/package-json\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { getPackageJson } from \"#/functions/package-json\";\n\nconst VIRTUAL_ENTRY = \"virtual:vitend-entry\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedVitendOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: \"vitend/build\",\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n let result: UserConfig = {};\n\n const baseConfig: UserConfig = {\n ssr: {\n external: true,\n noExternal: void 0,\n target: \"webworker\",\n },\n build: {\n copyPublicDir: false,\n },\n };\n\n result = toMerged(baseConfig, config);\n\n const overrideConfig: UserConfig = {\n build: {\n ssr: true,\n outDir: build.outputDir,\n rollupOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n },\n external: [\n ...builtinModules,\n /^node:/,\n ],\n },\n minify: build.minify,\n },\n };\n\n result = toMerged(result, overrideConfig);\n\n return result;\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\n let code: string = \"\";\n\n code += `import options from \"${opts.entry}\";`;\n code += `import { serve } from \"vitend/runtime\";`;\n\n // vercel export\n\n if (build.mode === \"vercel\") {\n code += `const server = serve({`;\n code += `...options,`;\n code += `manual: true,`;\n code += `});`;\n\n code += `const handler = {`;\n code += `fetch: server.fetch,`;\n code += `};`;\n\n code += `export default handler;`;\n\n return code;\n }\n\n // default export\n\n code += `serve({`;\n code += `...options,`;\n\n if (build.host !== \"localhost\")\n code += `hostname: \"${build.host}\",`;\n if (build.port !== 3000) code += `port: ${build.port},`;\n\n if (build.https) {\n code += `tls: {`;\n if (build.https.cert) code += `cert: \"${build.https.cert}\",`;\n if (build.https.key) code += `key: \"${build.https.key}\",`;\n if (build.https.passphrase)\n code += `passphrase: \"${build.https.passphrase}\",`;\n code += `},`;\n }\n\n code += `});`;\n\n return code;\n },\n };\n};\n\nexport { buildPlugin };\n"],"mappings":";;;;;AAeA,MAAM,gBAAgB;AAEtB,MAAM,yBAAyB,KAAK;AAEpC,MAAM,eAAe,SAAwC;CACzD,MAAM,QAA8B,KAAK;CAEzC,MAAM,cAA2BA,oCAAe,KAAK,IAAI;AAEzD,QAAO;EACH,MAAM;EACN,OAAO;EACP,SAAS,WAAmC;GACxC,IAAI,SAAqB,EAAE;AAa3B,qCAX+B;IAC3B,KAAK;KACD,UAAU;KACV,YAAY,KAAK;KACjB,QAAQ;KACX;IACD,OAAO,EACH,eAAe,OAClB;IACJ,EAE6B,OAAO;GAErC,MAAM,iBAA6B,EAC/B,OAAO;IACH,KAAK;IACL,QAAQ,MAAM;IACd,eAAe;KACX,OAAO;KACP,QAAQ;MACJ,gBAAgB,MAAM;MACtB,QACI,YAAY,SAAS,WAAW,QAAQ;MAC/C;KACD,UAAU,CACN,GAAGC,4BACH,SACH;KACJ;IACD,QAAQ,MAAM;IACjB,EACJ;AAED,qCAAkB,QAAQ,eAAe;AAEzC,UAAO;;EAEX,YAAY,OAAgC;AACxC,OAAI,OAAO,cAAe,QAAO,KAAK;AACtC,UAAO;;EAEX,MAAM,OAAO,OAAoC;AAC7C,OAAI,OAAO,uBAAwB,QAAO,KAAK;GAE/C,IAAI,OAAe;AAEnB,WAAQ,wBAAwB,KAAK,MAAM;AAC3C,WAAQ;AAIR,OAAI,MAAM,SAAS,UAAU;AACzB,YAAQ;AACR,YAAQ;AACR,YAAQ;AACR,YAAQ;AAER,YAAQ;AACR,YAAQ;AACR,YAAQ;AAER,YAAQ;AAER,WAAO;;AAKX,WAAQ;AACR,WAAQ;AAER,OAAI,MAAM,SAAS,YACf,SAAQ,cAAc,MAAM,KAAK;AACrC,OAAI,MAAM,SAAS,IAAM,SAAQ,SAAS,MAAM,KAAK;AAErD,OAAI,MAAM,OAAO;AACb,YAAQ;AACR,QAAI,MAAM,MAAM,KAAM,SAAQ,UAAU,MAAM,MAAM,KAAK;AACzD,QAAI,MAAM,MAAM,IAAK,SAAQ,SAAS,MAAM,MAAM,IAAI;AACtD,QAAI,MAAM,MAAM,WACZ,SAAQ,gBAAgB,MAAM,MAAM,WAAW;AACnD,YAAQ;;AAGZ,WAAQ;AAER,UAAO;;EAEd"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { getPackageJson } from "../functions/package-json.mjs";
|
|
2
|
+
import { builtinModules } from "node:module";
|
|
3
|
+
import { toMerged } from "es-toolkit";
|
|
4
|
+
|
|
5
|
+
const VIRTUAL_ENTRY = "virtual:vitend-entry";
|
|
6
|
+
const VIRTUAL_ENTRY_RESOLVED = `\0${VIRTUAL_ENTRY}`;
|
|
7
|
+
const buildPlugin = (opts) => {
|
|
8
|
+
const build = opts.build;
|
|
9
|
+
const packageJson = getPackageJson(opts.cwd);
|
|
10
|
+
return {
|
|
11
|
+
name: "vitend/build",
|
|
12
|
+
apply: "build",
|
|
13
|
+
config: (config) => {
|
|
14
|
+
let result = {};
|
|
15
|
+
result = toMerged({
|
|
16
|
+
ssr: {
|
|
17
|
+
external: true,
|
|
18
|
+
noExternal: void 0,
|
|
19
|
+
target: "webworker"
|
|
20
|
+
},
|
|
21
|
+
build: { copyPublicDir: false }
|
|
22
|
+
}, config);
|
|
23
|
+
const overrideConfig = { build: {
|
|
24
|
+
ssr: true,
|
|
25
|
+
outDir: build.outputDir,
|
|
26
|
+
rollupOptions: {
|
|
27
|
+
input: VIRTUAL_ENTRY,
|
|
28
|
+
output: {
|
|
29
|
+
entryFileNames: build.outputFile,
|
|
30
|
+
format: packageJson.type === "module" ? "esm" : "cjs"
|
|
31
|
+
},
|
|
32
|
+
external: [...builtinModules, /^node:/]
|
|
33
|
+
},
|
|
34
|
+
minify: build.minify
|
|
35
|
+
} };
|
|
36
|
+
result = toMerged(result, overrideConfig);
|
|
37
|
+
return result;
|
|
38
|
+
},
|
|
39
|
+
resolveId: (id) => {
|
|
40
|
+
if (id !== VIRTUAL_ENTRY) return void 0;
|
|
41
|
+
return VIRTUAL_ENTRY_RESOLVED;
|
|
42
|
+
},
|
|
43
|
+
load: async (id) => {
|
|
44
|
+
if (id !== VIRTUAL_ENTRY_RESOLVED) return void 0;
|
|
45
|
+
let code = "";
|
|
46
|
+
code += `import options from "${opts.entry}";`;
|
|
47
|
+
code += `import { serve } from "vitend/runtime";`;
|
|
48
|
+
if (build.mode === "vercel") {
|
|
49
|
+
code += `const server = serve({`;
|
|
50
|
+
code += `...options,`;
|
|
51
|
+
code += `manual: true,`;
|
|
52
|
+
code += `});`;
|
|
53
|
+
code += `const handler = {`;
|
|
54
|
+
code += `fetch: server.fetch,`;
|
|
55
|
+
code += `};`;
|
|
56
|
+
code += `export default handler;`;
|
|
57
|
+
return code;
|
|
58
|
+
}
|
|
59
|
+
code += `serve({`;
|
|
60
|
+
code += `...options,`;
|
|
61
|
+
if (build.host !== "localhost") code += `hostname: "${build.host}",`;
|
|
62
|
+
if (build.port !== 3e3) code += `port: ${build.port},`;
|
|
63
|
+
if (build.https) {
|
|
64
|
+
code += `tls: {`;
|
|
65
|
+
if (build.https.cert) code += `cert: "${build.https.cert}",`;
|
|
66
|
+
if (build.https.key) code += `key: "${build.https.key}",`;
|
|
67
|
+
if (build.https.passphrase) code += `passphrase: "${build.https.passphrase}",`;
|
|
68
|
+
code += `},`;
|
|
69
|
+
}
|
|
70
|
+
code += `});`;
|
|
71
|
+
return code;
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
export { buildPlugin };
|
|
77
|
+
//# sourceMappingURL=build.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.mjs","names":[],"sources":["../../src/vite/build.ts"],"sourcesContent":["import type { LoadResult, ResolveIdResult } from \"rollup\";\nimport type { Plugin, UserConfig } from \"vite\";\n\nimport type {\n ResolvedBuildOptions,\n ResolvedVitendOptions,\n} from \"#/@types/options/resolved\";\nimport type { PackageJson } from \"#/functions/package-json\";\n\nimport { builtinModules } from \"node:module\";\n\nimport { toMerged } from \"es-toolkit\";\n\nimport { getPackageJson } from \"#/functions/package-json\";\n\nconst VIRTUAL_ENTRY = \"virtual:vitend-entry\" as const;\n\nconst VIRTUAL_ENTRY_RESOLVED = `\\0${VIRTUAL_ENTRY}` as const;\n\nconst buildPlugin = (opts: ResolvedVitendOptions): Plugin => {\n const build: ResolvedBuildOptions = opts.build;\n\n const packageJson: PackageJson = getPackageJson(opts.cwd);\n\n return {\n name: \"vitend/build\",\n apply: \"build\",\n config: (config: UserConfig): UserConfig => {\n let result: UserConfig = {};\n\n const baseConfig: UserConfig = {\n ssr: {\n external: true,\n noExternal: void 0,\n target: \"webworker\",\n },\n build: {\n copyPublicDir: false,\n },\n };\n\n result = toMerged(baseConfig, config);\n\n const overrideConfig: UserConfig = {\n build: {\n ssr: true,\n outDir: build.outputDir,\n rollupOptions: {\n input: VIRTUAL_ENTRY,\n output: {\n entryFileNames: build.outputFile,\n format:\n packageJson.type === \"module\" ? \"esm\" : \"cjs\",\n },\n external: [\n ...builtinModules,\n /^node:/,\n ],\n },\n minify: build.minify,\n },\n };\n\n result = toMerged(result, overrideConfig);\n\n return result;\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\n let code: string = \"\";\n\n code += `import options from \"${opts.entry}\";`;\n code += `import { serve } from \"vitend/runtime\";`;\n\n // vercel export\n\n if (build.mode === \"vercel\") {\n code += `const server = serve({`;\n code += `...options,`;\n code += `manual: true,`;\n code += `});`;\n\n code += `const handler = {`;\n code += `fetch: server.fetch,`;\n code += `};`;\n\n code += `export default handler;`;\n\n return code;\n }\n\n // default export\n\n code += `serve({`;\n code += `...options,`;\n\n if (build.host !== \"localhost\")\n code += `hostname: \"${build.host}\",`;\n if (build.port !== 3000) code += `port: ${build.port},`;\n\n if (build.https) {\n code += `tls: {`;\n if (build.https.cert) code += `cert: \"${build.https.cert}\",`;\n if (build.https.key) code += `key: \"${build.https.key}\",`;\n if (build.https.passphrase)\n code += `passphrase: \"${build.https.passphrase}\",`;\n code += `},`;\n }\n\n code += `});`;\n\n return code;\n },\n };\n};\n\nexport { buildPlugin };\n"],"mappings":";;;;AAeA,MAAM,gBAAgB;AAEtB,MAAM,yBAAyB,KAAK;AAEpC,MAAM,eAAe,SAAwC;CACzD,MAAM,QAA8B,KAAK;CAEzC,MAAM,cAA2B,eAAe,KAAK,IAAI;AAEzD,QAAO;EACH,MAAM;EACN,OAAO;EACP,SAAS,WAAmC;GACxC,IAAI,SAAqB,EAAE;AAa3B,YAAS,SAXsB;IAC3B,KAAK;KACD,UAAU;KACV,YAAY,KAAK;KACjB,QAAQ;KACX;IACD,OAAO,EACH,eAAe,OAClB;IACJ,EAE6B,OAAO;GAErC,MAAM,iBAA6B,EAC/B,OAAO;IACH,KAAK;IACL,QAAQ,MAAM;IACd,eAAe;KACX,OAAO;KACP,QAAQ;MACJ,gBAAgB,MAAM;MACtB,QACI,YAAY,SAAS,WAAW,QAAQ;MAC/C;KACD,UAAU,CACN,GAAG,gBACH,SACH;KACJ;IACD,QAAQ,MAAM;IACjB,EACJ;AAED,YAAS,SAAS,QAAQ,eAAe;AAEzC,UAAO;;EAEX,YAAY,OAAgC;AACxC,OAAI,OAAO,cAAe,QAAO,KAAK;AACtC,UAAO;;EAEX,MAAM,OAAO,OAAoC;AAC7C,OAAI,OAAO,uBAAwB,QAAO,KAAK;GAE/C,IAAI,OAAe;AAEnB,WAAQ,wBAAwB,KAAK,MAAM;AAC3C,WAAQ;AAIR,OAAI,MAAM,SAAS,UAAU;AACzB,YAAQ;AACR,YAAQ;AACR,YAAQ;AACR,YAAQ;AAER,YAAQ;AACR,YAAQ;AACR,YAAQ;AAER,YAAQ;AAER,WAAO;;AAKX,WAAQ;AACR,WAAQ;AAER,OAAI,MAAM,SAAS,YACf,SAAQ,cAAc,MAAM,KAAK;AACrC,OAAI,MAAM,SAAS,IAAM,SAAQ,SAAS,MAAM,KAAK;AAErD,OAAI,MAAM,OAAO;AACb,YAAQ;AACR,QAAI,MAAM,MAAM,KAAM,SAAQ,UAAU,MAAM,MAAM,KAAK;AACzD,QAAI,MAAM,MAAM,IAAK,SAAQ,SAAS,MAAM,MAAM,IAAI;AACtD,QAAI,MAAM,MAAM,WACZ,SAAQ,gBAAgB,MAAM,MAAM,WAAW;AACnD,YAAQ;;AAGZ,WAAQ;AAER,UAAO;;EAEd"}
|
package/dist/vite/dev.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
let es_toolkit = require("es-toolkit");
|
|
3
|
+
let srvx = require("srvx");
|
|
4
|
+
|
|
5
|
+
const createMiddleware = ({ vite, server }) => {
|
|
6
|
+
return async (req, res, _next) => {
|
|
7
|
+
const protocol = `http${vite.config.server.https?.cert !== void 0 && vite.config.server.https?.key !== void 0 ? "s" : ""}`;
|
|
8
|
+
const host = process.env.HOST ?? "localhost";
|
|
9
|
+
const port = vite.config.server.port;
|
|
10
|
+
const path = req.url ?? "";
|
|
11
|
+
const url = new URL(`${protocol}://${host}:${port}${path}`);
|
|
12
|
+
const body = req.method !== "GET" && req.method !== "HEAD" ? req : void 0;
|
|
13
|
+
const request = new Request(url, {
|
|
14
|
+
method: req.method,
|
|
15
|
+
headers: req.headers,
|
|
16
|
+
body,
|
|
17
|
+
duplex: "half"
|
|
18
|
+
});
|
|
19
|
+
const response = await server.fetch(request);
|
|
20
|
+
res.statusCode = response.status;
|
|
21
|
+
response.headers.forEach((value, key) => {
|
|
22
|
+
res.setHeader(key, value);
|
|
23
|
+
});
|
|
24
|
+
if (!response.body) {
|
|
25
|
+
res.end();
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const reader = response.body.getReader();
|
|
29
|
+
const stream = async () => {
|
|
30
|
+
try {
|
|
31
|
+
while (true) {
|
|
32
|
+
const { done, value } = await reader.read();
|
|
33
|
+
if (done) break;
|
|
34
|
+
res.write(value);
|
|
35
|
+
}
|
|
36
|
+
res.end();
|
|
37
|
+
} catch {
|
|
38
|
+
res.end();
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
await stream();
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
const devPlugin = (opts) => {
|
|
45
|
+
const dev = opts.dev;
|
|
46
|
+
const https = opts.dev.https ?? {};
|
|
47
|
+
return {
|
|
48
|
+
name: "vitend/dev",
|
|
49
|
+
apply: "serve",
|
|
50
|
+
config(config) {
|
|
51
|
+
return (0, es_toolkit.toMerged)(config, {
|
|
52
|
+
build: {
|
|
53
|
+
ssr: true,
|
|
54
|
+
rollupOptions: { input: opts.entry }
|
|
55
|
+
},
|
|
56
|
+
server: {
|
|
57
|
+
host: dev.host,
|
|
58
|
+
port: dev.port,
|
|
59
|
+
...https.cert !== void 0 && https.key !== void 0 ? { https: {
|
|
60
|
+
cert: https.cert,
|
|
61
|
+
key: https.key,
|
|
62
|
+
passphrase: https.passphrase
|
|
63
|
+
} } : {}
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
},
|
|
67
|
+
configureServer: async (vite) => {
|
|
68
|
+
const serverOptions = (await vite.ssrLoadModule(opts.entry)).default;
|
|
69
|
+
const middleware = createMiddleware({
|
|
70
|
+
vite,
|
|
71
|
+
server: (0, srvx.serve)({
|
|
72
|
+
gracefulShutdown: false,
|
|
73
|
+
...serverOptions,
|
|
74
|
+
manual: true,
|
|
75
|
+
hostname: dev.host,
|
|
76
|
+
port: dev.port,
|
|
77
|
+
tls: {
|
|
78
|
+
cert: https.cert,
|
|
79
|
+
key: https.key,
|
|
80
|
+
passphrase: https.passphrase
|
|
81
|
+
}
|
|
82
|
+
})
|
|
83
|
+
});
|
|
84
|
+
vite.middlewares.use(middleware);
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
exports.devPlugin = devPlugin;
|
|
90
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","names":[],"sources":["../../src/vite/dev.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type { Server, ServerHandler, ServerOptions } from \"srvx\";\nimport type { Connect, Plugin, UserConfig, ViteDevServer } from \"vite\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedVitendOptions,\n} from \"#/@types/options/resolved\";\n\nimport { toMerged } from \"es-toolkit\";\nimport { serve } from \"srvx\";\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 _next: Connect.NextFunction,\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 host: string = process.env.HOST ?? \"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 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: req.headers,\n body,\n duplex: \"half\",\n } as RequestInit);\n\n const response: Response = await server.fetch(request);\n\n res.statusCode = response.status;\n\n response.headers.forEach((value: string, key: string): void => {\n res.setHeader(key, value);\n });\n\n if (!response.body) {\n res.end();\n return void 0;\n }\n\n const reader: ReadableStreamDefaultReader<Uint8Array<ArrayBuffer>> =\n response.body.getReader();\n\n const stream = async (): Promise<void> => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) break;\n\n res.write(value);\n }\n\n res.end();\n } catch {\n res.end();\n }\n };\n\n await stream();\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedVitendOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n return {\n name: \"vitend/dev\",\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host: dev.host,\n port: dev.port,\n ...(https.cert !== void 0 && https.key !== void 0\n ? {\n https: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n }\n : {}),\n },\n };\n\n return toMerged(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: Server<ServerHandler> = serve({\n // base\n gracefulShutdown: false,\n // user\n ...serverOptions,\n // override\n manual: true,\n hostname: dev.host,\n port: dev.port,\n tls: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n });\n\n const middleware: Middleware = createMiddleware({\n vite,\n server,\n });\n\n vite.middlewares.use(middleware);\n },\n };\n};\n\nexport { devPlugin };\n"],"mappings":";;;;AAmBA,MAAM,oBAAoB,EAAE,MAAM,aAAsC;AACpE,QAAO,OACH,KACA,KACA,UACgB;EAKhB,MAAM,WAAmB,OAHrB,KAAK,OAAO,OAAO,OAAO,SAAS,KAAK,KACxC,KAAK,OAAO,OAAO,OAAO,QAAQ,KAAK,IAED,MAAM;EAEhD,MAAM,OAAe,QAAQ,IAAI,QAAQ;EAEzC,MAAM,OAAe,KAAK,OAAO,OAAO;EAExC,MAAM,OAAe,IAAI,OAAO;EAEhC,MAAM,MAAW,IAAI,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,OAAO,OAAO;EAEhE,MAAM,OACF,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,MAAM,KAAK;EAE/D,MAAM,UAAmB,IAAI,QAAQ,KAAK;GACtC,QAAQ,IAAI;GACZ,SAAS,IAAI;GACb;GACA,QAAQ;GACX,CAAgB;EAEjB,MAAM,WAAqB,MAAM,OAAO,MAAM,QAAQ;AAEtD,MAAI,aAAa,SAAS;AAE1B,WAAS,QAAQ,SAAS,OAAe,QAAsB;AAC3D,OAAI,UAAU,KAAK,MAAM;IAC3B;AAEF,MAAI,CAAC,SAAS,MAAM;AAChB,OAAI,KAAK;AACT;;EAGJ,MAAM,SACF,SAAS,KAAK,WAAW;EAE7B,MAAM,SAAS,YAA2B;AACtC,OAAI;AACA,WAAO,MAAM;KACT,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAE3C,SAAI,KAAM;AAEV,SAAI,MAAM,MAAM;;AAGpB,QAAI,KAAK;WACL;AACJ,QAAI,KAAK;;;AAIjB,QAAM,QAAQ;;;AAMtB,MAAM,aAAa,SAAwC;CACvD,MAAM,MAA0B,KAAK;CACrC,MAAM,QAA8B,KAAK,IAAI,SAAS,EAAE;AAExD,QAAO;EACH,MAAM;EACN,OAAO;EACP,OAAO,QAAgC;AAuBnC,mCAAgB,QAtBc;IAC1B,OAAO;KACH,KAAK;KACL,eAAe,EACX,OAAO,KAAK,OACf;KACJ;IACD,QAAQ;KACJ,MAAM,IAAI;KACV,MAAM,IAAI;KACV,GAAI,MAAM,SAAS,KAAK,KAAK,MAAM,QAAQ,KAAK,IAC1C,EACI,OAAO;MACH,MAAM,MAAM;MACZ,KAAK,MAAM;MACX,YAAY,MAAM;MACrB,EACJ,GACD,EAAE;KACX;IACJ,CAEiC;;EAEtC,iBAAiB,OAAO,SAAuC;GAC3D,MAAM,iBACF,MAAM,KAAK,cAAc,KAAK,MAAM,EACtC;GAkBF,MAAM,aAAyB,iBAAiB;IAC5C;IACA,wBAlBwC;KAExC,kBAAkB;KAElB,GAAG;KAEH,QAAQ;KACR,UAAU,IAAI;KACd,MAAM,IAAI;KACV,KAAK;MACD,MAAM,MAAM;MACZ,KAAK,MAAM;MACX,YAAY,MAAM;MACrB;KACJ,CAAC;IAKD,CAAC;AAEF,QAAK,YAAY,IAAI,WAAW;;EAEvC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { toMerged } from "es-toolkit";
|
|
2
|
+
import { serve } from "srvx";
|
|
3
|
+
|
|
4
|
+
const createMiddleware = ({ vite, server }) => {
|
|
5
|
+
return async (req, res, _next) => {
|
|
6
|
+
const protocol = `http${vite.config.server.https?.cert !== void 0 && vite.config.server.https?.key !== void 0 ? "s" : ""}`;
|
|
7
|
+
const host = process.env.HOST ?? "localhost";
|
|
8
|
+
const port = vite.config.server.port;
|
|
9
|
+
const path = req.url ?? "";
|
|
10
|
+
const url = new URL(`${protocol}://${host}:${port}${path}`);
|
|
11
|
+
const body = req.method !== "GET" && req.method !== "HEAD" ? req : void 0;
|
|
12
|
+
const request = new Request(url, {
|
|
13
|
+
method: req.method,
|
|
14
|
+
headers: req.headers,
|
|
15
|
+
body,
|
|
16
|
+
duplex: "half"
|
|
17
|
+
});
|
|
18
|
+
const response = await server.fetch(request);
|
|
19
|
+
res.statusCode = response.status;
|
|
20
|
+
response.headers.forEach((value, key) => {
|
|
21
|
+
res.setHeader(key, value);
|
|
22
|
+
});
|
|
23
|
+
if (!response.body) {
|
|
24
|
+
res.end();
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
const reader = response.body.getReader();
|
|
28
|
+
const stream = async () => {
|
|
29
|
+
try {
|
|
30
|
+
while (true) {
|
|
31
|
+
const { done, value } = await reader.read();
|
|
32
|
+
if (done) break;
|
|
33
|
+
res.write(value);
|
|
34
|
+
}
|
|
35
|
+
res.end();
|
|
36
|
+
} catch {
|
|
37
|
+
res.end();
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
await stream();
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
const devPlugin = (opts) => {
|
|
44
|
+
const dev = opts.dev;
|
|
45
|
+
const https = opts.dev.https ?? {};
|
|
46
|
+
return {
|
|
47
|
+
name: "vitend/dev",
|
|
48
|
+
apply: "serve",
|
|
49
|
+
config(config) {
|
|
50
|
+
return toMerged(config, {
|
|
51
|
+
build: {
|
|
52
|
+
ssr: true,
|
|
53
|
+
rollupOptions: { input: opts.entry }
|
|
54
|
+
},
|
|
55
|
+
server: {
|
|
56
|
+
host: dev.host,
|
|
57
|
+
port: dev.port,
|
|
58
|
+
...https.cert !== void 0 && https.key !== void 0 ? { https: {
|
|
59
|
+
cert: https.cert,
|
|
60
|
+
key: https.key,
|
|
61
|
+
passphrase: https.passphrase
|
|
62
|
+
} } : {}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
configureServer: async (vite) => {
|
|
67
|
+
const serverOptions = (await vite.ssrLoadModule(opts.entry)).default;
|
|
68
|
+
const middleware = createMiddleware({
|
|
69
|
+
vite,
|
|
70
|
+
server: serve({
|
|
71
|
+
gracefulShutdown: false,
|
|
72
|
+
...serverOptions,
|
|
73
|
+
manual: true,
|
|
74
|
+
hostname: dev.host,
|
|
75
|
+
port: dev.port,
|
|
76
|
+
tls: {
|
|
77
|
+
cert: https.cert,
|
|
78
|
+
key: https.key,
|
|
79
|
+
passphrase: https.passphrase
|
|
80
|
+
}
|
|
81
|
+
})
|
|
82
|
+
});
|
|
83
|
+
vite.middlewares.use(middleware);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export { devPlugin };
|
|
89
|
+
//# sourceMappingURL=dev.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.mjs","names":[],"sources":["../../src/vite/dev.ts"],"sourcesContent":["import type HTTP from \"node:http\";\n\nimport type { Server, ServerHandler, ServerOptions } from \"srvx\";\nimport type { Connect, Plugin, UserConfig, ViteDevServer } from \"vite\";\n\nimport type {\n ResolvedDevOptions,\n ResolvedHttpsOptions,\n ResolvedVitendOptions,\n} from \"#/@types/options/resolved\";\n\nimport { toMerged } from \"es-toolkit\";\nimport { serve } from \"srvx\";\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 _next: Connect.NextFunction,\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 host: string = process.env.HOST ?? \"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 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: req.headers,\n body,\n duplex: \"half\",\n } as RequestInit);\n\n const response: Response = await server.fetch(request);\n\n res.statusCode = response.status;\n\n response.headers.forEach((value: string, key: string): void => {\n res.setHeader(key, value);\n });\n\n if (!response.body) {\n res.end();\n return void 0;\n }\n\n const reader: ReadableStreamDefaultReader<Uint8Array<ArrayBuffer>> =\n response.body.getReader();\n\n const stream = async (): Promise<void> => {\n try {\n while (true) {\n const { done, value } = await reader.read();\n\n if (done) break;\n\n res.write(value);\n }\n\n res.end();\n } catch {\n res.end();\n }\n };\n\n await stream();\n };\n};\n\ntype Middleware = ReturnType<typeof createMiddleware>;\n\nconst devPlugin = (opts: ResolvedVitendOptions): Plugin => {\n const dev: ResolvedDevOptions = opts.dev;\n const https: ResolvedHttpsOptions = opts.dev.https ?? {};\n\n return {\n name: \"vitend/dev\",\n apply: \"serve\",\n config(config: UserConfig): UserConfig {\n const devConfig: UserConfig = {\n build: {\n ssr: true,\n rollupOptions: {\n input: opts.entry,\n },\n },\n server: {\n host: dev.host,\n port: dev.port,\n ...(https.cert !== void 0 && https.key !== void 0\n ? {\n https: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n }\n : {}),\n },\n };\n\n return toMerged(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: Server<ServerHandler> = serve({\n // base\n gracefulShutdown: false,\n // user\n ...serverOptions,\n // override\n manual: true,\n hostname: dev.host,\n port: dev.port,\n tls: {\n cert: https.cert,\n key: https.key,\n passphrase: https.passphrase,\n },\n });\n\n const middleware: Middleware = createMiddleware({\n vite,\n server,\n });\n\n vite.middlewares.use(middleware);\n },\n };\n};\n\nexport { devPlugin };\n"],"mappings":";;;AAmBA,MAAM,oBAAoB,EAAE,MAAM,aAAsC;AACpE,QAAO,OACH,KACA,KACA,UACgB;EAKhB,MAAM,WAAmB,OAHrB,KAAK,OAAO,OAAO,OAAO,SAAS,KAAK,KACxC,KAAK,OAAO,OAAO,OAAO,QAAQ,KAAK,IAED,MAAM;EAEhD,MAAM,OAAe,QAAQ,IAAI,QAAQ;EAEzC,MAAM,OAAe,KAAK,OAAO,OAAO;EAExC,MAAM,OAAe,IAAI,OAAO;EAEhC,MAAM,MAAW,IAAI,IAAI,GAAG,SAAS,KAAK,KAAK,GAAG,OAAO,OAAO;EAEhE,MAAM,OACF,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,MAAM,KAAK;EAE/D,MAAM,UAAmB,IAAI,QAAQ,KAAK;GACtC,QAAQ,IAAI;GACZ,SAAS,IAAI;GACb;GACA,QAAQ;GACX,CAAgB;EAEjB,MAAM,WAAqB,MAAM,OAAO,MAAM,QAAQ;AAEtD,MAAI,aAAa,SAAS;AAE1B,WAAS,QAAQ,SAAS,OAAe,QAAsB;AAC3D,OAAI,UAAU,KAAK,MAAM;IAC3B;AAEF,MAAI,CAAC,SAAS,MAAM;AAChB,OAAI,KAAK;AACT;;EAGJ,MAAM,SACF,SAAS,KAAK,WAAW;EAE7B,MAAM,SAAS,YAA2B;AACtC,OAAI;AACA,WAAO,MAAM;KACT,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,MAAM;AAE3C,SAAI,KAAM;AAEV,SAAI,MAAM,MAAM;;AAGpB,QAAI,KAAK;WACL;AACJ,QAAI,KAAK;;;AAIjB,QAAM,QAAQ;;;AAMtB,MAAM,aAAa,SAAwC;CACvD,MAAM,MAA0B,KAAK;CACrC,MAAM,QAA8B,KAAK,IAAI,SAAS,EAAE;AAExD,QAAO;EACH,MAAM;EACN,OAAO;EACP,OAAO,QAAgC;AAuBnC,UAAO,SAAS,QAtBc;IAC1B,OAAO;KACH,KAAK;KACL,eAAe,EACX,OAAO,KAAK,OACf;KACJ;IACD,QAAQ;KACJ,MAAM,IAAI;KACV,MAAM,IAAI;KACV,GAAI,MAAM,SAAS,KAAK,KAAK,MAAM,QAAQ,KAAK,IAC1C,EACI,OAAO;MACH,MAAM,MAAM;MACZ,KAAK,MAAM;MACX,YAAY,MAAM;MACrB,EACJ,GACD,EAAE;KACX;IACJ,CAEiC;;EAEtC,iBAAiB,OAAO,SAAuC;GAC3D,MAAM,iBACF,MAAM,KAAK,cAAc,KAAK,MAAM,EACtC;GAkBF,MAAM,aAAyB,iBAAiB;IAC5C;IACA,QAlBkC,MAAM;KAExC,kBAAkB;KAElB,GAAG;KAEH,QAAQ;KACR,UAAU,IAAI;KACd,MAAM,IAAI;KACV,KAAK;MACD,MAAM,MAAM;MACZ,KAAK,MAAM;MACX,YAAY,MAAM;MACrB;KACJ,CAAC;IAKD,CAAC;AAEF,QAAK,YAAY,IAAI,WAAW;;EAEvC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { VitendOptions } from "../@types/options/default.js";
|
|
2
|
+
import { Plugin } from "vite";
|
|
3
|
+
/**
|
|
4
|
+
* The `vitend` plugin.
|
|
5
|
+
*
|
|
6
|
+
* ### Example
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* // ./vite.config.ts
|
|
10
|
+
*
|
|
11
|
+
* import { defineConfig } from "vite";
|
|
12
|
+
* import { vitend } from "vitend/vite";
|
|
13
|
+
*
|
|
14
|
+
* export default defineConfig({
|
|
15
|
+
* plugins: [
|
|
16
|
+
* vitend(),
|
|
17
|
+
* ],
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
declare const vitend: (options?: VitendOptions) => Plugin[];
|
|
22
|
+
export { vitend };
|
|
23
|
+
//# sourceMappingURL=vitend.d.ts.map
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
|
|
2
|
+
const require_options = require('../functions/options.js');
|
|
3
|
+
const require_build = require('./build.js');
|
|
4
|
+
const require_dev = require('./dev.js');
|
|
5
|
+
let node_path = require("node:path");
|
|
6
|
+
node_path = require_rolldown_runtime.__toESM(node_path);
|
|
7
|
+
let rollup_plugin_copy = require("rollup-plugin-copy");
|
|
8
|
+
rollup_plugin_copy = require_rolldown_runtime.__toESM(rollup_plugin_copy);
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The `vitend` plugin.
|
|
12
|
+
*
|
|
13
|
+
* ### Example
|
|
14
|
+
*
|
|
15
|
+
* ```ts
|
|
16
|
+
* // ./vite.config.ts
|
|
17
|
+
*
|
|
18
|
+
* import { defineConfig } from "vite";
|
|
19
|
+
* import { vitend } from "vitend/vite";
|
|
20
|
+
*
|
|
21
|
+
* export default defineConfig({
|
|
22
|
+
* plugins: [
|
|
23
|
+
* vitend(),
|
|
24
|
+
* ],
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
const vitend = (options) => {
|
|
29
|
+
const opts = require_options.createOptions(options);
|
|
30
|
+
const build = opts.build;
|
|
31
|
+
return [
|
|
32
|
+
require_dev.devPlugin({ ...opts }),
|
|
33
|
+
require_build.buildPlugin({ ...opts }),
|
|
34
|
+
...build.mode === "default" && build.copyPublicDir ? [(0, rollup_plugin_copy.default)({
|
|
35
|
+
hook: "closeBundle",
|
|
36
|
+
targets: [{
|
|
37
|
+
src: node_path.resolve(build.publicDir, "**", "*"),
|
|
38
|
+
dest: node_path.resolve(build.outputDir, build.publicDir)
|
|
39
|
+
}]
|
|
40
|
+
})] : []
|
|
41
|
+
];
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.vitend = vitend;
|
|
45
|
+
//# sourceMappingURL=vitend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitend.js","names":["createOptions","devPlugin","buildPlugin","Path"],"sources":["../../src/vite/vitend.ts"],"sourcesContent":["import type { Plugin } from \"vite\";\n\nimport type { VitendOptions } from \"#/@types/options/default\";\nimport type {\n ResolvedBuildOptions,\n ResolvedVitendOptions,\n} from \"#/@types/options/resolved\";\n\nimport * as Path from \"node:path\";\n\nimport copy from \"rollup-plugin-copy\";\n\nimport { createOptions } from \"#/functions/options\";\nimport { buildPlugin } from \"#/vite/build\";\nimport { devPlugin } from \"#/vite/dev\";\n\n/**\n * The `vitend` plugin.\n *\n * ### Example\n *\n * ```ts\n * // ./vite.config.ts\n *\n * import { defineConfig } from \"vite\";\n * import { vitend } from \"vitend/vite\";\n *\n * export default defineConfig({\n * plugins: [\n * vitend(),\n * ],\n * });\n * ```\n */\nconst vitend = (options?: VitendOptions): Plugin[] => {\n const opts: ResolvedVitendOptions = createOptions(options);\n\n const build: ResolvedBuildOptions = opts.build;\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...(build.mode === \"default\" && build.copyPublicDir\n ? [\n copy({\n hook: \"closeBundle\",\n targets: [\n {\n src: Path.resolve(build.publicDir, \"**\", \"*\"),\n dest: Path.resolve(\n build.outputDir,\n build.publicDir,\n ),\n },\n ],\n }),\n ]\n : []),\n ];\n};\n\nexport { vitend };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,UAAU,YAAsC;CAClD,MAAM,OAA8BA,8BAAc,QAAQ;CAE1D,MAAM,QAA8B,KAAK;AAEzC,QAAO;EACHC,sBAAU,EACN,GAAG,MACN,CAAC;EACFC,0BAAY,EACR,GAAG,MACN,CAAC;EACF,GAAI,MAAM,SAAS,aAAa,MAAM,gBAChC,iCACS;GACD,MAAM;GACN,SAAS,CACL;IACI,KAAKC,UAAK,QAAQ,MAAM,WAAW,MAAM,IAAI;IAC7C,MAAMA,UAAK,QACP,MAAM,WACN,MAAM,UACT;IACJ,CACJ;GACJ,CAAC,CACL,GACD,EAAE;EACX"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { createOptions } from "../functions/options.mjs";
|
|
2
|
+
import { buildPlugin } from "./build.mjs";
|
|
3
|
+
import { devPlugin } from "./dev.mjs";
|
|
4
|
+
import * as Path from "node:path";
|
|
5
|
+
import copy from "rollup-plugin-copy";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* The `vitend` plugin.
|
|
9
|
+
*
|
|
10
|
+
* ### Example
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* // ./vite.config.ts
|
|
14
|
+
*
|
|
15
|
+
* import { defineConfig } from "vite";
|
|
16
|
+
* import { vitend } from "vitend/vite";
|
|
17
|
+
*
|
|
18
|
+
* export default defineConfig({
|
|
19
|
+
* plugins: [
|
|
20
|
+
* vitend(),
|
|
21
|
+
* ],
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
const vitend = (options) => {
|
|
26
|
+
const opts = createOptions(options);
|
|
27
|
+
const build = opts.build;
|
|
28
|
+
return [
|
|
29
|
+
devPlugin({ ...opts }),
|
|
30
|
+
buildPlugin({ ...opts }),
|
|
31
|
+
...build.mode === "default" && build.copyPublicDir ? [copy({
|
|
32
|
+
hook: "closeBundle",
|
|
33
|
+
targets: [{
|
|
34
|
+
src: Path.resolve(build.publicDir, "**", "*"),
|
|
35
|
+
dest: Path.resolve(build.outputDir, build.publicDir)
|
|
36
|
+
}]
|
|
37
|
+
})] : []
|
|
38
|
+
];
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export { vitend };
|
|
42
|
+
//# sourceMappingURL=vitend.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vitend.mjs","names":[],"sources":["../../src/vite/vitend.ts"],"sourcesContent":["import type { Plugin } from \"vite\";\n\nimport type { VitendOptions } from \"#/@types/options/default\";\nimport type {\n ResolvedBuildOptions,\n ResolvedVitendOptions,\n} from \"#/@types/options/resolved\";\n\nimport * as Path from \"node:path\";\n\nimport copy from \"rollup-plugin-copy\";\n\nimport { createOptions } from \"#/functions/options\";\nimport { buildPlugin } from \"#/vite/build\";\nimport { devPlugin } from \"#/vite/dev\";\n\n/**\n * The `vitend` plugin.\n *\n * ### Example\n *\n * ```ts\n * // ./vite.config.ts\n *\n * import { defineConfig } from \"vite\";\n * import { vitend } from \"vitend/vite\";\n *\n * export default defineConfig({\n * plugins: [\n * vitend(),\n * ],\n * });\n * ```\n */\nconst vitend = (options?: VitendOptions): Plugin[] => {\n const opts: ResolvedVitendOptions = createOptions(options);\n\n const build: ResolvedBuildOptions = opts.build;\n\n return [\n devPlugin({\n ...opts,\n }),\n buildPlugin({\n ...opts,\n }),\n ...(build.mode === \"default\" && build.copyPublicDir\n ? [\n copy({\n hook: \"closeBundle\",\n targets: [\n {\n src: Path.resolve(build.publicDir, \"**\", \"*\"),\n dest: Path.resolve(\n build.outputDir,\n build.publicDir,\n ),\n },\n ],\n }),\n ]\n : []),\n ];\n};\n\nexport { vitend };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAkCA,MAAM,UAAU,YAAsC;CAClD,MAAM,OAA8B,cAAc,QAAQ;CAE1D,MAAM,QAA8B,KAAK;AAEzC,QAAO;EACH,UAAU,EACN,GAAG,MACN,CAAC;EACF,YAAY,EACR,GAAG,MACN,CAAC;EACF,GAAI,MAAM,SAAS,aAAa,MAAM,gBAChC,CACI,KAAK;GACD,MAAM;GACN,SAAS,CACL;IACI,KAAK,KAAK,QAAQ,MAAM,WAAW,MAAM,IAAI;IAC7C,MAAM,KAAK,QACP,MAAM,WACN,MAAM,UACT;IACJ,CACJ;GACJ,CAAC,CACL,GACD,EAAE;EACX"}
|
package/dist/vite.d.ts
ADDED
package/dist/vite.js
ADDED
package/dist/vite.mjs
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "vitend",
|
|
3
|
+
"version": "0.0.0-dev.20260125.f95058a",
|
|
4
|
+
"description": "A library for backend development with Vite",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"vite",
|
|
7
|
+
"plugin",
|
|
8
|
+
"backend",
|
|
9
|
+
"development",
|
|
10
|
+
"ts",
|
|
11
|
+
"typescript",
|
|
12
|
+
"js",
|
|
13
|
+
"javascript"
|
|
14
|
+
],
|
|
15
|
+
"homepage": "https://github.com/alpheusday/vitend",
|
|
16
|
+
"bugs": "https://github.com/alpheusday/vitend/issues",
|
|
17
|
+
"repository": {
|
|
18
|
+
"type": "git",
|
|
19
|
+
"url": "https://github.com/alpheusday/vitend.git",
|
|
20
|
+
"directory": "package"
|
|
21
|
+
},
|
|
22
|
+
"license": "MIT",
|
|
23
|
+
"author": {
|
|
24
|
+
"name": "Alpheus",
|
|
25
|
+
"email": "contact@alphe.us"
|
|
26
|
+
},
|
|
27
|
+
"exports": {
|
|
28
|
+
".": {
|
|
29
|
+
"types": "./dist/index.d.ts",
|
|
30
|
+
"import": "./dist/index.mjs",
|
|
31
|
+
"require": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"./node": {
|
|
34
|
+
"types": "./dist/node.d.ts",
|
|
35
|
+
"import": "./dist/node.mjs",
|
|
36
|
+
"require": "./dist/node.js"
|
|
37
|
+
},
|
|
38
|
+
"./vite": {
|
|
39
|
+
"types": "./dist/vite.d.ts",
|
|
40
|
+
"import": "./dist/vite.mjs",
|
|
41
|
+
"require": "./dist/vite.js"
|
|
42
|
+
},
|
|
43
|
+
"./runtime": {
|
|
44
|
+
"types": "./dist/runtime.d.ts",
|
|
45
|
+
"import": "./dist/runtime.mjs",
|
|
46
|
+
"require": "./dist/runtime.js"
|
|
47
|
+
},
|
|
48
|
+
"./package.json": "./package.json"
|
|
49
|
+
},
|
|
50
|
+
"main": "./dist/index.js",
|
|
51
|
+
"module": "./dist/index.mjs",
|
|
52
|
+
"types": "./dist/index.d.ts",
|
|
53
|
+
"files": [
|
|
54
|
+
"dist"
|
|
55
|
+
],
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"es-toolkit": "^1.40.0",
|
|
58
|
+
"rollup-plugin-copy": "^3.5.0",
|
|
59
|
+
"srvx": "~0.10.0",
|
|
60
|
+
"ts-vista": "~0.2.3"
|
|
61
|
+
},
|
|
62
|
+
"devDependencies": {
|
|
63
|
+
"vite": "7.0.0"
|
|
64
|
+
},
|
|
65
|
+
"peerDependencies": {
|
|
66
|
+
"vite": "^7.0.0"
|
|
67
|
+
}
|
|
68
|
+
}
|