@ryanatkn/gro 0.175.0 → 0.177.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.
Files changed (212) hide show
  1. package/dist/args.d.ts +5 -5
  2. package/dist/args.d.ts.map +1 -1
  3. package/dist/build.task.d.ts.map +1 -1
  4. package/dist/build.task.js +2 -2
  5. package/dist/build_cache.d.ts +12 -12
  6. package/dist/build_cache.d.ts.map +1 -1
  7. package/dist/build_cache.js +4 -4
  8. package/dist/changelog.d.ts +2 -2
  9. package/dist/changelog.d.ts.map +1 -1
  10. package/dist/changelog.js +1 -1
  11. package/dist/changeset.task.d.ts.map +1 -1
  12. package/dist/changeset.task.js +9 -9
  13. package/dist/changeset_helpers.d.ts +4 -4
  14. package/dist/changeset_helpers.d.ts.map +1 -1
  15. package/dist/changeset_helpers.js +2 -2
  16. package/dist/check.task.d.ts.map +1 -1
  17. package/dist/check.task.js +3 -3
  18. package/dist/clean.task.js +2 -2
  19. package/dist/cli.d.ts +6 -6
  20. package/dist/cli.d.ts.map +1 -1
  21. package/dist/commit.task.js +2 -2
  22. package/dist/deploy.task.d.ts.map +1 -1
  23. package/dist/deploy.task.js +13 -13
  24. package/dist/dev.task.d.ts +2 -2
  25. package/dist/dev.task.d.ts.map +1 -1
  26. package/dist/disknode.d.ts +4 -4
  27. package/dist/disknode.d.ts.map +1 -1
  28. package/dist/esbuild_helpers.d.ts +2 -2
  29. package/dist/esbuild_helpers.d.ts.map +1 -1
  30. package/dist/esbuild_plugin_external_worker.d.ts +5 -5
  31. package/dist/esbuild_plugin_external_worker.d.ts.map +1 -1
  32. package/dist/esbuild_plugin_svelte.d.ts +4 -4
  33. package/dist/esbuild_plugin_svelte.d.ts.map +1 -1
  34. package/dist/esbuild_plugin_sveltekit_shim_alias.d.ts +2 -2
  35. package/dist/esbuild_plugin_sveltekit_shim_alias.d.ts.map +1 -1
  36. package/dist/esbuild_plugin_sveltekit_shim_app.d.ts +5 -5
  37. package/dist/esbuild_plugin_sveltekit_shim_app.d.ts.map +1 -1
  38. package/dist/esbuild_plugin_sveltekit_shim_env.d.ts +2 -2
  39. package/dist/esbuild_plugin_sveltekit_shim_env.d.ts.map +1 -1
  40. package/dist/filer.d.ts +15 -15
  41. package/dist/filer.d.ts.map +1 -1
  42. package/dist/filer.js +2 -2
  43. package/dist/format.task.d.ts.map +1 -1
  44. package/dist/format.task.js +2 -2
  45. package/dist/format_directory.d.ts +2 -2
  46. package/dist/format_directory.d.ts.map +1 -1
  47. package/dist/gen.d.ts +73 -73
  48. package/dist/gen.d.ts.map +1 -1
  49. package/dist/gen.js +1 -1
  50. package/dist/gen.task.d.ts.map +1 -1
  51. package/dist/gen.task.js +8 -8
  52. package/dist/gen_helpers.d.ts +4 -4
  53. package/dist/gen_helpers.d.ts.map +1 -1
  54. package/dist/gen_helpers.js +1 -1
  55. package/dist/github.d.ts +4 -4
  56. package/dist/github.d.ts.map +1 -1
  57. package/dist/github.js +3 -3
  58. package/dist/gro.config.default.d.ts +2 -2
  59. package/dist/gro.config.default.d.ts.map +1 -1
  60. package/dist/gro_config.d.ts +25 -25
  61. package/dist/gro_config.d.ts.map +1 -1
  62. package/dist/gro_config.js +2 -2
  63. package/dist/gro_helpers.d.ts +2 -2
  64. package/dist/gro_helpers.d.ts.map +1 -1
  65. package/dist/gro_plugin_gen.d.ts +3 -3
  66. package/dist/gro_plugin_gen.d.ts.map +1 -1
  67. package/dist/gro_plugin_gen.js +2 -2
  68. package/dist/gro_plugin_server.d.ts +7 -7
  69. package/dist/gro_plugin_server.d.ts.map +1 -1
  70. package/dist/gro_plugin_sveltekit_app.d.ts +10 -10
  71. package/dist/gro_plugin_sveltekit_app.d.ts.map +1 -1
  72. package/dist/gro_plugin_sveltekit_app.js +2 -2
  73. package/dist/gro_plugin_sveltekit_library.d.ts +4 -4
  74. package/dist/gro_plugin_sveltekit_library.d.ts.map +1 -1
  75. package/dist/gro_plugin_sveltekit_library.js +2 -2
  76. package/dist/index.d.ts +3 -3
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +1 -1
  79. package/dist/input_path.d.ts +30 -30
  80. package/dist/input_path.d.ts.map +1 -1
  81. package/dist/input_path.js +2 -2
  82. package/dist/invoke.js +1 -1
  83. package/dist/invoke_task.d.ts +3 -3
  84. package/dist/invoke_task.d.ts.map +1 -1
  85. package/dist/invoke_task.js +4 -4
  86. package/dist/lint.task.d.ts.map +1 -1
  87. package/dist/lint.task.js +2 -2
  88. package/dist/modules.d.ts +20 -20
  89. package/dist/modules.d.ts.map +1 -1
  90. package/dist/modules.js +2 -2
  91. package/dist/package_json.d.ts +16 -16
  92. package/dist/package_json.d.ts.map +1 -1
  93. package/dist/package_json.js +6 -6
  94. package/dist/parse_exports.d.ts +7 -7
  95. package/dist/parse_exports.d.ts.map +1 -1
  96. package/dist/parse_exports.js +3 -3
  97. package/dist/parse_exports_context.d.ts +3 -3
  98. package/dist/parse_exports_context.d.ts.map +1 -1
  99. package/dist/parse_exports_context.js +1 -1
  100. package/dist/parse_imports.d.ts +3 -3
  101. package/dist/parse_imports.d.ts.map +1 -1
  102. package/dist/parse_imports.js +2 -2
  103. package/dist/paths.d.ts +6 -6
  104. package/dist/paths.d.ts.map +1 -1
  105. package/dist/plugin.d.ts +13 -13
  106. package/dist/plugin.d.ts.map +1 -1
  107. package/dist/plugin.js +1 -1
  108. package/dist/publish.task.d.ts.map +1 -1
  109. package/dist/publish.task.js +12 -12
  110. package/dist/reinstall.task.d.ts.map +1 -1
  111. package/dist/reinstall.task.js +4 -4
  112. package/dist/resolve_specifier.d.ts +4 -4
  113. package/dist/resolve_specifier.d.ts.map +1 -1
  114. package/dist/run.task.d.ts +5 -1
  115. package/dist/run.task.d.ts.map +1 -1
  116. package/dist/run.task.js +25 -15
  117. package/dist/run_gen.d.ts +4 -4
  118. package/dist/run_gen.d.ts.map +1 -1
  119. package/dist/run_task.d.ts +4 -4
  120. package/dist/run_task.d.ts.map +1 -1
  121. package/dist/run_task.js +3 -3
  122. package/dist/search_fs.d.ts +6 -6
  123. package/dist/search_fs.d.ts.map +1 -1
  124. package/dist/src_json.d.ts +6 -6
  125. package/dist/src_json.d.ts.map +1 -1
  126. package/dist/src_json.js +3 -3
  127. package/dist/svelte_config.d.ts +3 -3
  128. package/dist/svelte_config.d.ts.map +1 -1
  129. package/dist/sveltekit_helpers.d.ts +5 -5
  130. package/dist/sveltekit_helpers.d.ts.map +1 -1
  131. package/dist/sveltekit_helpers.js +5 -5
  132. package/dist/sveltekit_shim_app.d.ts +2 -2
  133. package/dist/sveltekit_shim_app.d.ts.map +1 -1
  134. package/dist/sync.task.d.ts.map +1 -1
  135. package/dist/sync.task.js +2 -2
  136. package/dist/task.d.ts +54 -54
  137. package/dist/task.d.ts.map +1 -1
  138. package/dist/task.js +3 -3
  139. package/dist/task_logging.d.ts +3 -3
  140. package/dist/task_logging.d.ts.map +1 -1
  141. package/dist/test.task.d.ts.map +1 -1
  142. package/dist/test.task.js +4 -4
  143. package/dist/typecheck.task.d.ts.map +1 -1
  144. package/dist/typecheck.task.js +4 -4
  145. package/dist/upgrade.task.d.ts.map +1 -1
  146. package/dist/upgrade.task.js +5 -5
  147. package/dist/watch_dir.d.ts +10 -10
  148. package/dist/watch_dir.d.ts.map +1 -1
  149. package/package.json +3 -3
  150. package/src/lib/args.ts +9 -9
  151. package/src/lib/build.task.ts +2 -2
  152. package/src/lib/build_cache.ts +18 -18
  153. package/src/lib/changelog.ts +10 -10
  154. package/src/lib/changeset.task.ts +16 -16
  155. package/src/lib/changeset_helpers.ts +4 -4
  156. package/src/lib/check.task.ts +3 -3
  157. package/src/lib/clean.task.ts +2 -2
  158. package/src/lib/cli.ts +7 -7
  159. package/src/lib/commit.task.ts +2 -2
  160. package/src/lib/deploy.task.ts +15 -15
  161. package/src/lib/dev.task.ts +2 -2
  162. package/src/lib/disknode.ts +4 -4
  163. package/src/lib/esbuild_helpers.ts +2 -2
  164. package/src/lib/esbuild_plugin_external_worker.ts +7 -7
  165. package/src/lib/esbuild_plugin_svelte.ts +4 -4
  166. package/src/lib/esbuild_plugin_sveltekit_shim_alias.ts +2 -2
  167. package/src/lib/esbuild_plugin_sveltekit_shim_app.ts +5 -5
  168. package/src/lib/esbuild_plugin_sveltekit_shim_env.ts +2 -2
  169. package/src/lib/filer.ts +35 -35
  170. package/src/lib/format.task.ts +2 -2
  171. package/src/lib/format_directory.ts +2 -2
  172. package/src/lib/gen.task.ts +19 -19
  173. package/src/lib/gen.ts +85 -85
  174. package/src/lib/gen_helpers.ts +17 -17
  175. package/src/lib/github.ts +6 -6
  176. package/src/lib/gro.config.default.ts +2 -2
  177. package/src/lib/gro_config.ts +28 -28
  178. package/src/lib/gro_helpers.ts +2 -2
  179. package/src/lib/gro_plugin_gen.ts +5 -5
  180. package/src/lib/gro_plugin_server.ts +8 -8
  181. package/src/lib/gro_plugin_sveltekit_app.ts +15 -15
  182. package/src/lib/gro_plugin_sveltekit_library.ts +6 -6
  183. package/src/lib/index.ts +3 -3
  184. package/src/lib/input_path.ts +56 -56
  185. package/src/lib/invoke.ts +2 -2
  186. package/src/lib/invoke_task.ts +7 -7
  187. package/src/lib/lint.task.ts +2 -2
  188. package/src/lib/modules.ts +31 -31
  189. package/src/lib/package_json.ts +27 -27
  190. package/src/lib/parse_exports.ts +15 -15
  191. package/src/lib/parse_exports_context.ts +9 -9
  192. package/src/lib/parse_imports.ts +6 -6
  193. package/src/lib/paths.ts +6 -6
  194. package/src/lib/plugin.ts +17 -17
  195. package/src/lib/publish.task.ts +13 -13
  196. package/src/lib/reinstall.task.ts +4 -4
  197. package/src/lib/resolve_specifier.ts +5 -5
  198. package/src/lib/run.task.ts +28 -17
  199. package/src/lib/run_gen.ts +14 -14
  200. package/src/lib/run_task.ts +8 -8
  201. package/src/lib/search_fs.ts +13 -13
  202. package/src/lib/src_json.ts +13 -13
  203. package/src/lib/svelte_config.ts +2 -2
  204. package/src/lib/sveltekit_helpers.ts +12 -12
  205. package/src/lib/sveltekit_shim_app.ts +3 -3
  206. package/src/lib/sync.task.ts +2 -2
  207. package/src/lib/task.ts +63 -63
  208. package/src/lib/task_logging.ts +11 -11
  209. package/src/lib/test.task.ts +4 -4
  210. package/src/lib/typecheck.task.ts +4 -4
  211. package/src/lib/upgrade.task.ts +7 -7
  212. package/src/lib/watch_dir.ts +10 -10
