@ryanatkn/gro 0.128.0 → 0.129.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.
Files changed (82) hide show
  1. package/README.md +5 -5
  2. package/dist/args.d.ts +2 -2
  3. package/dist/args.js +2 -2
  4. package/dist/changelog.js +1 -1
  5. package/dist/changelog.test.js +2 -2
  6. package/dist/changeset.task.js +6 -6
  7. package/dist/cli.js +1 -1
  8. package/dist/config.d.ts +1 -3
  9. package/dist/config.js +2 -2
  10. package/dist/deploy.task.js +1 -1
  11. package/dist/docs/README.gen.md.js +1 -1
  12. package/dist/docs/dev.md +1 -1
  13. package/dist/docs/package_json.md +2 -1
  14. package/dist/env.d.ts +2 -2
  15. package/dist/env.js +10 -11
  16. package/dist/esbuild_helpers.js +2 -1
  17. package/dist/esbuild_plugin_external_worker.js +1 -1
  18. package/dist/esbuild_plugin_svelte.js +3 -3
  19. package/dist/esbuild_plugin_sveltekit_local_imports.js +2 -2
  20. package/dist/esbuild_plugin_sveltekit_shim_env.js +2 -2
  21. package/dist/format_file.js +2 -2
  22. package/dist/gen.d.ts +10 -12
  23. package/dist/gen.js +3 -3
  24. package/dist/gen.task.js +1 -1
  25. package/dist/gen.test.js +2 -5
  26. package/dist/git.d.ts +2 -2
  27. package/dist/gro.config.default.js +1 -1
  28. package/dist/gro.js +2 -2
  29. package/dist/gro_helpers.d.ts +6 -1
  30. package/dist/gro_helpers.js +22 -11
  31. package/dist/gro_plugin_gen.js +3 -4
  32. package/dist/gro_plugin_server.d.ts +5 -7
  33. package/dist/gro_plugin_server.js +3 -3
  34. package/dist/gro_plugin_sveltekit_app.d.ts +3 -5
  35. package/dist/gro_plugin_sveltekit_app.js +38 -28
  36. package/dist/gro_plugin_sveltekit_library.d.ts +2 -2
  37. package/dist/gro_plugin_sveltekit_library.js +2 -2
  38. package/dist/input_path.test.js +1 -1
  39. package/dist/invoke_task.js +3 -3
  40. package/dist/lint.task.js +1 -2
  41. package/dist/loader.js +3 -3
  42. package/dist/package.d.ts +8 -10
  43. package/dist/package.gen.js +3 -3
  44. package/dist/package.js +20 -16
  45. package/dist/package_json.d.ts +4 -6
  46. package/dist/package_json.js +14 -15
  47. package/dist/package_json.test.js +12 -12
  48. package/dist/path.d.ts +2 -6
  49. package/dist/plugin.d.ts +1 -3
  50. package/dist/plugin.js +2 -2
  51. package/dist/plugin.test.js +3 -3
  52. package/dist/publish.task.js +4 -4
  53. package/dist/reinstall.task.js +1 -1
  54. package/dist/release.task.js +2 -2
  55. package/dist/resolve.task.js +1 -1
  56. package/dist/resolve_node_specifier.d.ts +1 -1
  57. package/dist/resolve_node_specifier.js +2 -2
  58. package/dist/resolve_node_specifier.test.js +6 -6
  59. package/dist/resolve_specifier.d.ts +1 -1
  60. package/dist/resolve_specifier.js +1 -1
  61. package/dist/resolve_specifier.test.js +16 -16
  62. package/dist/run.task.js +1 -1
  63. package/dist/run_gen.test.js +11 -11
  64. package/dist/run_task.js +1 -1
  65. package/dist/run_task.test.js +3 -2
  66. package/dist/src_json.d.ts +3 -5
  67. package/dist/src_json.js +11 -13
  68. package/dist/src_json.test.js +2 -2
  69. package/dist/sveltekit_config.js +1 -1
  70. package/dist/sveltekit_helpers.d.ts +4 -4
  71. package/dist/sveltekit_helpers.js +4 -4
  72. package/dist/sveltekit_shim_env.d.ts +1 -1
  73. package/dist/sveltekit_shim_env.js +2 -2
  74. package/dist/task.d.ts +1 -1
  75. package/dist/task_logging.d.ts +1 -1
  76. package/dist/task_logging.js +3 -4
  77. package/dist/upgrade.task.js +1 -1
  78. package/dist/watch_dir.d.ts +1 -3
  79. package/dist/watch_dir.js +6 -6
  80. package/package.json +20 -22
  81. package/dist/fs.test.d.ts +0 -1
  82. package/dist/fs.test.js +0 -16
