@ryanatkn/gro 0.161.2 → 0.162.1
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 +8 -7
- package/dist/build.task.d.ts.map +1 -1
- package/dist/build.task.js +4 -2
- package/dist/check.task.d.ts +0 -1
- package/dist/check.task.d.ts.map +1 -1
- package/dist/check.task.js +8 -8
- package/dist/child_process_logging.js +1 -1
- package/dist/constants.d.ts +10 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +12 -3
- package/dist/deploy.task.d.ts +2 -0
- package/dist/deploy.task.d.ts.map +1 -1
- package/dist/deploy.task.js +6 -2
- package/dist/dev.task.d.ts +0 -1
- package/dist/dev.task.d.ts.map +1 -1
- package/dist/dev.task.js +5 -7
- package/dist/disknode.d.ts +18 -0
- package/dist/disknode.d.ts.map +1 -0
- package/dist/disknode.js +1 -0
- package/dist/esbuild_plugin_sveltekit_shim_env.d.ts.map +1 -1
- package/dist/esbuild_plugin_sveltekit_shim_env.js +1 -2
- package/dist/filer.d.ts +6 -21
- package/dist/filer.d.ts.map +1 -1
- package/dist/filer.js +11 -6
- package/dist/format_directory.js +2 -2
- package/dist/gen.task.d.ts.map +1 -1
- package/dist/gen.task.js +56 -12
- package/dist/git.js +3 -3
- package/dist/gro.config.default.d.ts.map +1 -1
- package/dist/gro.config.default.js +2 -1
- package/dist/gro_config.d.ts +1 -1
- package/dist/gro_config.d.ts.map +1 -1
- package/dist/gro_config.js +5 -5
- package/dist/gro_plugin_gen.d.ts.map +1 -1
- package/dist/gro_plugin_gen.js +7 -6
- package/dist/gro_plugin_server.d.ts.map +1 -1
- package/dist/gro_plugin_server.js +16 -25
- package/dist/gro_plugin_sveltekit_app.d.ts.map +1 -1
- package/dist/gro_plugin_sveltekit_app.js +1 -2
- package/dist/gro_plugin_sveltekit_library.d.ts.map +1 -1
- package/dist/gro_plugin_sveltekit_library.js +2 -1
- package/dist/invoke.js +6 -4
- package/dist/package.d.ts.map +1 -1
- package/dist/package.gen.d.ts.map +1 -1
- package/dist/package.gen.js +4 -0
- package/dist/package.js +41 -30
- package/dist/package_json.d.ts +4 -3
- package/dist/package_json.d.ts.map +1 -1
- package/dist/package_json.js +12 -10
- package/dist/parse_imports.js +2 -2
- package/dist/paths.js +2 -2
- package/dist/reinstall.task.js +1 -1
- package/dist/resolve_specifier.d.ts.map +1 -1
- package/dist/src_json.d.ts.map +1 -1
- package/dist/src_json.js +3 -1
- package/dist/svelte_config.d.ts.map +1 -1
- package/dist/svelte_config.js +2 -0
- package/dist/sveltekit_helpers.d.ts +0 -7
- package/dist/sveltekit_helpers.d.ts.map +1 -1
- package/dist/sveltekit_helpers.js +1 -8
- package/dist/sync.task.d.ts +0 -1
- package/dist/sync.task.d.ts.map +1 -1
- package/dist/sync.task.js +1 -2
- package/dist/task.d.ts.map +1 -1
- package/dist/test.task.d.ts +2 -3
- package/dist/test.task.d.ts.map +1 -1
- package/dist/test.task.js +31 -30
- package/dist/test_helpers.d.ts +1 -0
- package/dist/test_helpers.d.ts.map +1 -1
- package/dist/test_helpers.js +1 -0
- package/dist/typecheck.task.d.ts.map +1 -1
- package/dist/typecheck.task.js +2 -1
- package/dist/upgrade.task.d.ts.map +1 -1
- package/dist/upgrade.task.js +2 -1
- package/package.json +34 -19
- package/src/lib/build.task.ts +3 -2
- package/src/lib/check.task.ts +7 -8
- package/src/lib/child_process_logging.ts +1 -1
- package/src/lib/constants.ts +12 -3
- package/src/lib/deploy.task.ts +18 -3
- package/src/lib/dev.task.ts +4 -7
- package/src/lib/disknode.ts +21 -0
- package/src/lib/esbuild_plugin_sveltekit_shim_env.ts +1 -2
- package/src/lib/filer.ts +23 -35
- package/src/lib/format_directory.ts +2 -2
- package/src/lib/gen.task.ts +83 -23
- package/src/lib/git.ts +3 -3
- package/src/lib/gro.config.default.ts +2 -1
- package/src/lib/gro_config.ts +11 -7
- package/src/lib/gro_plugin_gen.ts +8 -6
- package/src/lib/gro_plugin_server.ts +18 -24
- package/src/lib/gro_plugin_sveltekit_app.ts +1 -2
- package/src/lib/gro_plugin_sveltekit_library.ts +2 -5
- package/src/lib/invoke.ts +6 -4
- package/src/lib/package.gen.ts +4 -0
- package/src/lib/package.ts +41 -30
- package/src/lib/package_json.ts +11 -9
- package/src/lib/parse_imports.ts +2 -2
- package/src/lib/paths.ts +2 -2
- package/src/lib/reinstall.task.ts +1 -1
- package/src/lib/resolve_specifier.ts +2 -0
- package/src/lib/src_json.ts +3 -1
- package/src/lib/svelte_config.ts +3 -0
- package/src/lib/sveltekit_helpers.ts +7 -13
- package/src/lib/sync.task.ts +1 -2
- package/src/lib/task.ts +0 -2
- package/src/lib/test.task.ts +31 -32
- package/src/lib/test_helpers.ts +2 -0
- package/src/lib/typecheck.task.ts +2 -1
- package/src/lib/upgrade.task.ts +2 -1
package/dist/src_json.js
CHANGED
|
@@ -5,6 +5,7 @@ import ts from 'typescript';
|
|
|
5
5
|
import { Src_Json, Src_Modules } from '@ryanatkn/belt/src_json.js';
|
|
6
6
|
import { paths, replace_extension } from "./paths.js";
|
|
7
7
|
import { parse_exports } from "./parse_exports.js";
|
|
8
|
+
import { TS_MATCHER } from "./constants.js";
|
|
8
9
|
export const create_src_json = (package_json, lib_path) => Src_Json.parse({
|
|
9
10
|
name: package_json.name,
|
|
10
11
|
version: package_json.version,
|
|
@@ -33,13 +34,14 @@ export const to_src_modules = (exports, lib_path = paths.lib) => {
|
|
|
33
34
|
file_paths.push({ export_key: k, file_path: source_file_id });
|
|
34
35
|
continue;
|
|
35
36
|
}
|
|
37
|
+
// TODO still an error for unknown files running `gro gen`, can it use the filer to invalidate correctly?
|
|
36
38
|
throw Error(`Failed to infer source file from package.json export path ${k} - the inferred file ${source_file_id} does not exist`);
|
|
37
39
|
}
|
|
38
40
|
file_paths.push({ export_key: k, file_path: source_file_id });
|
|
39
41
|
}
|
|
40
42
|
// Create a TypeScript program for all TypeScript files
|
|
41
43
|
const ts_files = file_paths
|
|
42
|
-
.filter(({ file_path }) =>
|
|
44
|
+
.filter(({ file_path }) => TS_MATCHER.test(file_path))
|
|
43
45
|
.map(({ file_path }) => file_path);
|
|
44
46
|
let program;
|
|
45
47
|
if (ts_files.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"svelte_config.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/svelte_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"svelte_config.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/svelte_config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,KAAK,EAAC,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAC,MAAM,iBAAiB,CAAC;AAe7F;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAAU,4BAGtC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAgB,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAMvF,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IAEpC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG,SAAS,CAAC;IACxC,UAAU,EAAE,EAAE,GAAG,UAAU,MAAM,EAAE,GAAG,WAAW,MAAM,EAAE,GAAG,SAAS,CAAC;IAGtE;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,sBAAsB,EAAE,cAAc,CAAC;IACvC,6BAA6B,EAAE,oBAAoB,CAAC;IACpD,oBAAoB,EAAE,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC;CAC/E;AAGD;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAU,sCAGvC;IACF,aAAa,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CACV,KAAG,OAAO,CAAC,oBAAoB,CA8C9C,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAAI,sDAM/C,cAAc,KAAG,oBAA2E,CAAC;AAEhG;;GAEG;AACH,eAAO,MAAM,qBAAqB,sBAA8B,CAAC"}
|
package/dist/svelte_config.js
CHANGED
|
@@ -9,6 +9,8 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
9
9
|
import { join } from 'node:path';
|
|
10
10
|
import { EMPTY_OBJECT } from '@ryanatkn/belt/object.js';
|
|
11
11
|
import { SVELTE_CONFIG_FILENAME } from "./constants.js";
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-deprecated */
|
|
13
|
+
// see https://github.com/sveltejs/kit/discussions/14240
|
|
12
14
|
/*
|
|
13
15
|
|
|
14
16
|
This module is intended to have minimal dependencies to avoid over-imports in the CLI.
|
|
@@ -3,13 +3,6 @@ import type { Logger } from '@ryanatkn/belt/log.js';
|
|
|
3
3
|
import type { Package_Json } from '@ryanatkn/belt/package_json.js';
|
|
4
4
|
import { type Parsed_Svelte_Config } from './svelte_config.ts';
|
|
5
5
|
import { type Cli } from './cli.ts';
|
|
6
|
-
export declare const SVELTEKIT_CLI = "svelte-kit";
|
|
7
|
-
export declare const SVELTE_CHECK_CLI = "svelte-check";
|
|
8
|
-
export declare const SVELTE_PACKAGE_CLI = "svelte-package";
|
|
9
|
-
export declare const SVELTE_PACKAGE_DEP_NAME = "@sveltejs/package";
|
|
10
|
-
export declare const VITE_CLI = "vite";
|
|
11
|
-
export declare const SVELTEKIT_ENV_MATCHER: RegExp;
|
|
12
|
-
export declare const SVELTEKIT_GLOBAL_SPECIFIER: RegExp;
|
|
13
6
|
export declare const has_sveltekit_app: (svelte_config_path?: string) => Result<object, {
|
|
14
7
|
message: string;
|
|
15
8
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sveltekit_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sveltekit_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAwB,KAAK,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"sveltekit_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sveltekit_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAwB,KAAK,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAQpF,OAAO,EAAmC,KAAK,GAAG,EAAC,MAAM,UAAU,CAAC;AAIpE,eAAO,MAAM,iBAAiB,GAC7B,qBAAoB,MAA+B,KACjD,MAAM,CAAC,MAAM,EAAE;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAMlC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GACjC,cAAc,YAAY,EAC1B,gBAAe,oBAA4C,EAC3D,iBAAkC,KAChC,MAAM,CAAC,MAAM,EAAE;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,CAkBlC,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,gBAAe,MAAM,GAAG,GAAmB,EAC3C,eAAuB,KACrB,OAAO,CAAC,IAAI,CASd,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,2BAA2B,GACvC,gBAAe,MAAM,GAAG,GAAmB,KACzC,OAAO,CAAC,IAAI,CAMd,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kCAAkC,GAC9C,gBAAe,MAAM,GAAG,GAAmB,KACzC,OAAO,CAAC,IAAI,CAUd,CAAC;AAEF;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;IACX;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,CAAC;IACX;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,CAAC,CAAC,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,kBAAkB,GAC9B,cAAc,YAAY,EAC1B,SAAS,sBAAsB,GAAG,SAAS,EAC3C,KAAK,MAAM,GAAG,GAAG,EACjB,KAAK,MAAM,EACX,QAAQ,MAAM,KACZ,OAAO,CAAC,IAAI,CAmBd,CAAC;AAGF;;GAEG;AACH,eAAO,MAAM,qBAAqB,GACjC,WAAW,MAAM,EACjB,SAAS,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAC9B,MASF,CAAC"}
|
|
@@ -2,17 +2,10 @@ import { existsSync } from 'node:fs';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { has_dep } from "./package_json.js";
|
|
4
4
|
import { default_svelte_config } from "./svelte_config.js";
|
|
5
|
-
import { SVELTE_CONFIG_FILENAME, SVELTEKIT_DEV_DIRNAME, PM_CLI_DEFAULT } from "./constants.js";
|
|
5
|
+
import { SVELTE_CONFIG_FILENAME, SVELTEKIT_DEV_DIRNAME, PM_CLI_DEFAULT, SVELTE_PACKAGE_DEP_NAME, SVELTEKIT_CLI, } from "./constants.js";
|
|
6
6
|
import { find_cli, spawn_cli, to_cli_name } from "./cli.js";
|
|
7
7
|
import { Task_Error } from "./task.js";
|
|
8
8
|
import { serialize_args, to_forwarded_args } from "./args.js";
|
|
9
|
-
export const SVELTEKIT_CLI = 'svelte-kit';
|
|
10
|
-
export const SVELTE_CHECK_CLI = 'svelte-check';
|
|
11
|
-
export const SVELTE_PACKAGE_CLI = 'svelte-package';
|
|
12
|
-
export const SVELTE_PACKAGE_DEP_NAME = '@sveltejs/package';
|
|
13
|
-
export const VITE_CLI = 'vite';
|
|
14
|
-
export const SVELTEKIT_ENV_MATCHER = /^\$env\/(static|dynamic)\/(public|private)$/;
|
|
15
|
-
export const SVELTEKIT_GLOBAL_SPECIFIER = /^\$(env|app)\//;
|
|
16
9
|
export const has_sveltekit_app = (svelte_config_path = SVELTE_CONFIG_FILENAME) => {
|
|
17
10
|
if (!existsSync(svelte_config_path)) {
|
|
18
11
|
return { ok: false, message: `no SvelteKit config found at ${SVELTE_CONFIG_FILENAME}` };
|
package/dist/sync.task.d.ts
CHANGED
|
@@ -8,7 +8,6 @@ export declare const Args: z.ZodObject<{
|
|
|
8
8
|
gen: z.ZodDefault<z.ZodBoolean>;
|
|
9
9
|
'no-gen': z.ZodDefault<z.ZodBoolean>;
|
|
10
10
|
install: z.ZodDefault<z.ZodBoolean>;
|
|
11
|
-
'no-install': z.ZodDefault<z.ZodBoolean>;
|
|
12
11
|
}, z.core.$strict>;
|
|
13
12
|
export type Args = z.infer<typeof Args>;
|
|
14
13
|
export declare const task: Task<Args>;
|
package/dist/sync.task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sync.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAIhD,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"sync.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/sync.task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAIhD,eAAO,MAAM,IAAI;;;;;;;;kBAQf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CA0B3B,CAAC"}
|
package/dist/sync.task.js
CHANGED
|
@@ -10,8 +10,7 @@ export const Args = z.strictObject({
|
|
|
10
10
|
'no-package_json': z.boolean().meta({ description: 'opt out of package.json sync' }).default(false),
|
|
11
11
|
gen: z.boolean().meta({ description: 'dual of no-gen' }).default(true),
|
|
12
12
|
'no-gen': z.boolean().meta({ description: 'opt out of running gen' }).default(false),
|
|
13
|
-
install: z.boolean().meta({ description: '
|
|
14
|
-
'no-install': z.boolean().meta({ description: 'opt out of installing packages' }).default(false),
|
|
13
|
+
install: z.boolean().meta({ description: 'opt into installing packages' }).default(false),
|
|
15
14
|
});
|
|
16
15
|
export const task = {
|
|
17
16
|
summary: 'run `gro gen`, update `package.json`, and optionally install packages to sync up',
|
package/dist/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/task.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AAGrD,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAGN,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAe,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAC,MAAM,cAAc,CAAC;AACvF,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEtC,MAAM,WAAW,IAAI,CACpB,MAAM,GAAG,IAAI,EACb,aAAa,SAAS,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,4CAA4C;AACjH,QAAQ,GAAG,OAAO;IAElB,GAAG,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,YAAY,CAAC,MAAM,GAAG,MAAM;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,oBAAoB,CAAC;IACpC,KAAK,EAAE,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/task.ts"],"names":[],"mappings":"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"}
|
package/dist/test.task.d.ts
CHANGED
|
@@ -2,9 +2,8 @@ import { z } from 'zod';
|
|
|
2
2
|
import { type Task } from './task.ts';
|
|
3
3
|
export declare const Args: z.ZodObject<{
|
|
4
4
|
_: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
ignore: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
|
|
5
|
+
dir: z.ZodDefault<z.ZodString>;
|
|
6
|
+
t: z.ZodOptional<z.ZodString>;
|
|
8
7
|
}, z.core.$strict>;
|
|
9
8
|
export type Args = z.infer<typeof Args>;
|
|
10
9
|
export declare const task: Task<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":"
|
|
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;;;;kBAOf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CA4B3B,CAAC"}
|
package/dist/test.task.js
CHANGED
|
@@ -1,42 +1,43 @@
|
|
|
1
|
-
import { styleText as st } from 'node:util';
|
|
2
1
|
import { z } from 'zod';
|
|
2
|
+
import { spawn_cli } from '@ryanatkn/gro/cli.js';
|
|
3
3
|
import { Task_Error } from "./task.js";
|
|
4
|
-
import { paths } from "./paths.js";
|
|
5
4
|
import { find_cli } from "./cli.js";
|
|
5
|
+
import { has_dep } from "./package_json.js";
|
|
6
|
+
import { serialize_args, to_forwarded_args } from "./args.js";
|
|
7
|
+
import { VITEST_CLI } from "./constants.js";
|
|
8
|
+
import { paths } from "./paths.js";
|
|
6
9
|
export const Args = z.strictObject({
|
|
7
|
-
_: z.array(z.string()).meta({ description: 'file patterns to test' }).default([
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
.
|
|
11
|
-
.
|
|
12
|
-
cwd: z.string().meta({ description: 'the cwd option to uvu parse' }).optional(),
|
|
13
|
-
ignore: z
|
|
14
|
-
.union([z.string(), z.array(z.string())])
|
|
15
|
-
.meta({ description: 'the ignore option to uvu parse' })
|
|
10
|
+
_: z.array(z.string()).meta({ description: 'file patterns to test' }).default(['.test.']),
|
|
11
|
+
dir: z.string().meta({ description: 'working directory for tests' }).default(paths.source),
|
|
12
|
+
t: z
|
|
13
|
+
.string()
|
|
14
|
+
.meta({ description: 'search pattern for test names, same as vitest -t and --testNamePattern' })
|
|
16
15
|
.optional(),
|
|
17
16
|
});
|
|
18
17
|
export const task = {
|
|
19
|
-
summary: 'run tests with
|
|
18
|
+
summary: 'run tests with vitest',
|
|
20
19
|
Args,
|
|
21
|
-
run: async ({ args
|
|
22
|
-
const { _: patterns,
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
20
|
+
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
|
+
}
|
|
36
38
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
throw new Task_Error('Tests failed.');
|
|
39
|
+
else {
|
|
40
|
+
throw new Task_Error('no test runner found, install vitest');
|
|
40
41
|
}
|
|
41
42
|
},
|
|
42
43
|
};
|
package/dist/test_helpers.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/test_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AACrE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAM/D;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,YAAmB,EAAE,qBAAqB,KAAG,OA6B1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC9B,aAAa,MAAM,EACnB,MAAK,MAAsB,EAC3B,gBAAe,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,KACxC;IACF,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC;IAC3B,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;CAkG1B,CAAC"}
|
|
1
|
+
{"version":3,"file":"test_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/test_helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AACrE,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAM/D;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,YAAmB,EAAE,qBAAqB,KAAG,OA6B1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC9B,aAAa,MAAM,EACnB,MAAK,MAAsB,EAC3B,gBAAe,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,KACxC;IACF,WAAW,EAAE,EAAE,CAAC,UAAU,CAAC;IAC3B,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC;IACxB,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;CAkG1B,CAAC"}
|
package/dist/test_helpers.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import ts from 'typescript';
|
|
4
|
+
export const TEST_TIMEOUT_MD = 20_000;
|
|
4
5
|
export const SOME_PUBLIC_ENV_VAR_NAME = 'PUBLIC_SOME_PUBLIC_ENV_VAR';
|
|
5
6
|
export const SOME_PUBLIC_ENV_VAR_VALUE = 'SOME_PUBLIC_ENV_VAR';
|
|
6
7
|
const name_equals = SOME_PUBLIC_ENV_VAR_NAME + '=';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typecheck.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/typecheck.task.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"typecheck.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/typecheck.task.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAQhD,eAAO,MAAM,IAAI;;;;;kBAcf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CAiD3B,CAAC"}
|
package/dist/typecheck.task.js
CHANGED
|
@@ -3,9 +3,10 @@ import { z } from 'zod';
|
|
|
3
3
|
import { Task_Error } from "./task.js";
|
|
4
4
|
import { serialize_args, to_forwarded_args } from "./args.js";
|
|
5
5
|
import { find_cli, spawn_cli, spawn_cli_process } from "./cli.js";
|
|
6
|
-
import {
|
|
6
|
+
import { sveltekit_sync_if_available } from "./sveltekit_helpers.js";
|
|
7
7
|
import { configure_colored_output_with_path_replacement } from "./child_process_logging.js";
|
|
8
8
|
import { paths } from "./paths.js";
|
|
9
|
+
import { SVELTE_CHECK_CLI } from "./constants.js";
|
|
9
10
|
export const Args = z.strictObject({
|
|
10
11
|
svelte_check_cli: z
|
|
11
12
|
.string()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/upgrade.task.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAOhD,eAAO,MAAM,IAAI;;;;;;;;;;;;kBAiCf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"upgrade.task.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/upgrade.task.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAGtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAOhD,eAAO,MAAM,IAAI;;;;;;;;;;;;kBAiCf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CA4E3B,CAAC"}
|
package/dist/upgrade.task.js
CHANGED
|
@@ -81,6 +81,7 @@ export const task = {
|
|
|
81
81
|
}
|
|
82
82
|
install_args.push(...serialize_args(to_forwarded_args(config.pm_cli)));
|
|
83
83
|
await spawn(config.pm_cli, install_args);
|
|
84
|
+
// TODO @many this relies on npm behavior that changed in v11
|
|
84
85
|
// If we deleted the lockfile or node modules, `npm install` again
|
|
85
86
|
// to fix a recurring npm bug getting the lockfile to its final state.
|
|
86
87
|
if (!dry && (delete_node_modules || delete_lockfile)) {
|
|
@@ -88,7 +89,7 @@ export const task = {
|
|
|
88
89
|
await spawn(config.pm_cli, ['install']);
|
|
89
90
|
}
|
|
90
91
|
// Sync in a new process to pick up any changes after installing, avoiding some errors.
|
|
91
|
-
await spawn_cli('gro', ['sync'
|
|
92
|
+
await spawn_cli('gro', ['sync']); // don't install because we do above
|
|
92
93
|
},
|
|
93
94
|
};
|
|
94
95
|
const EXACT_VERSION_MATCHER = /^..*@.+/;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryanatkn/gro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.162.1",
|
|
4
4
|
"description": "task runner and toolkit extending SvelteKit",
|
|
5
5
|
"motto": "generate, run, optimize",
|
|
6
6
|
"glyph": "🌰",
|
|
@@ -49,25 +49,36 @@
|
|
|
49
49
|
"typescript"
|
|
50
50
|
],
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@ryanatkn/belt": "^0.
|
|
52
|
+
"@ryanatkn/belt": "^0.34.1",
|
|
53
53
|
"chokidar": "^4.0.3",
|
|
54
54
|
"dotenv": "^17.2.1",
|
|
55
55
|
"esm-env": "^1.2.2",
|
|
56
56
|
"mri": "^1.2.0",
|
|
57
|
-
"oxc-parser": "^0.
|
|
57
|
+
"oxc-parser": "^0.82.3",
|
|
58
58
|
"prettier": "^3.6.2",
|
|
59
59
|
"prettier-plugin-svelte": "^3.4.0",
|
|
60
|
-
"ts-blank-space": "^0.6.
|
|
60
|
+
"ts-blank-space": "^0.6.2",
|
|
61
61
|
"tslib": "^2.8.1",
|
|
62
|
-
"zod": "^4.
|
|
62
|
+
"zod": "^4.1.4"
|
|
63
63
|
},
|
|
64
64
|
"peerDependencies": {
|
|
65
|
+
"@sveltejs/kit": "^2",
|
|
65
66
|
"esbuild": "^0.25",
|
|
66
67
|
"svelte": "^5",
|
|
67
|
-
"typescript": "^5"
|
|
68
|
+
"typescript": "^5",
|
|
69
|
+
"vitest": "^3"
|
|
70
|
+
},
|
|
71
|
+
"peerDependenciesMeta": {
|
|
72
|
+
"@sveltejs/kit": {
|
|
73
|
+
"optional": true
|
|
74
|
+
},
|
|
75
|
+
"vitest": {
|
|
76
|
+
"optional": true
|
|
77
|
+
}
|
|
68
78
|
},
|
|
69
79
|
"optionalDependencies": {
|
|
70
|
-
"@ryanatkn/moss": ">=0.31.0"
|
|
80
|
+
"@ryanatkn/moss": ">=0.31.0",
|
|
81
|
+
"vitest": "^3"
|
|
71
82
|
},
|
|
72
83
|
"devDependencies": {
|
|
73
84
|
"@changesets/changelog-git": "^0.2.1",
|
|
@@ -75,19 +86,19 @@
|
|
|
75
86
|
"@ryanatkn/eslint-config": "^0.8.0",
|
|
76
87
|
"@ryanatkn/fuz": "^0.145.0",
|
|
77
88
|
"@ryanatkn/moss": "^0.32.0",
|
|
78
|
-
"@sveltejs/adapter-static": "^3.0.
|
|
79
|
-
"@sveltejs/kit": "^2.
|
|
80
|
-
"@sveltejs/package": "^2.
|
|
81
|
-
"@sveltejs/vite-plugin-svelte": "^6.1.
|
|
82
|
-
"@types/node": "^24.
|
|
83
|
-
"esbuild": "^0.25.
|
|
84
|
-
"eslint": "^9.
|
|
89
|
+
"@sveltejs/adapter-static": "^3.0.9",
|
|
90
|
+
"@sveltejs/kit": "^2.36.3",
|
|
91
|
+
"@sveltejs/package": "^2.5.0",
|
|
92
|
+
"@sveltejs/vite-plugin-svelte": "^6.1.3",
|
|
93
|
+
"@types/node": "^24.3.0",
|
|
94
|
+
"esbuild": "^0.25.9",
|
|
95
|
+
"eslint": "^9.34.0",
|
|
85
96
|
"eslint-plugin-svelte": "^3.11.0",
|
|
86
|
-
"svelte": "^5.
|
|
87
|
-
"svelte-check": "^4.3.
|
|
88
|
-
"typescript": "^5.
|
|
89
|
-
"typescript-eslint": "^8.
|
|
90
|
-
"
|
|
97
|
+
"svelte": "^5.38.6",
|
|
98
|
+
"svelte-check": "^4.3.1",
|
|
99
|
+
"typescript": "^5.9.2",
|
|
100
|
+
"typescript-eslint": "^8.41.0",
|
|
101
|
+
"vitest": "^3.2.4"
|
|
91
102
|
},
|
|
92
103
|
"prettier": {
|
|
93
104
|
"plugins": [
|
|
@@ -177,6 +188,10 @@
|
|
|
177
188
|
"types": "./dist/dev.task.d.ts",
|
|
178
189
|
"default": "./dist/dev.task.js"
|
|
179
190
|
},
|
|
191
|
+
"./disknode.js": {
|
|
192
|
+
"types": "./dist/disknode.d.ts",
|
|
193
|
+
"default": "./dist/disknode.js"
|
|
194
|
+
},
|
|
180
195
|
"./env.js": {
|
|
181
196
|
"types": "./dist/env.d.ts",
|
|
182
197
|
"default": "./dist/env.js"
|
package/src/lib/build.task.ts
CHANGED
|
@@ -19,10 +19,11 @@ export const task: Task<Args> = {
|
|
|
19
19
|
summary: 'build the project',
|
|
20
20
|
Args,
|
|
21
21
|
run: async (ctx): Promise<void> => {
|
|
22
|
-
const {args, invoke_task} = ctx;
|
|
22
|
+
const {args, invoke_task, log} = ctx;
|
|
23
23
|
const {sync, install} = args;
|
|
24
24
|
|
|
25
|
-
if (sync) {
|
|
25
|
+
if (sync || install) {
|
|
26
|
+
if (!sync) log.warn('sync is false but install is true, so ignoring the sync option');
|
|
26
27
|
await invoke_task('sync', {install});
|
|
27
28
|
}
|
|
28
29
|
|
package/src/lib/check.task.ts
CHANGED
|
@@ -24,11 +24,7 @@ export const Args = z.strictObject({
|
|
|
24
24
|
'no-lint': z.boolean().meta({description: 'opt out of linting'}).default(false),
|
|
25
25
|
sync: z.boolean().meta({description: 'dual of no-sync'}).default(true),
|
|
26
26
|
'no-sync': z.boolean().meta({description: 'opt out of syncing'}).default(false),
|
|
27
|
-
install: z.boolean().meta({description: '
|
|
28
|
-
'no-install': z
|
|
29
|
-
.boolean()
|
|
30
|
-
.meta({description: 'opt out of installing packages when syncing'})
|
|
31
|
-
.default(false), // convenience, same as `gro check -- gro sync --no-install` but the latter takes precedence
|
|
27
|
+
install: z.boolean().meta({description: 'opt into installing packages'}).default(false),
|
|
32
28
|
workspace: z
|
|
33
29
|
.boolean()
|
|
34
30
|
.meta({description: 'ensure a clean git workspace, useful for CI, also implies --no-sync'})
|
|
@@ -44,8 +40,11 @@ export const task: Task<Args> = {
|
|
|
44
40
|
|
|
45
41
|
// When checking the workspace, which was added for CI, never sync.
|
|
46
42
|
// Setup like installing packages and `sveltekit-sync` should be done in the CI setup.
|
|
47
|
-
if (
|
|
48
|
-
|
|
43
|
+
if (!workspace) {
|
|
44
|
+
if (sync || install) {
|
|
45
|
+
if (!sync) log.warn('sync is false but install is true, so ignoring the sync option');
|
|
46
|
+
await invoke_task('sync', {install, gen: false}); // never generate because `gro gen --check` runs below
|
|
47
|
+
}
|
|
49
48
|
}
|
|
50
49
|
|
|
51
50
|
if (typecheck) {
|
|
@@ -61,7 +60,7 @@ export const task: Task<Args> = {
|
|
|
61
60
|
}
|
|
62
61
|
|
|
63
62
|
if (package_json && config.map_package_json) {
|
|
64
|
-
const {changed} = await sync_package_json(config.map_package_json, log,
|
|
63
|
+
const {changed} = await sync_package_json(config.map_package_json, log, false);
|
|
65
64
|
if (changed) {
|
|
66
65
|
throw new Task_Error('package.json is out of date, run `gro sync` to update it');
|
|
67
66
|
} else {
|
|
@@ -29,7 +29,7 @@ export const configure_colored_output_with_path_replacement = (
|
|
|
29
29
|
replacement: string = '.',
|
|
30
30
|
cwd: string = process.cwd(),
|
|
31
31
|
): void => {
|
|
32
|
-
// Escape special characters in the cwd for
|
|
32
|
+
// Escape special characters in the cwd for regexp safety
|
|
33
33
|
const cwd_escaped = strip_end(cwd, '/').replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
34
34
|
const cwd_reg_exp = new RegExp(cwd_escaped, 'g');
|
|
35
35
|
|
package/src/lib/constants.ts
CHANGED
|
@@ -18,11 +18,12 @@ export const SOURCE_DIR = SOURCE_DIRNAME + '/';
|
|
|
18
18
|
export const GRO_DIR = GRO_DIRNAME + '/';
|
|
19
19
|
/** @trailing_slash */
|
|
20
20
|
export const GRO_DEV_DIR = GRO_DEV_DIRNAME + '/';
|
|
21
|
-
export const
|
|
21
|
+
export const GRO_CONFIG_FILENAME = 'gro.config.ts';
|
|
22
22
|
export const README_FILENAME = 'README.md';
|
|
23
23
|
export const SVELTE_CONFIG_FILENAME = 'svelte.config.js';
|
|
24
24
|
export const VITE_CONFIG_FILENAME = 'vite.config.ts';
|
|
25
25
|
export const NODE_MODULES_DIRNAME = 'node_modules';
|
|
26
|
+
export const PACKAGE_JSON_FILENAME = 'package.json';
|
|
26
27
|
export const LOCKFILE_FILENAME = 'package-lock.json';
|
|
27
28
|
export const SVELTEKIT_DEV_DIRNAME = '.svelte-kit'; // TODO use Svelte config value `outDir`
|
|
28
29
|
export const SVELTEKIT_BUILD_DIRNAME = 'build';
|
|
@@ -32,15 +33,23 @@ export const GITHUB_DIRNAME = '.github';
|
|
|
32
33
|
export const GIT_DIRNAME = '.git';
|
|
33
34
|
export const TSCONFIG_FILENAME = 'tsconfig.json';
|
|
34
35
|
|
|
35
|
-
export const TS_MATCHER = /\.(ts|
|
|
36
|
-
export const JS_MATCHER = /\.(js|
|
|
36
|
+
export const TS_MATCHER = /\.(ts|mts|cts)$/;
|
|
37
|
+
export const JS_MATCHER = /\.(js|mjs|cjs)$/;
|
|
37
38
|
export const JSON_MATCHER = /\.json$/;
|
|
38
39
|
export const SVELTE_MATCHER = /\.svelte$/;
|
|
39
40
|
export const SVELTE_RUNES_MATCHER = /\.svelte\.(js|ts)$/; // TODO probably let `.svelte.` appear anywhere - https://github.com/sveltejs/svelte/issues/11536
|
|
40
41
|
/** Extracts the script content from Svelte files. */
|
|
41
42
|
export const SVELTE_SCRIPT_MATCHER = /<script(?:\s+[^>]*)?>([\s\S]*?)<\/script>/gim; // TODO maybe this shouldnt be global? or make a getter?
|
|
43
|
+
export const SVELTEKIT_ENV_MATCHER = /^\$env\/(static|dynamic)\/(public|private)$/;
|
|
44
|
+
export const SVELTEKIT_GLOBAL_SPECIFIER = /^\$(env|app)\//;
|
|
42
45
|
export const EVERYTHING_MATCHER = /.*/;
|
|
43
46
|
|
|
44
47
|
export const JS_CLI_DEFAULT = 'node';
|
|
45
48
|
export const PM_CLI_DEFAULT = 'npm';
|
|
46
49
|
export const PRETTIER_CLI_DEFAULT = 'prettier';
|
|
50
|
+
export const SVELTEKIT_CLI = 'svelte-kit';
|
|
51
|
+
export const SVELTE_CHECK_CLI = 'svelte-check';
|
|
52
|
+
export const SVELTE_PACKAGE_CLI = 'svelte-package';
|
|
53
|
+
export const SVELTE_PACKAGE_DEP_NAME = '@sveltejs/package';
|
|
54
|
+
export const VITE_CLI = 'vite';
|
|
55
|
+
export const VITEST_CLI = 'vitest';
|
package/src/lib/deploy.task.ts
CHANGED
|
@@ -71,6 +71,8 @@ export const Args = z.strictObject({
|
|
|
71
71
|
.default(false),
|
|
72
72
|
build: z.boolean().meta({description: 'dual of no-build'}).default(true),
|
|
73
73
|
'no-build': z.boolean().meta({description: 'opt out of building'}).default(false),
|
|
74
|
+
pull: z.boolean().meta({description: 'dual of no-pull'}).default(true),
|
|
75
|
+
'no-pull': z.boolean().meta({description: 'opt out of git pull'}).default(false),
|
|
74
76
|
});
|
|
75
77
|
export type Args = z.infer<typeof Args>;
|
|
76
78
|
|
|
@@ -78,8 +80,19 @@ export const task: Task<Args> = {
|
|
|
78
80
|
summary: 'deploy to a branch',
|
|
79
81
|
Args,
|
|
80
82
|
run: async ({args, log, invoke_task}): Promise<void> => {
|
|
81
|
-
const {
|
|
82
|
-
|
|
83
|
+
const {
|
|
84
|
+
source,
|
|
85
|
+
target,
|
|
86
|
+
origin,
|
|
87
|
+
build_dir,
|
|
88
|
+
deploy_dir,
|
|
89
|
+
dry,
|
|
90
|
+
force,
|
|
91
|
+
dangerous,
|
|
92
|
+
reset,
|
|
93
|
+
build,
|
|
94
|
+
pull,
|
|
95
|
+
} = args;
|
|
83
96
|
|
|
84
97
|
// Checks
|
|
85
98
|
if (!force && target !== TARGET_BRANCH) {
|
|
@@ -119,7 +132,9 @@ export const task: Task<Args> = {
|
|
|
119
132
|
|
|
120
133
|
// Prepare the source branch in the cwd
|
|
121
134
|
await git_checkout(source);
|
|
122
|
-
|
|
135
|
+
if (pull) {
|
|
136
|
+
await git_pull(origin, source);
|
|
137
|
+
}
|
|
123
138
|
if (await git_check_clean_workspace()) {
|
|
124
139
|
throw new Task_Error(
|
|
125
140
|
'Deploy failed because the local source branch is out of sync with the remote one,' +
|
package/src/lib/dev.task.ts
CHANGED
|
@@ -14,11 +14,7 @@ export const Args = z.strictObject({
|
|
|
14
14
|
.default(false),
|
|
15
15
|
sync: z.boolean().meta({description: 'dual of no-sync'}).default(true),
|
|
16
16
|
'no-sync': z.boolean().meta({description: 'opt out of gro sync'}).default(false),
|
|
17
|
-
install: z.boolean().meta({description: '
|
|
18
|
-
'no-install': z // convenience, same as `gro dev -- gro sync --no-install` but the latter takes precedence
|
|
19
|
-
.boolean()
|
|
20
|
-
.meta({description: 'opt out of installing packages before starting the dev server'})
|
|
21
|
-
.default(false),
|
|
17
|
+
install: z.boolean().meta({description: 'opt into installing packages'}).default(false),
|
|
22
18
|
});
|
|
23
19
|
export type Args = z.infer<typeof Args>;
|
|
24
20
|
|
|
@@ -28,12 +24,13 @@ export const task: Task<Args> = {
|
|
|
28
24
|
summary: 'start SvelteKit and other dev plugins',
|
|
29
25
|
Args,
|
|
30
26
|
run: async (ctx) => {
|
|
31
|
-
const {args, invoke_task} = ctx;
|
|
27
|
+
const {args, invoke_task, log} = ctx;
|
|
32
28
|
const {watch, sync, install} = args;
|
|
33
29
|
|
|
34
30
|
await clean_fs({build_dev: true});
|
|
35
31
|
|
|
36
|
-
if (sync) {
|
|
32
|
+
if (sync || install) {
|
|
33
|
+
if (!sync) log.warn('sync is false but install is true, so ignoring the sync option');
|
|
37
34
|
await invoke_task('sync', {install});
|
|
38
35
|
}
|
|
39
36
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type {Path_Id} from './path.ts';
|
|
2
|
+
|
|
3
|
+
// TODO extract more here from Filer
|
|
4
|
+
|
|
5
|
+
export interface Disknode {
|
|
6
|
+
id: Path_Id;
|
|
7
|
+
// TODO figure out the best API that makes this lazy
|
|
8
|
+
/**
|
|
9
|
+
* `null` contents means it doesn't exist.
|
|
10
|
+
* We create the file in memory to track its dependents regardless of its existence on disk.
|
|
11
|
+
*/
|
|
12
|
+
contents: string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Is the source file outside of the `root_dir` or excluded by `watch_dir_options.filter`?
|
|
15
|
+
*/
|
|
16
|
+
external: boolean;
|
|
17
|
+
ctime: number | null;
|
|
18
|
+
mtime: number | null;
|
|
19
|
+
dependents: Map<Path_Id, Disknode>;
|
|
20
|
+
dependencies: Map<Path_Id, Disknode>;
|
|
21
|
+
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type * as esbuild from 'esbuild';
|
|
2
2
|
|
|
3
3
|
import {render_env_shim_module} from './sveltekit_shim_env.ts';
|
|
4
|
-
import {EVERYTHING_MATCHER} from './constants.ts';
|
|
5
|
-
import {SVELTEKIT_ENV_MATCHER} from './sveltekit_helpers.ts';
|
|
4
|
+
import {SVELTEKIT_ENV_MATCHER, EVERYTHING_MATCHER} from './constants.ts';
|
|
6
5
|
|
|
7
6
|
export interface Esbuild_Plugin_Sveltekit_Shim_Env_Options {
|
|
8
7
|
dev: boolean;
|