@@ -2,20 +2,28 @@ import {z} from 'zod';
2
2
  import {styleText as st} from 'node:util';
3
3
  import {existsSync} from 'node:fs';
4
4
 
5
- import {Task_Error, type Task} from './task.ts';
5
+ import {TaskError, type Task} from './task.ts';
6
6
  import {resolve_gro_module_path, spawn_with_loader} from './gro_helpers.ts';
7
+ import {serialize_args} from './args.ts';
7
8
 
8
- // TODO maybe delete this? if misused is a security risk,
9
- // and I'm not using it for anything that couldn't be done with Node directly atm.
10
- // It could potentially be more useful if I keep building on the task system.
9
+ /**
10
+ * Runs a TypeScript file with Gro's loader, forwarding all args to the script.
11
+ * Useful for scripts that need SvelteKit shims ($lib, $env, etc).
12
+ */
11
13
 
12
14
  /** @nodocs */
13
- export const Args = z.strictObject({
14
- _: z
15
- .array(z.string())
16
- .meta({description: 'the file path to run and other node CLI args'})
17
- .default([]),
18
- });
15
+ export const Args = z
16
+ .object({
17
+ _: z.array(z.string()).meta({description: 'the file path to run'}).default([]),
18
+ })
19
+ .catchall(
20
+ z.union([
21
+ z.string(),
22
+ z.number(),
23
+ z.boolean(),
24
+ z.array(z.union([z.string(), z.number(), z.boolean()])),
25
+ ]),
26
+ );
19
27
  export type Args = z.infer<typeof Args>;
