@untestutils/sveltekit 0.5.3 → 0.6.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/dist/index.d.mts +8 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +60 -15
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { type Driver, type FrameworkBaseOptions, type Recipe } from "@untestutils/core";
|
|
2
2
|
export type SvelteKitRun = "preview" | "server" | "dev";
|
|
3
3
|
export type ViteConfigOverride = Record<string, unknown>;
|
|
4
|
+
/** JSON-serializable patches merged onto `svelte.config.*` (kit / preprocess plain fields). */
|
|
5
|
+
export type KitConfigOverride = Record<string, unknown>;
|
|
4
6
|
export interface SvelteKitOptions extends FrameworkBaseOptions {
|
|
5
7
|
run?: SvelteKitRun;
|
|
6
8
|
/** adapter-node output entry relative to root (default `build/index.js`). */
|
|
7
9
|
serverEntry?: string;
|
|
8
10
|
/** Merged onto the app vite.config (SvelteKit is a Vite plugin). */
|
|
9
11
|
viteConfig?: ViteConfigOverride;
|
|
12
|
+
/**
|
|
13
|
+
* Merged onto `svelte.config.*` via backup/restore (`withMergedConfigOverride`).
|
|
14
|
+
* Prefer plain `kit.*` fields (e.g. `appDir`) — adapters/functions are not serializable.
|
|
15
|
+
*/
|
|
16
|
+
kitConfig?: KitConfigOverride;
|
|
10
17
|
}
|
|
11
|
-
export type SvelteKitMatrixVariant = Partial<Pick<SvelteKitOptions, "env" | "hashInputs" | "run" | "serverEntry" | "readyPath" | "readyTimeoutMs" | "workspaceDeps" | "viteConfig">>;
|
|
18
|
+
export type SvelteKitMatrixVariant = Partial<Pick<SvelteKitOptions, "env" | "hashInputs" | "run" | "serverEntry" | "readyPath" | "readyTimeoutMs" | "workspaceDeps" | "viteConfig" | "kitConfig">>;
|
|
12
19
|
/**
|
|
13
20
|
* SvelteKit Recipe factory.
|
|
14
21
|
* `run: 'preview'` (default) — `vite build` + `vite preview`
|
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import { type Driver, type FrameworkBaseOptions, type Recipe } from '@untestutils/core';
|
|
2
2
|
export type SvelteKitRun = 'preview' | 'server' | 'dev';
|
|
3
3
|
export type ViteConfigOverride = Record<string, unknown>;
|
|
4
|
+
/** JSON-serializable patches merged onto `svelte.config.*` (kit / preprocess plain fields). */
|
|
5
|
+
export type KitConfigOverride = Record<string, unknown>;
|
|
4
6
|
export interface SvelteKitOptions extends FrameworkBaseOptions {
|
|
5
7
|
run?: SvelteKitRun;
|
|
6
8
|
/** adapter-node output entry relative to root (default `build/index.js`). */
|
|
7
9
|
serverEntry?: string;
|
|
8
10
|
/** Merged onto the app vite.config (SvelteKit is a Vite plugin). */
|
|
9
11
|
viteConfig?: ViteConfigOverride;
|
|
12
|
+
/**
|
|
13
|
+
* Merged onto `svelte.config.*` via backup/restore (`withMergedConfigOverride`).
|
|
14
|
+
* Prefer plain `kit.*` fields (e.g. `appDir`) — adapters/functions are not serializable.
|
|
15
|
+
*/
|
|
16
|
+
kitConfig?: KitConfigOverride;
|
|
10
17
|
}
|
|
11
|
-
export type SvelteKitMatrixVariant = Partial<Pick<SvelteKitOptions, 'env' | 'hashInputs' | 'run' | 'serverEntry' | 'readyPath' | 'readyTimeoutMs' | 'workspaceDeps' | 'viteConfig'>>;
|
|
18
|
+
export type SvelteKitMatrixVariant = Partial<Pick<SvelteKitOptions, 'env' | 'hashInputs' | 'run' | 'serverEntry' | 'readyPath' | 'readyTimeoutMs' | 'workspaceDeps' | 'viteConfig' | 'kitConfig'>>;
|
|
12
19
|
/**
|
|
13
20
|
* SvelteKit Recipe factory.
|
|
14
21
|
* `run: 'preview'` (default) — `vite build` + `vite preview`
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAcL,KAAK,MAAM,EACX,KAAK,oBAAoB,EACzB,KAAK,MAAM,EACZ,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,KAAK,CAAC;AAExD,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzD,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC5D,GAAG,CAAC,EAAE,YAAY,CAAC;IACnB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC;;;OAGG;IACH,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,IAAI,CACF,gBAAgB,EACd,KAAK,GACL,YAAY,GACZ,KAAK,GACL,aAAa,GACb,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,WAAW,CACd,CACF,CAAC;AA6CF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAyJ9C,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,MAAM,CACpB,IAAI,EAAE,gBAAgB,EACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,GAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBxB;AAED,eAAe,SAAS,CAAC"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
2
|
import { join, resolve } from "pathe";
|
|
3
|
-
import { cliFrameworkRecipe, configOverrideHashInput, deepMergePlain, defineDriver, frameworkRoots, loopbackUrl, matrixRecipe, resolveBin, serializeViteMergeConfigModule, writeEphemeralConfig } from "@untestutils/core";
|
|
3
|
+
import { cliFrameworkRecipe, configOverrideHashInput, deepMergePlain, defineDriver, findFirstExistingConfig, frameworkRoots, installMergedConfigOverride, loopbackUrl, matrixRecipe, resolveBin, runCommand, serializeViteMergeConfigModule, writeEphemeralConfig } from "@untestutils/core";
|
|
4
|
+
const SVELTE_CONFIG_NAMES = [
|
|
5
|
+
"svelte.config.js",
|
|
6
|
+
"svelte.config.ts",
|
|
7
|
+
"svelte.config.mjs",
|
|
8
|
+
"svelte.config.mts",
|
|
9
|
+
"svelte.config.cjs"
|
|
10
|
+
];
|
|
4
11
|
function resolveViteBin(root) {
|
|
5
12
|
return resolveBin({
|
|
6
13
|
label: "sveltekit",
|
|
@@ -13,8 +20,12 @@ function resolveViteBin(root) {
|
|
|
13
20
|
function hashInputsFor(opts, root, extra) {
|
|
14
21
|
const inputs = [...opts.hashInputs ?? [root], ...extra];
|
|
15
22
|
if (opts.viteConfig) inputs.push(configOverrideHashInput("viteConfig", opts.viteConfig));
|
|
23
|
+
if (opts.kitConfig) inputs.push(configOverrideHashInput("kitConfig", opts.kitConfig));
|
|
16
24
|
return inputs;
|
|
17
25
|
}
|
|
26
|
+
function resolveSvelteConfigPath(root) {
|
|
27
|
+
return findFirstExistingConfig(root, SVELTE_CONFIG_NAMES) ?? join(root, "svelte.config.js");
|
|
28
|
+
}
|
|
18
29
|
async function viteConfigArgs(root, outDir, viteConfig) {
|
|
19
30
|
if (!viteConfig || !Object.keys(viteConfig).length) return [];
|
|
20
31
|
const configPath = join(outDir, "vite.untestutils.mjs");
|
|
@@ -30,7 +41,9 @@ export const sveltekit = defineDriver((opts) => {
|
|
|
30
41
|
const runMode = opts.run ?? "preview";
|
|
31
42
|
const id = opts.id ?? `sveltekit-${runMode}-${root.split("/").pop()}`;
|
|
32
43
|
const bin = () => resolveViteBin(root);
|
|
44
|
+
const hasKit = Boolean(opts.kitConfig && Object.keys(opts.kitConfig).length);
|
|
33
45
|
if (runMode === "dev") {
|
|
46
|
+
let restore;
|
|
34
47
|
return cliFrameworkRecipe({
|
|
35
48
|
id,
|
|
36
49
|
root,
|
|
@@ -42,6 +55,9 @@ export const sveltekit = defineDriver((opts) => {
|
|
|
42
55
|
readyTimeoutMs: opts.readyTimeoutMs,
|
|
43
56
|
workspaceDeps: opts.workspaceDeps,
|
|
44
57
|
start: async ({ port, outDir }) => {
|
|
58
|
+
if (hasKit) {
|
|
59
|
+
restore = await installMergedConfigOverride(resolveSvelteConfigPath(root), opts.kitConfig);
|
|
60
|
+
}
|
|
45
61
|
const configArgs = await viteConfigArgs(root, outDir, opts.viteConfig);
|
|
46
62
|
return {
|
|
47
63
|
command: process.execPath,
|
|
@@ -57,6 +73,10 @@ export const sveltekit = defineDriver((opts) => {
|
|
|
57
73
|
],
|
|
58
74
|
cwd: root
|
|
59
75
|
};
|
|
76
|
+
},
|
|
77
|
+
afterStop: async () => {
|
|
78
|
+
await restore?.();
|
|
79
|
+
restore = undefined;
|
|
60
80
|
}
|
|
61
81
|
});
|
|
62
82
|
}
|
|
@@ -73,16 +93,28 @@ export const sveltekit = defineDriver((opts) => {
|
|
|
73
93
|
readyTimeoutMs: opts.readyTimeoutMs,
|
|
74
94
|
workspaceDeps: opts.workspaceDeps,
|
|
75
95
|
prepare: async ({ outDir }) => {
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
96
|
+
const restore = hasKit ? await installMergedConfigOverride(resolveSvelteConfigPath(root), opts.kitConfig) : undefined;
|
|
97
|
+
try {
|
|
98
|
+
const configArgs = await viteConfigArgs(root, outDir, opts.viteConfig);
|
|
99
|
+
const result = await runCommand(process.execPath, [
|
|
80
100
|
bin(),
|
|
81
101
|
"build",
|
|
82
102
|
...configArgs
|
|
83
|
-
],
|
|
84
|
-
|
|
85
|
-
|
|
103
|
+
], {
|
|
104
|
+
cwd: root,
|
|
105
|
+
env: {
|
|
106
|
+
...process.env,
|
|
107
|
+
...opts.env,
|
|
108
|
+
OUT_DIR: outDir
|
|
109
|
+
},
|
|
110
|
+
timeoutMs: opts.readyTimeoutMs ?? 3e5
|
|
111
|
+
});
|
|
112
|
+
if (result.exitCode !== 0) {
|
|
113
|
+
throw new Error(`[untestutils/sveltekit] prepare failed (${result.exitCode}):\n${result.stderr.slice(-2e3)}\n${result.stdout.slice(-1e3)}`);
|
|
114
|
+
}
|
|
115
|
+
} finally {
|
|
116
|
+
await restore?.();
|
|
117
|
+
}
|
|
86
118
|
},
|
|
87
119
|
verifyAfterPrepare: () => {
|
|
88
120
|
const entry = join(root, entryRel);
|
|
@@ -114,16 +146,28 @@ export const sveltekit = defineDriver((opts) => {
|
|
|
114
146
|
readyTimeoutMs: opts.readyTimeoutMs,
|
|
115
147
|
workspaceDeps: opts.workspaceDeps,
|
|
116
148
|
prepare: async ({ outDir }) => {
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
149
|
+
const restore = hasKit ? await installMergedConfigOverride(resolveSvelteConfigPath(root), opts.kitConfig) : undefined;
|
|
150
|
+
try {
|
|
151
|
+
const configArgs = await viteConfigArgs(root, outDir, opts.viteConfig);
|
|
152
|
+
const result = await runCommand(process.execPath, [
|
|
121
153
|
bin(),
|
|
122
154
|
"build",
|
|
123
155
|
...configArgs
|
|
124
|
-
],
|
|
125
|
-
|
|
126
|
-
|
|
156
|
+
], {
|
|
157
|
+
cwd: root,
|
|
158
|
+
env: {
|
|
159
|
+
...process.env,
|
|
160
|
+
...opts.env,
|
|
161
|
+
OUT_DIR: outDir
|
|
162
|
+
},
|
|
163
|
+
timeoutMs: opts.readyTimeoutMs ?? 3e5
|
|
164
|
+
});
|
|
165
|
+
if (result.exitCode !== 0) {
|
|
166
|
+
throw new Error(`[untestutils/sveltekit] prepare failed (${result.exitCode}):\n${result.stderr.slice(-2e3)}\n${result.stdout.slice(-1e3)}`);
|
|
167
|
+
}
|
|
168
|
+
} finally {
|
|
169
|
+
await restore?.();
|
|
170
|
+
}
|
|
127
171
|
},
|
|
128
172
|
start: async ({ port, host, outDir }) => {
|
|
129
173
|
const configArgs = await viteConfigArgs(root, outDir, opts.viteConfig);
|
|
@@ -157,6 +201,7 @@ export function matrix(base, variants) {
|
|
|
157
201
|
...patch.env ?? {}
|
|
158
202
|
},
|
|
159
203
|
viteConfig: b.viteConfig || patch.viteConfig ? deepMergePlain(b.viteConfig ?? {}, patch.viteConfig ?? {}) : undefined,
|
|
204
|
+
kitConfig: b.kitConfig || patch.kitConfig ? deepMergePlain(b.kitConfig ?? {}, patch.kitConfig ?? {}) : undefined,
|
|
160
205
|
hashInputs: [
|
|
161
206
|
...b.hashInputs ?? [b.root],
|
|
162
207
|
...patch.hashInputs ?? [],
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@untestutils/sveltekit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.0",
|
|
4
4
|
"homepage": "https://s00d.github.io/untestutils/",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
30
|
"pathe": "^2.0.3",
|
|
31
|
-
"@untestutils/core": "0.
|
|
31
|
+
"@untestutils/core": "0.6.0"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
34
|
"@types/node": "^26.6.1",
|