package/dist/task.d.ts CHANGED
@@ -10,7 +10,7 @@ import { type Input_Path, type Resolved_Input_File, type Resolved_Input_Path } f
10
10
  import { type Load_Modules_Failure, type Module_Meta } from './modules.js';
11
11
  export interface Task<T_Args = Args, // same as `z.infer<typeof Args>`
12
12
  T_Args_Schema extends z.ZodType = z.ZodType, T_Return = unknown> {
13
- run: (ctx: Task_Context<T_Args>) => Promise<T_Return>;
13
+ run: (ctx: Task_Context<T_Args>) => T_Return | Promise<T_Return>;
14
14
  summary?: string;
15
15
  Args?: T_Args_Schema;
16
16
  }
@@ -1,5 +1,5 @@
1
1
  import type { Logger } from '@ryanatkn/belt/log.js';
2
2
  import type { Loaded_Tasks, Task_Module_Meta } from './task.js';
3
- export declare const log_tasks: (log: Logger, loaded_tasks: Loaded_Tasks, log_intro?: boolean) => Promise<void>;
3
+ export declare const log_tasks: (log: Logger, loaded_tasks: Loaded_Tasks, log_intro?: boolean) => void;
4
4
  export declare const log_error_reasons: (log: Logger, reasons: string[]) => void;
5
5
  export declare const log_task_help: (log: Logger, meta: Task_Module_Meta) => void;
@@ -3,7 +3,7 @@ import { plural } from '@ryanatkn/belt/string.js';
3
3
  import { print_value } from '@ryanatkn/belt/print.js';
4
4
  import { ZodFirstPartyTypeKind } from 'zod';
5
5
  import { print_path } from './paths.js';
