@ryanatkn/gro 0.162.1 → 0.163.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/package.d.ts.map +1 -1
- package/dist/package.js +13 -12
- package/dist/sveltekit_shim_app_paths.d.ts +2 -1
- package/dist/sveltekit_shim_app_paths.d.ts.map +1 -1
- package/dist/sveltekit_shim_app_paths.js +2 -1
- package/dist/test.task.d.ts +1 -0
- package/dist/test.task.d.ts.map +1 -1
- package/dist/test.task.js +25 -20
- package/package.json +11 -11
- package/src/lib/package.ts +13 -12
- package/src/lib/sveltekit_shim_app_paths.ts +7 -2
- package/src/lib/test.task.ts +27 -20
package/dist/package.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,YAyQnB,CAAC;AAET,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,4BAA4B,CAAC;AAEzD,eAAO,MAAM,YAAY,EAAE,YAyQnB,CAAC;AAET,eAAO,MAAM,QAAQ,EAAE,QAuwBf,CAAC"}
|
package/dist/package.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// generated by src/lib/package.gen.ts
|
|
2
2
|
export const package_json = {
|
|
3
3
|
name: '@ryanatkn/gro',
|
|
4
|
-
version: '0.
|
|
4
|
+
version: '0.163.0',
|
|
5
5
|
description: 'task runner and toolkit extending SvelteKit',
|
|
6
6
|
motto: 'generate, run, optimize',
|
|
7
7
|
glyph: '🌰',
|
|
@@ -41,15 +41,15 @@ export const package_json = {
|
|
|
41
41
|
dependencies: {
|
|
42
42
|
'@ryanatkn/belt': '^0.34.1',
|
|
43
43
|
chokidar: '^4.0.3',
|
|
44
|
-
dotenv: '^17.2.
|
|
44
|
+
dotenv: '^17.2.2',
|
|
45
45
|
'esm-env': '^1.2.2',
|
|
46
46
|
mri: '^1.2.0',
|
|
47
|
-
'oxc-parser': '^0.
|
|
47
|
+
'oxc-parser': '^0.87.0',
|
|
48
48
|
prettier: '^3.6.2',
|
|
49
49
|
'prettier-plugin-svelte': '^3.4.0',
|
|
50
50
|
'ts-blank-space': '^0.6.2',
|
|
51
51
|
tslib: '^2.8.1',
|
|
52
|
-
zod: '^4.1.
|
|
52
|
+
zod: '^4.1.5',
|
|
53
53
|
},
|
|
54
54
|
peerDependencies: {
|
|
55
55
|
'@sveltejs/kit': '^2',
|
|
@@ -67,17 +67,17 @@ export const package_json = {
|
|
|
67
67
|
'@ryanatkn/fuz': '^0.145.0',
|
|
68
68
|
'@ryanatkn/moss': '^0.32.0',
|
|
69
69
|
'@sveltejs/adapter-static': '^3.0.9',
|
|
70
|
-
'@sveltejs/kit': '^2.
|
|
70
|
+
'@sveltejs/kit': '^2.37.1',
|
|
71
71
|
'@sveltejs/package': '^2.5.0',
|
|
72
|
-
'@sveltejs/vite-plugin-svelte': '^6.1.
|
|
73
|
-
'@types/node': '^24.3.
|
|
72
|
+
'@sveltejs/vite-plugin-svelte': '^6.1.4',
|
|
73
|
+
'@types/node': '^24.3.1',
|
|
74
74
|
esbuild: '^0.25.9',
|
|
75
|
-
eslint: '^9.
|
|
76
|
-
'eslint-plugin-svelte': '^3.
|
|
77
|
-
svelte: '^5.38.
|
|
75
|
+
eslint: '^9.35.0',
|
|
76
|
+
'eslint-plugin-svelte': '^3.12.2',
|
|
77
|
+
svelte: '^5.38.7',
|
|
78
78
|
'svelte-check': '^4.3.1',
|
|
79
79
|
typescript: '^5.9.2',
|
|
80
|
-
'typescript-eslint': '^8.
|
|
80
|
+
'typescript-eslint': '^8.42.0',
|
|
81
81
|
vitest: '^3.2.4',
|
|
82
82
|
},
|
|
83
83
|
prettier: {
|
|
@@ -266,7 +266,7 @@ export const package_json = {
|
|
|
266
266
|
};
|
|
267
267
|
export const src_json = {
|
|
268
268
|
name: '@ryanatkn/gro',
|
|
269
|
-
version: '0.
|
|
269
|
+
version: '0.163.0',
|
|
270
270
|
modules: {
|
|
271
271
|
'.': {
|
|
272
272
|
path: 'index.ts',
|
|
@@ -930,6 +930,7 @@ export const src_json = {
|
|
|
930
930
|
{ name: 'base', kind: 'variable' },
|
|
931
931
|
{ name: 'resolve', kind: 'function' },
|
|
932
932
|
{ name: 'resolveRoute', kind: 'function' },
|
|
933
|
+
{ name: 'asset', kind: 'function' },
|
|
933
934
|
],
|
|
934
935
|
},
|
|
935
936
|
'./sveltekit_shim_app_state.js': {
|
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
* There may be a cleaner workaround but I couldn't find it.
|
|
5
5
|
* @see https://github.com/nodejs/loaders for details about the forthcoming virtual file support
|
|
6
6
|
*/
|
|
7
|
-
import type { resolve as base_resolve, resolveRoute as base_resolveRoute } from '$app/paths';
|
|
7
|
+
import type { resolve as base_resolve, asset as base_asset, resolveRoute as base_resolveRoute } from '$app/paths';
|
|
8
8
|
export declare const assets = "";
|
|
9
9
|
/** @deprecated */
|
|
10
10
|
export declare const base = "";
|
|
11
11
|
export declare const resolve: typeof base_resolve;
|
|
12
12
|
/** @deprecated */
|
|
13
13
|
export declare const resolveRoute: typeof base_resolveRoute;
|
|
14
|
+
export declare const asset: typeof base_asset;
|
|
14
15
|
//# sourceMappingURL=sveltekit_shim_app_paths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sveltekit_shim_app_paths.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sveltekit_shim_app_paths.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"sveltekit_shim_app_paths.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sveltekit_shim_app_paths.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AAEH,OAAO,KAAK,EACX,OAAO,IAAI,YAAY,EACvB,KAAK,IAAI,UAAU,EACnB,YAAY,IAAI,iBAAiB,EACjC,MAAM,YAAY,CAAC;AAGpB,eAAO,MAAM,MAAM,KAAK,CAAC;AACzB,kBAAkB;AAClB,eAAO,MAAM,IAAI,KAAK,CAAC;AACvB,eAAO,MAAM,OAAO,EAAE,OAAO,YAAyD,CAAC;AACvF,kBAAkB;AAClB,eAAO,MAAM,YAAY,EAAE,OAAO,iBAAwB,CAAC;AAC3D,eAAO,MAAM,KAAK,EAAE,OAAO,UAAuD,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { noop } from '@ryanatkn/belt/function.js';
|
|
|
4
4
|
export const assets = '';
|
|
5
5
|
/** @deprecated */
|
|
6
6
|
export const base = '';
|
|
7
|
-
export const resolve = (v) => ('/' + v.replace(/^\//, '')); // TODO needs to use SvelteKit config base
|
|
7
|
+
export const resolve = (v) => ('/' + v.replace(/^\//, '')); // TODO needs to use SvelteKit config base
|
|
8
8
|
/** @deprecated */
|
|
9
9
|
export const resolveRoute = noop; // eslint-disable-line @typescript-eslint/no-deprecated
|
|
10
|
+
export const asset = (v) => ('/' + v.replace(/^\//, '')); // TODO needs to use SvelteKit config base
|
package/dist/test.task.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import { type Task } from './task.ts';
|
|
|
3
3
|
export declare const Args: z.ZodObject<{
|
|
4
4
|
_: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
5
5
|
dir: z.ZodDefault<z.ZodString>;
|
|
6
|
+
fail_without_tests: z.ZodDefault<z.ZodBoolean>;
|
|
6
7
|
t: z.ZodOptional<z.ZodString>;
|
|
7
8
|
}, z.core.$strict>;
|
|
8
9
|
export type Args = z.infer<typeof Args>;
|
package/dist/test.task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/test.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAOhD,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"test.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/test.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAOhD,eAAO,MAAM,IAAI;;;;;kBAWf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CA+B3B,CAAC"}
|
package/dist/test.task.js
CHANGED
|
@@ -7,8 +7,12 @@ import { serialize_args, to_forwarded_args } from "./args.js";
|
|
|
7
7
|
import { VITEST_CLI } from "./constants.js";
|
|
8
8
|
import { paths } from "./paths.js";
|
|
9
9
|
export const Args = z.strictObject({
|
|
10
|
-
_: z.array(z.string()).meta({ description: 'file patterns to
|
|
10
|
+
_: z.array(z.string()).meta({ description: 'file patterns to filter tests' }).default(['.test.']),
|
|
11
11
|
dir: z.string().meta({ description: 'working directory for tests' }).default(paths.source),
|
|
12
|
+
fail_without_tests: z
|
|
13
|
+
.boolean()
|
|
14
|
+
.meta({ description: 'opt out of `passWithNoTests`' })
|
|
15
|
+
.default(false),
|
|
12
16
|
t: z
|
|
13
17
|
.string()
|
|
14
18
|
.meta({ description: 'search pattern for test names, same as vitest -t and --testNamePattern' })
|
|
@@ -18,26 +22,27 @@ export const task = {
|
|
|
18
22
|
summary: 'run tests with vitest',
|
|
19
23
|
Args,
|
|
20
24
|
run: async ({ args }) => {
|
|
21
|
-
const { _: patterns, dir, t } = args;
|
|
22
|
-
if (has_dep(VITEST_CLI)) {
|
|
23
|
-
if (!find_cli(VITEST_CLI)) {
|
|
24
|
-
throw new Task_Error('vitest is a dependency but not installed; run `npm i`?');
|
|
25
|
-
}
|
|
26
|
-
const vitest_args = ['run', ...patterns];
|
|
27
|
-
if (dir) {
|
|
28
|
-
vitest_args.push('--dir', dir);
|
|
29
|
-
}
|
|
30
|
-
if (t) {
|
|
31
|
-
vitest_args.push('-t', t);
|
|
32
|
-
}
|
|
33
|
-
vitest_args.push(...serialize_args(to_forwarded_args(VITEST_CLI)));
|
|
34
|
-
const spawned = await spawn_cli(VITEST_CLI, vitest_args); // TODO proper forwarding
|
|
35
|
-
if (!spawned?.ok) {
|
|
36
|
-
throw new Task_Error(`vitest failed with exit code ${spawned?.code}`);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
25
|
+
const { _: patterns, dir, fail_without_tests, t } = args;
|
|
26
|
+
if (!has_dep(VITEST_CLI)) {
|
|
40
27
|
throw new Task_Error('no test runner found, install vitest');
|
|
41
28
|
}
|
|
29
|
+
if (!find_cli(VITEST_CLI)) {
|
|
30
|
+
throw new Task_Error('vitest is a dependency but not installed; run `npm i`?');
|
|
31
|
+
}
|
|
32
|
+
const vitest_args = ['run', ...patterns];
|
|
33
|
+
if (dir) {
|
|
34
|
+
vitest_args.push('--dir', dir);
|
|
35
|
+
}
|
|
36
|
+
if (!fail_without_tests) {
|
|
37
|
+
vitest_args.push('--passWithNoTests');
|
|
38
|
+
}
|
|
39
|
+
if (t) {
|
|
40
|
+
vitest_args.push('-t', t);
|
|
41
|
+
}
|
|
42
|
+
vitest_args.push(...serialize_args(to_forwarded_args(VITEST_CLI)));
|
|
43
|
+
const spawned = await spawn_cli(VITEST_CLI, vitest_args);
|
|
44
|
+
if (!spawned?.ok) {
|
|
45
|
+
throw new Task_Error(`vitest failed with exit code ${spawned?.code}`);
|
|
46
|
+
}
|
|
42
47
|
},
|
|
43
48
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryanatkn/gro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.163.0",
|
|
4
4
|
"description": "task runner and toolkit extending SvelteKit",
|
|
5
5
|
"motto": "generate, run, optimize",
|
|
6
6
|
"glyph": "🌰",
|
|
@@ -51,15 +51,15 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@ryanatkn/belt": "^0.34.1",
|
|
53
53
|
"chokidar": "^4.0.3",
|
|
54
|
-
"dotenv": "^17.2.
|
|
54
|
+
"dotenv": "^17.2.2",
|
|
55
55
|
"esm-env": "^1.2.2",
|
|
56
56
|
"mri": "^1.2.0",
|
|
57
|
-
"oxc-parser": "^0.
|
|
57
|
+
"oxc-parser": "^0.87.0",
|
|
58
58
|
"prettier": "^3.6.2",
|
|
59
59
|
"prettier-plugin-svelte": "^3.4.0",
|
|
60
60
|
"ts-blank-space": "^0.6.2",
|
|
61
61
|
"tslib": "^2.8.1",
|
|
62
|
-
"zod": "^4.1.
|
|
62
|
+
"zod": "^4.1.5"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
65
|
"@sveltejs/kit": "^2",
|
|
@@ -87,17 +87,17 @@
|
|
|
87
87
|
"@ryanatkn/fuz": "^0.145.0",
|
|
88
88
|
"@ryanatkn/moss": "^0.32.0",
|
|
89
89
|
"@sveltejs/adapter-static": "^3.0.9",
|
|
90
|
-
"@sveltejs/kit": "^2.
|
|
90
|
+
"@sveltejs/kit": "^2.37.1",
|
|
91
91
|
"@sveltejs/package": "^2.5.0",
|
|
92
|
-
"@sveltejs/vite-plugin-svelte": "^6.1.
|
|
93
|
-
"@types/node": "^24.3.
|
|
92
|
+
"@sveltejs/vite-plugin-svelte": "^6.1.4",
|
|
93
|
+
"@types/node": "^24.3.1",
|
|
94
94
|
"esbuild": "^0.25.9",
|
|
95
|
-
"eslint": "^9.
|
|
96
|
-
"eslint-plugin-svelte": "^3.
|
|
97
|
-
"svelte": "^5.38.
|
|
95
|
+
"eslint": "^9.35.0",
|
|
96
|
+
"eslint-plugin-svelte": "^3.12.2",
|
|
97
|
+
"svelte": "^5.38.7",
|
|
98
98
|
"svelte-check": "^4.3.1",
|
|
99
99
|
"typescript": "^5.9.2",
|
|
100
|
-
"typescript-eslint": "^8.
|
|
100
|
+
"typescript-eslint": "^8.42.0",
|
|
101
101
|
"vitest": "^3.2.4"
|
|
102
102
|
},
|
|
103
103
|
"prettier": {
|
package/src/lib/package.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type {Src_Json} from '@ryanatkn/belt/src_json.js';
|
|
|
5
5
|
|
|
6
6
|
export const package_json: Package_Json = {
|
|
7
7
|
name: '@ryanatkn/gro',
|
|
8
|
-
version: '0.
|
|
8
|
+
version: '0.163.0',
|
|
9
9
|
description: 'task runner and toolkit extending SvelteKit',
|
|
10
10
|
motto: 'generate, run, optimize',
|
|
11
11
|
glyph: '🌰',
|
|
@@ -46,15 +46,15 @@ export const package_json: Package_Json = {
|
|
|
46
46
|
dependencies: {
|
|
47
47
|
'@ryanatkn/belt': '^0.34.1',
|
|
48
48
|
chokidar: '^4.0.3',
|
|
49
|
-
dotenv: '^17.2.
|
|
49
|
+
dotenv: '^17.2.2',
|
|
50
50
|
'esm-env': '^1.2.2',
|
|
51
51
|
mri: '^1.2.0',
|
|
52
|
-
'oxc-parser': '^0.
|
|
52
|
+
'oxc-parser': '^0.87.0',
|
|
53
53
|
prettier: '^3.6.2',
|
|
54
54
|
'prettier-plugin-svelte': '^3.4.0',
|
|
55
55
|
'ts-blank-space': '^0.6.2',
|
|
56
56
|
tslib: '^2.8.1',
|
|
57
|
-
zod: '^4.1.
|
|
57
|
+
zod: '^4.1.5',
|
|
58
58
|
},
|
|
59
59
|
peerDependencies: {
|
|
60
60
|
'@sveltejs/kit': '^2',
|
|
@@ -72,17 +72,17 @@ export const package_json: Package_Json = {
|
|
|
72
72
|
'@ryanatkn/fuz': '^0.145.0',
|
|
73
73
|
'@ryanatkn/moss': '^0.32.0',
|
|
74
74
|
'@sveltejs/adapter-static': '^3.0.9',
|
|
75
|
-
'@sveltejs/kit': '^2.
|
|
75
|
+
'@sveltejs/kit': '^2.37.1',
|
|
76
76
|
'@sveltejs/package': '^2.5.0',
|
|
77
|
-
'@sveltejs/vite-plugin-svelte': '^6.1.
|
|
78
|
-
'@types/node': '^24.3.
|
|
77
|
+
'@sveltejs/vite-plugin-svelte': '^6.1.4',
|
|
78
|
+
'@types/node': '^24.3.1',
|
|
79
79
|
esbuild: '^0.25.9',
|
|
80
|
-
eslint: '^9.
|
|
81
|
-
'eslint-plugin-svelte': '^3.
|
|
82
|
-
svelte: '^5.38.
|
|
80
|
+
eslint: '^9.35.0',
|
|
81
|
+
'eslint-plugin-svelte': '^3.12.2',
|
|
82
|
+
svelte: '^5.38.7',
|
|
83
83
|
'svelte-check': '^4.3.1',
|
|
84
84
|
typescript: '^5.9.2',
|
|
85
|
-
'typescript-eslint': '^8.
|
|
85
|
+
'typescript-eslint': '^8.42.0',
|
|
86
86
|
vitest: '^3.2.4',
|
|
87
87
|
},
|
|
88
88
|
prettier: {
|
|
@@ -272,7 +272,7 @@ export const package_json: Package_Json = {
|
|
|
272
272
|
|
|
273
273
|
export const src_json: Src_Json = {
|
|
274
274
|
name: '@ryanatkn/gro',
|
|
275
|
-
version: '0.
|
|
275
|
+
version: '0.163.0',
|
|
276
276
|
modules: {
|
|
277
277
|
'.': {
|
|
278
278
|
path: 'index.ts',
|
|
@@ -936,6 +936,7 @@ export const src_json: Src_Json = {
|
|
|
936
936
|
{name: 'base', kind: 'variable'},
|
|
937
937
|
{name: 'resolve', kind: 'function'},
|
|
938
938
|
{name: 'resolveRoute', kind: 'function'},
|
|
939
|
+
{name: 'asset', kind: 'function'},
|
|
939
940
|
],
|
|
940
941
|
},
|
|
941
942
|
'./sveltekit_shim_app_state.js': {
|
|
@@ -8,12 +8,17 @@
|
|
|
8
8
|
* @see https://github.com/nodejs/loaders for details about the forthcoming virtual file support
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type {
|
|
12
|
+
resolve as base_resolve,
|
|
13
|
+
asset as base_asset,
|
|
14
|
+
resolveRoute as base_resolveRoute,
|
|
15
|
+
} from '$app/paths';
|
|
12
16
|
import {noop} from '@ryanatkn/belt/function.js';
|
|
13
17
|
|
|
14
18
|
export const assets = '';
|
|
15
19
|
/** @deprecated */
|
|
16
20
|
export const base = '';
|
|
17
|
-
export const resolve: typeof base_resolve = (v) => ('/' + v.replace(/^\//, '')) as any; // TODO needs to use SvelteKit config base
|
|
21
|
+
export const resolve: typeof base_resolve = (v) => ('/' + v.replace(/^\//, '')) as any; // TODO needs to use SvelteKit config base
|
|
18
22
|
/** @deprecated */
|
|
19
23
|
export const resolveRoute: typeof base_resolveRoute = noop; // eslint-disable-line @typescript-eslint/no-deprecated
|
|
24
|
+
export const asset: typeof base_asset = (v) => ('/' + v.replace(/^\//, '')) as any; // TODO needs to use SvelteKit config base
|
package/src/lib/test.task.ts
CHANGED
|
@@ -9,8 +9,12 @@ import {VITEST_CLI} from './constants.ts';
|
|
|
9
9
|
import {paths} from './paths.ts';
|
|
10
10
|
|
|
11
11
|
export const Args = z.strictObject({
|
|
12
|
-
_: z.array(z.string()).meta({description: 'file patterns to
|
|
12
|
+
_: z.array(z.string()).meta({description: 'file patterns to filter tests'}).default(['.test.']),
|
|
13
13
|
dir: z.string().meta({description: 'working directory for tests'}).default(paths.source),
|
|
14
|
+
fail_without_tests: z
|
|
15
|
+
.boolean()
|
|
16
|
+
.meta({description: 'opt out of `passWithNoTests`'})
|
|
17
|
+
.default(false),
|
|
14
18
|
t: z
|
|
15
19
|
.string()
|
|
16
20
|
.meta({description: 'search pattern for test names, same as vitest -t and --testNamePattern'})
|
|
@@ -22,28 +26,31 @@ export const task: Task<Args> = {
|
|
|
22
26
|
summary: 'run tests with vitest',
|
|
23
27
|
Args,
|
|
24
28
|
run: async ({args}): Promise<void> => {
|
|
25
|
-
const {_: patterns, dir, t} = args;
|
|
29
|
+
const {_: patterns, dir, fail_without_tests, t} = args;
|
|
26
30
|
|
|
27
|
-
if (has_dep(VITEST_CLI)) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
31
|
+
if (!has_dep(VITEST_CLI)) {
|
|
32
|
+
throw new Task_Error('no test runner found, install vitest');
|
|
33
|
+
}
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
if (t) {
|
|
37
|
-
vitest_args.push('-t', t);
|
|
38
|
-
}
|
|
39
|
-
vitest_args.push(...serialize_args(to_forwarded_args(VITEST_CLI)));
|
|
35
|
+
if (!find_cli(VITEST_CLI)) {
|
|
36
|
+
throw new Task_Error('vitest is a dependency but not installed; run `npm i`?');
|
|
37
|
+
}
|
|
40
38
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
const vitest_args = ['run', ...patterns];
|
|
40
|
+
if (dir) {
|
|
41
|
+
vitest_args.push('--dir', dir);
|
|
42
|
+
}
|
|
43
|
+
if (!fail_without_tests) {
|
|
44
|
+
vitest_args.push('--passWithNoTests');
|
|
45
|
+
}
|
|
46
|
+
if (t) {
|
|
47
|
+
vitest_args.push('-t', t);
|
|
48
|
+
}
|
|
49
|
+
vitest_args.push(...serialize_args(to_forwarded_args(VITEST_CLI)));
|
|
50
|
+
|
|
51
|
+
const spawned = await spawn_cli(VITEST_CLI, vitest_args);
|
|
52
|
+
if (!spawned?.ok) {
|
|
53
|
+
throw new Task_Error(`vitest failed with exit code ${spawned?.code}`);
|
|
47
54
|
}
|
|
48
55
|
},
|
|
49
56
|
};
|