20
28
 
21
29
  /** @nodocs */
@@ -23,24 +31,27 @@ export const task: Task<Args> = {
23
31
  summary: 'execute a file with the loader, like `node` but works for TypeScript',
24
32
  Args,
25
33
  run: async ({args, log}) => {
26
- const {
27
- _: [path, ...argv],
28
- } = args;
34
+ const {_, ...forwarded_args} = args;
35
+ const [path, ...positional_argv] = _;
29
36
 
30
37
  if (!path) {
31
- log.info(st('green', '\n\nUsage: ') + st('cyan', 'gro run path/to/file.ts [...node_args]\n'));
38
+ log.info(st('green', '\n\nUsage: ') + st('cyan', 'gro run path/to/file.ts [...args]\n'));
32
39
  return;
33
40
  }
34
41
 
35
42
  if (!existsSync(path)) {
36
- throw new Task_Error('Cannot find file to run at path: ' + path);
43
+ throw new TaskError('Cannot find file to run at path: ' + path);
37
44
  }
38
45
 
46
+ // Reconstruct argv: positional args + serialized named args
47
+ const named_argv = serialize_args(forwarded_args);
48
+ const full_argv = [...positional_argv, ...named_argv];
49
+
39
50
  const loader_path = resolve_gro_module_path('loader.js');
40
51
 
41
- const spawned = await spawn_with_loader(loader_path, path, argv);
52
+ const spawned = await spawn_with_loader(loader_path, path, full_argv);
42
53
  if (!spawned.ok) {
43
- throw new Task_Error(`\`gro run ${path}\` failed with exit code ${spawned.code}`);
54
+ throw new TaskError(`\`gro run ${path}\` failed with exit code ${spawned.code}`);
44
55
  }
45
56
  },
46
57
  };