6
- export const log_tasks = async (log, loaded_tasks, log_intro = true) => {
6
+ export const log_tasks = (log, loaded_tasks, log_intro = true) => {
7
7
  const { modules, found_tasks } = loaded_tasks;
8
8
  const { resolved_input_files_by_root_dir } = found_tasks;
9
9
  const logged = [];
@@ -20,7 +20,7 @@ export const log_tasks = async (log, loaded_tasks, log_intro = true) => {
20
20
  const longest_task_name = to_max_length(modules, (m) => m.name);
21
21
  for (const resolved_input_file of resolved_input_files) {
22
22
  const meta = modules.find((m) => m.id === resolved_input_file.id);
23
- logged.push('\n' + cyan(pad(meta.name, longest_task_name)), ' ', meta.mod.task.summary || '');
23
+ logged.push('\n' + cyan(pad(meta.name, longest_task_name)), ' ', meta.mod.task.summary ?? '');
24
24
  }
25
25
  }
26
26
  log[log_intro ? 'info' : 'plain'](logged.join('') + '\n');
@@ -34,7 +34,7 @@ const ARGS_PROPERTY_NAME = '[...args]';
34
34
  export const log_task_help = (log, meta) => {
35
35
  const { name, mod: { task }, } = meta;
36
36
  const logged = [];
37
- logged.push(cyan(name), 'help', cyan(`\n\ngro ${name}`) + `: ${task.summary || '(no summary available)'}\n`);
37
+ logged.push(cyan(name), 'help', cyan(`\n\ngro ${name}`) + `: ${task.summary ?? '(no summary available)'}\n`);
38
38
  if (task.Args) {
39
39
  const properties = to_arg_properties(task.Args._def, meta);
40
40
  // TODO hacky padding for some quick and dirty tables
@@ -121,7 +121,6 @@ const to_args_schema_default = ({ _def }) => {
121
121
  if (subschema) {
122
122
  return to_args_schema_default(subschema);
123
123
  }
124
- return undefined;
125
124
  };
126
125
  const to_subschema = (_def) => {
127
126
  if ('type' in _def) {
@@ -32,7 +32,7 @@ export const task = {
32
32
  if (pull) {
33
33
  await git_pull(origin);
34
34
  }
35
- const package_json = await load_package_json();
35
+ const package_json = load_package_json();
36
36
  const all_deps = to_deps(package_json);
37
37
  const deps = only.length
38
38
  ? all_deps.filter((d) => only.includes(d.key))
@@ -10,9 +10,7 @@ export interface Watcher_Change {
10
10
  is_directory: boolean;
11
11
  }
12
12
  export type Watcher_Change_Type = 'create' | 'update' | 'delete';
13
- export interface Watcher_Change_Callback {
14
- (change: Watcher_Change): void;
15
- }
13
+ export type Watcher_Change_Callback = (change: Watcher_Change) => void;
16
14
  export interface Options {
17
15
  dir: string;
18
16
  on_change: Watcher_Change_Callback;
package/dist/watch_dir.js CHANGED
@@ -9,22 +9,22 @@ export const watch_dir = ({ dir, on_change, filter, absolute = true, chokidar: c
9
9
  return {
10
10
  init: async () => {
11
11
  watcher = chokidar.watch(dir, chokidar_options);
12
- watcher.on('add', async (path, s) => {
13
- const stats = s || statSync(path);
12
+ watcher.on('add', (path, s) => {
13
+ const stats = s ?? statSync(path);
14
14
  const final_path = absolute ? path : relative(dir, path);
15
15
  if (filter && !filter(final_path, stats.isDirectory()))
16
16
  return;
17
17
  on_change({ type: 'create', path: final_path, is_directory: stats.isDirectory() });
18
18
  });
19
- watcher.on('addDir', async (path, s) => {
20
- const stats = s || statSync(path);
19
+ watcher.on('addDir', (path, s) => {
20
+ const stats = s ?? statSync(path);
21
21
  const final_path = absolute ? path : relative(dir, path);
22
22
  if (filter && !filter(final_path, stats.isDirectory()))
23
23
  return;
24
24
  on_change({ type: 'create', path: final_path, is_directory: stats.isDirectory() });
25
25
  });
26
- watcher.on('change', async (path, s) => {
27
- const stats = s || statSync(path);
26
+ watcher.on('change', (path, s) => {
27
+ const stats = s ?? statSync(path);
28
28
  const final_path = absolute ? path : relative(dir, path);
29
29
  if (filter && !filter(final_path, stats.isDirectory()))
30
30
  return;
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@ryanatkn/gro",
3
- "version": "0.128.0",
3
+ "version": "0.129.1",
4
4
  "description": "task runner and toolkit extending SvelteKit",
5
5
  "motto": "generate, run, optimize",
6
6
  "glyph": "🌰",
7
- "logo": "favicon.png",
7
+ "logo": "logo.svg",
8
8
  "logo_alt": "a pixelated green oak acorn with a glint of sun",
9
9
  "public": true,
10
10
  "license": "MIT",
@@ -21,9 +21,14 @@
21
21
  "bugs": "https://github.com/ryanatkn/gro/issues",
22
22
  "funding": "https://www.ryanatkn.com/funding",
23
23
  "scripts": {
24
- "build": "rm -rf .gro dist && svelte-kit sync && svelte-package && chmod +x ./dist/gro.js && npm link -f",
24
+ "bootstrap": "rm -rf .gro dist && svelte-kit sync && svelte-package && chmod +x ./dist/gro.js && npm link -f",
25
25
  "start": "gro dev",
26
- "test": "gro test"
26
+ "dev": "gro dev",
27
+ "build": "gro build",
28
+ "check": "gro check",
29
+ "test": "gro test",
30
+ "preview": "vite preview",
31
+ "deploy": "gro deploy"
27
32
  },
28
33
  "type": "module",
29
34
  "engines": {
@@ -44,10 +49,11 @@
44
49
  "typescript"
45
50
  ],
46
51
  "dependencies": {
47
- "@ryanatkn/belt": "^0.24.1",
52
+ "@ryanatkn/belt": "^0.24.2",
48
53
  "chokidar": "^3.6.0",
49
54
  "dotenv": "^16.4.5",
50
55
  "es-module-lexer": "^1.5.4",
56
+ "esm-env": "^1.0.0",
51
57
  "mri": "^1.2.0",
52
58
  "prettier": "^3.3.2",
53
59
  "prettier-plugin-svelte": "^3.2.5",
@@ -56,38 +62,30 @@
56
62
  "zod": "^3.23.8"
57
63
  },
58
64
  "peerDependencies": {
59
- "esbuild": "^0.21",
65
+ "esbuild": "^0.21.0",
60
66
  "svelte": "^5.0.0-next.0"
61
67
  },
62
68
  "devDependencies": {
63
69
  "@changesets/changelog-git": "^0.2.0",
64
70
  "@changesets/types": "^6.0.0",
65
- "@ryanatkn/eslint-config": "^0.1.3",
66
- "@ryanatkn/fuz": "^0.106.0",
67
- "@ryanatkn/moss": "^0.6.2",
71
+ "@ryanatkn/eslint-config": "^0.4.0",
72
+ "@ryanatkn/fuz": "^0.108.2",
73
+ "@ryanatkn/moss": "^0.7.0",
68
74
  "@sveltejs/adapter-static": "^3.0.2",
69
75
  "@sveltejs/kit": "^2.5.18",
70
76
  "@sveltejs/package": "^2.3.2",
71
77
  "@sveltejs/vite-plugin-svelte": "^3.1.1",
72
78
  "@types/fs-extra": "^11.0.4",
73
- "@types/node": "^20.14.9",
74
- "@typescript-eslint/eslint-plugin": "^7.14.1",
75
- "@typescript-eslint/parser": "^7.14.1",
79
+ "@types/node": "^20.14.10",
76
80
  "esbuild": "^0.21.5",
77
- "eslint": "^8.57.0",
81
+ "eslint": "^9.6.0",
78
82
  "eslint-plugin-svelte": "^2.41.0",
79
- "svelte": "^5.0.0-next.167",
83
+ "svelte": "^5.0.0-next.175",
80
84
  "svelte-check": "^3.8.4",
81
- "typescript": "^5.5.2",
85
+ "typescript": "^5.5.3",
86
+ "typescript-eslint": "^8.0.0-alpha.39",
82
87
  "uvu": "^0.5.6"
83
88
  },
84
- "eslintConfig": {
85
- "root": true,
86
- "extends": "@ryanatkn",
87
- "rules": {
88
- "no-console": 1
89
- }
90
- },
91
89
  "prettier": {
92
90
  "plugins": [
93
91
  "prettier-plugin-svelte"
package/dist/fs.test.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/fs.test.js DELETED
@@ -1,16 +0,0 @@
1
- import { test } from 'uvu';
2
- import * as assert from 'uvu/assert';
3
- import { existsSync } from 'node:fs';
4
- test('file exists', async () => {
5
- assert.ok(existsSync('./src/lib/fs.ts'));
6
- });
7
- test('file does not exist', async () => {
8
- assert.ok(!existsSync('./src/lib/existsssss.ts'));
9
- });
10
- test('directory exists', async () => {
11
- assert.ok(existsSync('./src/lib'));
12
- });
13
- test('directory does not exist', async () => {
14
- assert.ok(!existsSync('./src/libbbbbbbb'));
15
- });
16
- test.run();