@@ -4,43 +4,43 @@ import type {Timings} from '@ryanatkn/belt/timings.js';
4
4
  import type {Logger} from '@ryanatkn/belt/log.js';
5
5
 
6
6
  import {
7
- type Gen_Results,
8
- type Genfile_Module_Result,
9
- type Gen_Context,
10
- type Genfile_Module_Meta,
7
+ type GenResults,
8
+ type GenfileModuleResult,
9
+ type GenContext,
10
+ type GenfileModuleMeta,
11
11
  to_gen_result,
12
- type Raw_Gen_Result,
12
+ type RawGenResult,
13
13
  normalize_gen_config,
14
14
  } from './gen.ts';
15
15
  import {print_path, to_root_path} from './paths.ts';
16
16
  import type {format_file as base_format_file} from './format_file.ts';
17
- import type {Gro_Config} from './gro_config.ts';
17
+ import type {GroConfig} from './gro_config.ts';
18
18
  import {default_svelte_config} from './svelte_config.ts';
19
19
  import type {Filer} from './filer.ts';
20
- import type {Invoke_Task} from './task.ts';
20
+ import type {InvokeTask} from './task.ts';
21
21
 
22
22
  export const GEN_NO_PROD_MESSAGE = 'gen runs only during development';
23
23
 
24
24
  export const run_gen = async (
25
- gen_modules: Array<Genfile_Module_Meta>,
26
- config: Gro_Config,
25
+ gen_modules: Array<GenfileModuleMeta>,
26
+ config: GroConfig,
27
27
  filer: Filer,
28
28
  log: Logger,
29
29
  timings: Timings,
30
- invoke_task: Invoke_Task,
30
+ invoke_task: InvokeTask,
31
31
  format_file?: typeof base_format_file,
32
- ): Promise<Gen_Results> => {
32
+ ): Promise<GenResults> => {
33
33
  let input_count = 0;
34
34
  let output_count = 0;
35
35
  const timing_for_run_gen = timings.start('run_gen');
36
36
  const results = await Promise.all(
37
- gen_modules.map(async (module_meta): Promise<Genfile_Module_Result> => {
37
+ gen_modules.map(async (module_meta): Promise<GenfileModuleResult> => {
38
38
  input_count++;
39
39
  const {id} = module_meta;
40
40
  const timing_for_module = timings.start(id);
41
41
 
42
42
  const gen_config = normalize_gen_config(module_meta.mod.gen);
43
- const gen_ctx: Gen_Context = {
43
+ const gen_ctx: GenContext = {
44
44
  config,
45
45
  svelte_config: default_svelte_config,
46
46
  filer,
@@ -51,7 +51,7 @@ export const run_gen = async (
51
51
  origin_path: to_root_path(id),
52
52
  changed_file_id: undefined,
53
53
  };
54
- let raw_gen_result: Raw_Gen_Result;
54
+ let raw_gen_result: RawGenResult;
55
55
  try {
56
56
  raw_gen_result = await gen_config.generate(gen_ctx);
57
57
  } catch (err) {
@@ -6,12 +6,12 @@ import {z} from 'zod';
6
6
  import {parse_args, type Args} from './args.ts';
7
7
  import type {invoke_task as base_invoke_task} from './invoke_task.ts';
8
8
  import {log_task_help} from './task_logging.ts';
9
- import type {Gro_Config} from './gro_config.ts';
10
- import {Task_Error, type Task_Module_Meta} from './task.ts';
9
+ import type {GroConfig} from './gro_config.ts';
10
+ import {TaskError, type TaskModuleMeta} from './task.ts';
11
11
  import {default_svelte_config} from './svelte_config.ts';
12
12
  import type {Filer} from './filer.ts';
13
13
 
14
- export type Run_Task_Result =
14
+ export type RunTaskResult =
15
15
  | {
16
16
  ok: true;
17
17
  output: unknown;
@@ -23,14 +23,14 @@ export type Run_Task_Result =
23
23
  };
24
24
 
25
25
  export const run_task = async (
26
- task_meta: Task_Module_Meta,
26
+ task_meta: TaskModuleMeta,
27
27
  unparsed_args: Args,
28
28
  invoke_task: typeof base_invoke_task,
29
- config: Gro_Config,
29
+ config: GroConfig,
30
30
  filer: Filer,
31
31
  log: Logger,
32
32
  timings: Timings,
33
- ): Promise<Run_Task_Result> => {
33
+ ): Promise<RunTaskResult> => {
34
34
  const {task} = task_meta.mod;
35
35
 
36
36
  if (unparsed_args.help) {
@@ -43,7 +43,7 @@ export const run_task = async (
43
43
  if (task.Args) {
44
44
  const parsed = parse_args(unparsed_args, task.Args);
45
45
  if (!parsed.success) {
46
- throw new Task_Error(
46
+ throw new TaskError(
47
47
  `Failed task args validation for task '${task_meta.name}':\n${z.prettifyError(parsed.error)}`,
48
48
  );
49
49
  }
@@ -68,7 +68,7 @@ export const run_task = async (
68
68
  ok: false,
69
69
  reason: st(
70
70
  'red',
71
- err?.constructor?.name === 'Task_Error'
71
+ err?.constructor?.name === 'TaskError'
72
72
  ? (err.message as string)
73
73
  : `Unexpected error running task ${st(
74
74
  'cyan',
@@ -3,21 +3,21 @@ import {to_array} from '@ryanatkn/belt/array.js';
3
3
  import {ensure_end} from '@ryanatkn/belt/string.js';
4
4
  import {isAbsolute, join} from 'node:path';
5
5
  import {existsSync, readdirSync} from 'node:fs';
6
- import type {File_Filter, Resolved_Path, Path_Filter} from '@ryanatkn/belt/path.js';
6
+ import type {FileFilter, ResolvedPath, PathFilter} from '@ryanatkn/belt/path.js';
7
7
 
8
- export interface Search_Fs_Options {
8
+ export interface SearchFsOptions {
9
9
  /**
10
10
  * One or more filter functions, any of which can short-circuit the search by returning `false`.
11
11
  */
12
- filter?: Path_Filter | Array<Path_Filter>;
12
+ filter?: PathFilter | Array<PathFilter>;
13
13
  /**
14
14
  * One or more file filter functions. Every filter must pass for a file to be included.
15
15
  */
16
- file_filter?: File_Filter | Array<File_Filter>;
16
+ file_filter?: FileFilter | Array<FileFilter>;
17
17
  /**
18
18
  * Pass `null` or `false` to speed things up at the cost of volatile ordering.
19
19
  */
20
- sort?: boolean | null | ((a: Resolved_Path, b: Resolved_Path) => number);
20
+ sort?: boolean | null | ((a: ResolvedPath, b: ResolvedPath) => number);
21
21
  /**
22
22
  * Set to `true` to include directories. Defaults to `false`.
23
23
  */
@@ -30,8 +30,8 @@ export interface Search_Fs_Options {
30
30
 
31
31
  export const search_fs = (
32
32
  dir: string,
33
- options: Search_Fs_Options = EMPTY_OBJECT,
34
- ): Array<Resolved_Path> => {
33
+ options: SearchFsOptions = EMPTY_OBJECT,
34
+ ): Array<ResolvedPath> => {
35
35
  const {
36
36
  filter,
37
37
  file_filter,
@@ -51,22 +51,22 @@ export const search_fs = (
51
51
 
52
52
  if (!existsSync(final_dir)) return [];
53
53
 
54
- const paths: Array<Resolved_Path> = [];
54
+ const paths: Array<ResolvedPath> = [];
55
55
  crawl(final_dir, paths, filters, file_filters, include_directories, null);
56
56
 
57
57
  return sort ? paths.sort(typeof sort === 'boolean' ? default_sort : sort) : paths;
58
58
  };
59
59
 
60
- const default_sort = (a: Resolved_Path, b: Resolved_Path): number => a.path.localeCompare(b.path);
60
+ const default_sort = (a: ResolvedPath, b: ResolvedPath): number => a.path.localeCompare(b.path);
61
61
 
62
62
  const crawl = (
63
63
  dir: string,
64
- paths: Array<Resolved_Path>,
65
- filters: Array<Path_Filter> | undefined,
66
- file_filter: Array<File_Filter> | undefined,
64
+ paths: Array<ResolvedPath>,
65
+ filters: Array<PathFilter> | undefined,
66
+ file_filter: Array<FileFilter> | undefined,
67
67
  include_directories: boolean,
68
68
  base_dir: string | null,
69
- ): Array<Resolved_Path> => {
69
+ ): Array<ResolvedPath> => {
70
70
  // This sync version is significantly faster than using the `fs/promises` version -
71
71
  // it doesn't parallelize but that's not the common case in Gro.
72
72
  const dirents = readdirSync(dir, {withFileTypes: true});
@@ -2,8 +2,8 @@ import {join} from 'node:path';
2
2
  import {ensure_end, strip_start} from '@ryanatkn/belt/string.js';
3
3
  import {existsSync} from 'node:fs';
4
4
  import ts from 'typescript';
5
- import type {Package_Json, Package_Json_Exports} from '@ryanatkn/belt/package_json.js';
6
- import {Src_Json, type Module_Json, type Identifier_Kind} from '@ryanatkn/belt/src_json.js';
5
+ import type {PackageJson, PackageJsonExports} from '@ryanatkn/belt/package_json.js';
6
+ import {SrcJson, type ModuleJson, type IdentifierKind} from '@ryanatkn/belt/src_json.js';
7
7
  import type {Logger} from '@ryanatkn/belt/log.js';
8
8
 
9
9
  import {paths, replace_extension} from './paths.ts';
@@ -11,29 +11,29 @@ import {parse_exports} from './parse_exports.ts';
11
11
  import {TS_MATCHER, SVELTE_MATCHER, JSON_MATCHER, CSS_MATCHER} from './constants.ts';
12
12
  import {search_fs} from './search_fs.ts';
13
13
 
14
- export type Src_Json_Mapper = (src_json: Src_Json) => Src_Json | null | Promise<Src_Json | null>;
14
+ export type SrcJsonMapper = (src_json: SrcJson) => SrcJson | null | Promise<SrcJson | null>;
15
15
 
16
16
  export const src_json_create = (
17
- package_json: Package_Json,
17
+ package_json: PackageJson,
18
18
  lib_path?: string,
19
19
  log?: Logger,
20
- ): Src_Json =>
21
- Src_Json.parse({
20
+ ): SrcJson =>
21
+ SrcJson.parse({
22
22
  name: package_json.name,
23
23
  version: package_json.version,
24
24
  modules: src_modules_create(package_json.exports, lib_path, log),
25
25
  });
26
26
 
27
- export const src_json_serialize = (src_json: Src_Json): string => {
28
- const parsed = Src_Json.parse(src_json);
27
+ export const src_json_serialize = (src_json: SrcJson): string => {
28
+ const parsed = SrcJson.parse(src_json);
29
29
  return JSON.stringify(parsed, null, 2) + '\n';
30
30
  };
31
31
 
32
32
  export const src_modules_create = (
33
- exports: Package_Json_Exports | undefined,
33
+ exports: PackageJsonExports | undefined,
34
34
  lib_path = paths.lib,
35
35
  log?: Logger,
36
- ): Array<Module_Json> | undefined => {
36
+ ): Array<ModuleJson> | undefined => {
37
37
  if (!exports) return;
38
38
 
39
39
  const file_paths = collect_file_paths(exports, lib_path);
@@ -58,14 +58,14 @@ export const src_modules_create = (
58
58
  );
59
59
  }
60
60
 
61
- const result: Array<Module_Json> = [];
61
+ const result: Array<ModuleJson> = [];
62
62
 
63
63
  // Process each file
64
64
  for (const {file_path} of file_paths) {
65
65
  const relative_path = file_path.replace(ensure_end(lib_path, '/'), '');
66
66
 
67
67
  const identifiers = parse_exports(file_path, program, undefined, log)
68
- .filter((d): d is {name: string; kind: Identifier_Kind} => d.kind !== null) // TODO maybe dont filter out?
68
+ .filter((d): d is {name: string; kind: IdentifierKind} => d.kind !== null) // TODO maybe dont filter out?
69
69
  .map(({name, kind}) => ({name, kind}));
70
70
 
71
71
  result.push(
@@ -84,7 +84,7 @@ export const src_modules_create = (
84
84
  };
85
85
 
86
86
  const collect_file_paths = (
87
- exports: Package_Json_Exports,
87
+ exports: PackageJsonExports,
88
88
  lib_path: string,
89
89
  ): Array<{export_key: string; file_path: string}> => {
90
90
  const file_paths: Array<{export_key: string; file_path: string}> = [];
@@ -37,7 +37,7 @@ export const load_svelte_config = async ({
37
37
  * The `base` and `assets` in particular are renamed for clarity with Gro's internal systems,
38
38
  * so these properties become first-class vocabulary inside Gro.
39
39
  */
40
- export interface Parsed_Svelte_Config {
40
+ export interface ParsedSvelteConfig {
41
41
  // TODO probably fill these out with defaults
42
42
  svelte_config: SvelteConfig | null;
43
43
  alias: Record<string, string>;
@@ -78,7 +78,7 @@ export const parse_svelte_config = async ({
78
78
  }: {
79
79
  dir_or_config?: string | SvelteConfig;
80
80
  config_filename?: string;
81
- } = EMPTY_OBJECT): Promise<Parsed_Svelte_Config> => {
81
+ } = EMPTY_OBJECT): Promise<ParsedSvelteConfig> => {
82
82
  const svelte_config =
83
83
  typeof dir_or_config === 'string'
84
84
  ? await load_svelte_config({dir: dir_or_config, config_filename})
@@ -1,11 +1,11 @@
1
1
  import type {Result} from '@ryanatkn/belt/result.js';
2
2
  import type {Logger} from '@ryanatkn/belt/log.js';
3
3
  import {join} from 'node:path';
4
- import type {Package_Json} from '@ryanatkn/belt/package_json.js';
4
+ import type {PackageJson} from '@ryanatkn/belt/package_json.js';
5
5
  import {fs_exists} from '@ryanatkn/belt/fs.js';
6
6
 
7
7
  import {has_dep} from './package_json.ts';
8
- import {default_svelte_config, type Parsed_Svelte_Config} from './svelte_config.ts';
8
+ import {default_svelte_config, type ParsedSvelteConfig} from './svelte_config.ts';
9
9
  import {
10
10
  SVELTE_CONFIG_FILENAME,
11
11
  SVELTEKIT_DEV_DIRNAME,
@@ -14,7 +14,7 @@ import {
14
14
  SVELTEKIT_CLI,
15
15
  } from './constants.ts';
16
16
  import {find_cli, spawn_cli, to_cli_name, type Cli} from './cli.ts';
17
- import {Task_Error} from './task.ts';
17
+ import {TaskError} from './task.ts';
18
18
  import {serialize_args, to_forwarded_args} from './args.ts';
19
19
 
20
20
  export const has_sveltekit_app = async (
@@ -28,8 +28,8 @@ export const has_sveltekit_app = async (
28
28
  };
29
29
 
30
30
  export const has_sveltekit_library = async (
31
- package_json: Package_Json,
32
- svelte_config: Parsed_Svelte_Config = default_svelte_config,
31
+ package_json: PackageJson,
32
+ svelte_config: ParsedSvelteConfig = default_svelte_config,
33
33
  dep_name = SVELTE_PACKAGE_DEP_NAME,
34
34
  ): Promise<Result<object, {message: string}>> => {
35
35
  const has_sveltekit_app_result = await has_sveltekit_app();
@@ -57,11 +57,11 @@ export const sveltekit_sync = async (
57
57
  ): Promise<void> => {
58
58
  const result = await spawn_cli(sveltekit_cli, ['sync']);
59
59
  if (!result) {
60
- throw new Task_Error(
60
+ throw new TaskError(
61
61
  `Failed to find SvelteKit CLI \`${to_cli_name(sveltekit_cli)}\`, do you need to run \`${pm_cli} install\`?`,
62
62
  );
63
63
  } else if (!result.ok) {
64
- throw new Task_Error(`Failed ${to_cli_name(sveltekit_cli)} sync`);
64
+ throw new TaskError(`Failed ${to_cli_name(sveltekit_cli)} sync`);
65
65
  }
66
66
  };
67
67
 
@@ -100,7 +100,7 @@ export const sveltekit_sync_if_obviously_needed = async (
100
100
  * Options to the SvelteKit packaging CLI.
101
101
  * @see https://kit.svelte.dev/docs/packaging#options
102
102
  */
103
- export interface Svelte_Package_Options {
103
+ export interface SveltePackageOptions {
104
104
  /**
105
105
  * Watch files in src/lib for changes and rebuild the package
106
106
  */
@@ -147,22 +147,22 @@ export interface Svelte_Package_Options {
147
147
  }
148
148
 
149
149
  export const run_svelte_package = async (
150
- package_json: Package_Json,
151
- options: Svelte_Package_Options | undefined,
150
+ package_json: PackageJson,
151
+ options: SveltePackageOptions | undefined,
152
152
  cli: string | Cli,
153
153
  log: Logger,
154
154
  pm_cli: string,
155
155
  ): Promise<void> => {
156
156
  const has_sveltekit_library_result = await has_sveltekit_library(package_json);
157
157
  if (!has_sveltekit_library_result.ok) {
158
- throw new Task_Error(
158
+ throw new TaskError(
159
159
  'Failed to find SvelteKit library: ' + has_sveltekit_library_result.message,
160
160
  );
161
161
  }
162
162
  const cli_name = typeof cli === 'string' ? cli : cli.name;
163
163
  const found_svelte_package_cli = cli === cli_name ? find_cli(cli) : (cli as Cli);
164
164
  if (found_svelte_package_cli?.kind !== 'local') {
165
- throw new Task_Error(
165
+ throw new TaskError(
166
166
  `Failed to find SvelteKit packaging CLI \`${cli_name}\`, do you need to run \`${pm_cli} install\`?`,
167
167
  );
168
168
  }
@@ -1,4 +1,4 @@
1
- import type {Parsed_Svelte_Config} from './svelte_config.ts';
1
+ import type {ParsedSvelteConfig} from './svelte_config.ts';
2
2
 
3
3
  export const SVELTEKIT_SHIM_APP_PATHS_MATCHER = /\/util\/sveltekit_shim_app_paths\.js$/;
4
4
  export const SVELTEKIT_SHIM_APP_ENVIRONMENT_MATCHER = /\/util\/sveltekit_shim_app_environment\.js$/;
@@ -16,8 +16,8 @@ export const sveltekit_shim_app_specifiers = new Map([
16
16
  ]);
17
17
 
18
18
  export const render_sveltekit_shim_app_paths = (
19
- base_url: Parsed_Svelte_Config['base_url'] = '',
20
- assets_url: Parsed_Svelte_Config['assets_url'] = '',
19
+ base_url: ParsedSvelteConfig['base_url'] = '',
20
+ assets_url: ParsedSvelteConfig['assets_url'] = '',
21
21
  ): string => `// shim for $app/paths
22
22
  // @see https://github.com/sveltejs/kit/issues/1485
23
23
 
@@ -1,7 +1,7 @@
1
1
  import {z} from 'zod';
2
2
  import {spawn} from '@ryanatkn/belt/process.js';
3
3
 
4
- import {Task_Error, type Task} from './task.ts';
4
+ import {TaskError, type Task} from './task.ts';
5
5
  import {sync_package_json} from './package_json.ts';
6
6
  import {sveltekit_sync} from './sveltekit_helpers.ts';
7
7
 
@@ -27,7 +27,7 @@ export const task: Task<Args> = {
27
27
  if (install) {
28
28
  const result = await spawn(config.pm_cli, ['install']);
29
29
  if (!result.ok) {
30
- throw new Task_Error(`Failed \`${config.pm_cli} install\``);
30
+ throw new TaskError(`Failed \`${config.pm_cli} install\``);
31
31
  }
32
32
  }
33
33