@ryanatkn/gro 0.176.0 → 0.177.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 (211) 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.map +1 -1
  115. package/dist/run.task.js +9 -6
  116. package/dist/run_gen.d.ts +4 -4
  117. package/dist/run_gen.d.ts.map +1 -1
  118. package/dist/run_task.d.ts +4 -4
  119. package/dist/run_task.d.ts.map +1 -1
  120. package/dist/run_task.js +3 -3
  121. package/dist/search_fs.d.ts +6 -6
  122. package/dist/search_fs.d.ts.map +1 -1
  123. package/dist/src_json.d.ts +6 -6
  124. package/dist/src_json.d.ts.map +1 -1
  125. package/dist/src_json.js +3 -3
  126. package/dist/svelte_config.d.ts +3 -3
  127. package/dist/svelte_config.d.ts.map +1 -1
  128. package/dist/sveltekit_helpers.d.ts +5 -5
  129. package/dist/sveltekit_helpers.d.ts.map +1 -1
  130. package/dist/sveltekit_helpers.js +5 -5
  131. package/dist/sveltekit_shim_app.d.ts +2 -2
  132. package/dist/sveltekit_shim_app.d.ts.map +1 -1
  133. package/dist/sync.task.d.ts.map +1 -1
  134. package/dist/sync.task.js +2 -2
  135. package/dist/task.d.ts +54 -54
  136. package/dist/task.d.ts.map +1 -1
  137. package/dist/task.js +3 -3
  138. package/dist/task_logging.d.ts +3 -3
  139. package/dist/task_logging.d.ts.map +1 -1
  140. package/dist/test.task.d.ts.map +1 -1
  141. package/dist/test.task.js +4 -4
  142. package/dist/typecheck.task.d.ts.map +1 -1
  143. package/dist/typecheck.task.js +4 -4
  144. package/dist/upgrade.task.d.ts.map +1 -1
  145. package/dist/upgrade.task.js +5 -5
  146. package/dist/watch_dir.d.ts +10 -10
  147. package/dist/watch_dir.d.ts.map +1 -1
  148. package/package.json +3 -3
  149. package/src/lib/args.ts +9 -9
  150. package/src/lib/build.task.ts +2 -2
  151. package/src/lib/build_cache.ts +18 -18
  152. package/src/lib/changelog.ts +10 -10
  153. package/src/lib/changeset.task.ts +16 -16
  154. package/src/lib/changeset_helpers.ts +4 -4
  155. package/src/lib/check.task.ts +3 -3
  156. package/src/lib/clean.task.ts +2 -2
  157. package/src/lib/cli.ts +7 -7
  158. package/src/lib/commit.task.ts +2 -2
  159. package/src/lib/deploy.task.ts +15 -15
  160. package/src/lib/dev.task.ts +2 -2
  161. package/src/lib/disknode.ts +4 -4
  162. package/src/lib/esbuild_helpers.ts +2 -2
  163. package/src/lib/esbuild_plugin_external_worker.ts +7 -7
  164. package/src/lib/esbuild_plugin_svelte.ts +4 -4
  165. package/src/lib/esbuild_plugin_sveltekit_shim_alias.ts +2 -2
  166. package/src/lib/esbuild_plugin_sveltekit_shim_app.ts +5 -5
  167. package/src/lib/esbuild_plugin_sveltekit_shim_env.ts +2 -2
  168. package/src/lib/filer.ts +35 -35
  169. package/src/lib/format.task.ts +2 -2
  170. package/src/lib/format_directory.ts +2 -2
  171. package/src/lib/gen.task.ts +19 -19
  172. package/src/lib/gen.ts +85 -85
  173. package/src/lib/gen_helpers.ts +17 -17
  174. package/src/lib/github.ts +6 -6
  175. package/src/lib/gro.config.default.ts +2 -2
  176. package/src/lib/gro_config.ts +28 -28
  177. package/src/lib/gro_helpers.ts +2 -2
  178. package/src/lib/gro_plugin_gen.ts +5 -5
  179. package/src/lib/gro_plugin_server.ts +8 -8
  180. package/src/lib/gro_plugin_sveltekit_app.ts +15 -15
  181. package/src/lib/gro_plugin_sveltekit_library.ts +6 -6
  182. package/src/lib/index.ts +3 -3
  183. package/src/lib/input_path.ts +56 -56
  184. package/src/lib/invoke.ts +2 -2
  185. package/src/lib/invoke_task.ts +7 -7
  186. package/src/lib/lint.task.ts +2 -2
  187. package/src/lib/modules.ts +31 -31
  188. package/src/lib/package_json.ts +27 -27
  189. package/src/lib/parse_exports.ts +15 -15
  190. package/src/lib/parse_exports_context.ts +9 -9
  191. package/src/lib/parse_imports.ts +6 -6
  192. package/src/lib/paths.ts +6 -6
  193. package/src/lib/plugin.ts +17 -17
  194. package/src/lib/publish.task.ts +13 -13
  195. package/src/lib/reinstall.task.ts +4 -4
  196. package/src/lib/resolve_specifier.ts +5 -5
  197. package/src/lib/run.task.ts +10 -6
  198. package/src/lib/run_gen.ts +14 -14
  199. package/src/lib/run_task.ts +8 -8
  200. package/src/lib/search_fs.ts +13 -13
  201. package/src/lib/src_json.ts +13 -13
  202. package/src/lib/svelte_config.ts +2 -2
  203. package/src/lib/sveltekit_helpers.ts +12 -12
  204. package/src/lib/sveltekit_shim_app.ts +3 -3
  205. package/src/lib/sync.task.ts +2 -2
  206. package/src/lib/task.ts +63 -63
  207. package/src/lib/task_logging.ts +11 -11
  208. package/src/lib/test.task.ts +4 -4
  209. package/src/lib/typecheck.task.ts +4 -4
  210. package/src/lib/upgrade.task.ts +7 -7
  211. package/src/lib/watch_dir.ts +10 -10
@@ -4,11 +4,11 @@ import {plural} from '@ryanatkn/belt/string.js';
4
4
  import {print_value} from '@ryanatkn/belt/print.js';
5
5
  import {z} from 'zod';
6
6
 
7
- import type {Arg_Schema} from './args.ts';
8
- import type {Loaded_Tasks, Task_Module_Meta} from './task.ts';
7
+ import type {ArgSchema} from './args.ts';
8
+ import type {LoadedTasks, TaskModuleMeta} from './task.ts';
9
9
  import {print_path} from './paths.ts';
10
10
 
11
- export const log_tasks = (log: Logger, loaded_tasks: Loaded_Tasks, log_intro = true): void => {
11
+ export const log_tasks = (log: Logger, loaded_tasks: LoadedTasks, log_intro = true): void => {
12
12
  const {modules, found_tasks} = loaded_tasks;
13
13
  const {resolved_input_files_by_root_dir} = found_tasks;
14
14
 
@@ -52,7 +52,7 @@ export const log_error_reasons = (log: Logger, reasons: Array<string>): void =>
52
52
 
53
53
  const ARGS_PROPERTY_NAME = '[...args]';
54
54
 
55
- export const log_task_help = (log: Logger, meta: Task_Module_Meta): void => {
55
+ export const log_task_help = (log: Logger, meta: TaskModuleMeta): void => {
56
56
  const {
57
57
  name,
58
58
  mod: {task},
@@ -92,17 +92,17 @@ export const log_task_help = (log: Logger, meta: Task_Module_Meta): void => {
92
92
  // The following Zod helpers only need to support single-depth schemas for CLI args,
93
93
  // but there's generic recursion to handle things like `ZodOptional` and `ZodDefault`.
94
94
 
95
- interface Arg_Schema_Property {
95
+ interface ArgSchemaProperty {
96
96
  name: string;
97
- schema: Arg_Schema;
97
+ schema: ArgSchema;
98
98
  }
99
99
 
100
100
  // TODO this blocks many usecases like unions, and it's only implemented for CLI arg types, need better support for arbitrary schemas
101
101
  const to_arg_properties = (
102
102
  schema: z.ZodType,
103
- meta: Task_Module_Meta,
103
+ meta: TaskModuleMeta,
104
104
  log: Logger,
105
- ): Array<Arg_Schema_Property> => {
105
+ ): Array<ArgSchemaProperty> => {
106
106
  const {def} = schema;
107
107
 
108
108
  // TODO overly restrictive, support optional objects and/or unions?
@@ -112,11 +112,11 @@ const to_arg_properties = (
112
112
  }
113
113
  const shape = (def as z.core.$ZodObjectDef).shape;
114
114
 
115
- const properties: Array<Arg_Schema_Property> = [];
115
+ const properties: Array<ArgSchemaProperty> = [];
116
116
  for (const name in shape) {
117
117
  if ('no-' + name in shape) continue;
118
118
  const s = shape[name] as z.ZodType;
119
- const schema: Arg_Schema = {
119
+ const schema: ArgSchema = {
120
120
  type: to_args_schema_type(s),
121
121
  description: to_args_schema_description(s) || '',
122
122
  default: to_args_schema_default(s),
@@ -129,7 +129,7 @@ const to_arg_properties = (
129
129
  const to_max_length = <T>(items: Array<T>, toString: (item: T) => string) =>
130
130
  items.reduce((max, m) => Math.max(toString(m).length, max), 0);
131
131
 
132
- const to_args_schema_type = (schema: z.ZodType): Arg_Schema['type'] => {
132
+ const to_args_schema_type = (schema: z.ZodType): ArgSchema['type'] => {
133
133
  const {def} = schema._zod;
134
134
  switch (def.type) {
135
135
  case 'string':
@@ -1,7 +1,7 @@
1
1
  import {z} from 'zod';
2
2
  import {spawn_cli} from '@ryanatkn/gro/cli.js';
3
3
 
4
- import {Task_Error, type Task} from './task.ts';
4
+ import {TaskError, type Task} from './task.ts';
5
5
  import {find_cli} from './cli.ts';
6
6
  import {has_dep} from './package_json.ts';
7
7
  import {serialize_args, to_implicit_forwarded_args} from './args.ts';
@@ -31,11 +31,11 @@ export const task: Task<Args> = {
31
31
  const {_: patterns, dir, fail_without_tests, t} = args;
32
32
 
33
33
  if (!has_dep(VITEST_CLI)) {
34
- throw new Task_Error('no test runner found, install vitest');
34
+ throw new TaskError('no test runner found, install vitest');
35
35
  }
36
36
 
37
37
  if (!find_cli(VITEST_CLI)) {
38
- throw new Task_Error('vitest is a dependency but not installed; run `npm i`?');
38
+ throw new TaskError('vitest is a dependency but not installed; run `npm i`?');
39
39
  }
40
40
 
41
41
  const vitest_args = ['run', ...patterns];
@@ -52,7 +52,7 @@ export const task: Task<Args> = {
52
52
 
53
53
  const spawned = await spawn_cli(VITEST_CLI, vitest_args);
54
54
  if (!spawned?.ok) {
55
- throw new Task_Error(`vitest failed with exit code ${spawned?.code}`);
55
+ throw new TaskError(`vitest failed with exit code ${spawned?.code}`);
56
56
  }
57
57
  },
58
58
  };
@@ -1,7 +1,7 @@
1
1
  import {print_spawn_result} from '@ryanatkn/belt/process.js';
2
2
  import {z} from 'zod';
3
3
 
4
- import {Task_Error, type Task} from './task.ts';
4
+ import {TaskError, type Task} from './task.ts';
5
5
  import {serialize_args, to_forwarded_args} from './args.ts';
6
6
  import {find_cli, spawn_cli, spawn_cli_process} from './cli.ts';
7
7
  import {sveltekit_sync_if_available} from './sveltekit_helpers.ts';
@@ -53,7 +53,7 @@ export const task: Task<Args> = {
53
53
  const svelte_check_result = await spawned.closed;
54
54
 
55
55
  if (!svelte_check_result.ok) {
56
- throw new Task_Error(`Failed to typecheck. ${print_spawn_result(svelte_check_result)}`);
56
+ throw new TaskError(`Failed to typecheck. ${print_spawn_result(svelte_check_result)}`);
57
57
  }
58
58
  }
59
59
 
@@ -68,12 +68,12 @@ export const task: Task<Args> = {
68
68
  const serialized = serialize_args(forwarded);
69
69
  const svelte_check_result = await spawn_cli(found_typescript_cli, serialized, log);
70
70
  if (!svelte_check_result?.ok) {
71
- throw new Task_Error(`Failed to typecheck. ${print_spawn_result(svelte_check_result!)}`);
71
+ throw new TaskError(`Failed to typecheck. ${print_spawn_result(svelte_check_result!)}`);
72
72
  }
73
73
  return;
74
74
  }
75
75
 
76
- throw new Task_Error(
76
+ throw new TaskError(
77
77
  `Failed to typecheck because neither \`${svelte_check_cli}\` nor \`${typescript_cli}\` was found`,
78
78
  );
79
79
  },
@@ -1,10 +1,10 @@
1
1
  import {spawn} from '@ryanatkn/belt/process.js';
2
2
  import {z} from 'zod';
3
3
  import {rmSync} from 'node:fs';
4
- import {Git_Origin, git_pull} from '@ryanatkn/belt/git.js';
4
+ import {GitOrigin, git_pull} from '@ryanatkn/belt/git.js';
5
5
 
6
- import {Task_Error, type Task} from './task.ts';
7
- import {extract_deps, load_package_json, type Package_Json_Dep} from './package_json.ts';
6
+ import {TaskError, type Task} from './task.ts';
7
+ import {extract_deps, load_package_json, type PackageJsonDep} from './package_json.ts';
8
8
  import {spawn_cli} from './cli.ts';
9
9
  import {serialize_args, to_forwarded_args} from './args.ts';
10
10
  import {NODE_MODULES_DIRNAME} from './constants.ts';
@@ -22,7 +22,7 @@ export const Args = z.strictObject({
22
22
  })
23
23
  .default([])
24
24
  .transform((v) => (Array.isArray(v) ? v : [v])),
25
- origin: Git_Origin.describe('git origin to deploy to').default('origin'),
25
+ origin: GitOrigin.describe('git origin to deploy to').default('origin'),
26
26
  force: z.boolean().meta({description: 'if true, print out the planned upgrades'}).default(false),
27
27
  pull: z.boolean().meta({description: 'dual of no-pull'}).default(true),
28
28
  'no-pull': z.boolean().meta({description: 'opt out of git pull'}).default(false),
@@ -65,7 +65,7 @@ export const task: Task<Args> = {
65
65
  } = args;
66
66
 
67
67
  if (_.length && only.length) {
68
- throw new Task_Error('Cannot call `gro upgrade` with both rest args and --only.');
68
+ throw new TaskError('Cannot call `gro upgrade` with both rest args and --only.');
69
69
  }
70
70
 
71
71
  // TODO maybe a different task that pulls and does other things, like `gro ready`
@@ -92,7 +92,7 @@ export const task: Task<Args> = {
92
92
  : all_deps.filter((d) => !_.includes(d.name));
93
93
 
94
94
  if (only.length && only.length !== deps.length) {
95
- throw new Task_Error(
95
+ throw new TaskError(
96
96
  `Some deps to upgrade were not found: ${only.filter((o) => !deps.find((d) => d.name === o)).join(', ')}`,
97
97
  );
98
98
  }
@@ -130,7 +130,7 @@ const CUSTOM_TAG_MATCHER = /^[\^~><=]*.+-(.+)/;
130
130
 
131
131
  // TODO hacky and limited
132
132
  // TODO probably want to pass through exact deps as well, e.g. @foo/bar@1
133
- const to_upgrade_items = (deps: Array<Package_Json_Dep>): Array<string> =>
133
+ const to_upgrade_items = (deps: Array<PackageJsonDep>): Array<string> =>
134
134
  deps.map((dep) => {
135
135
  if (EXACT_VERSION_MATCHER.test(dep.name)) {
136
136
  return dep.name;
@@ -2,30 +2,30 @@ import {watch, type ChokidarOptions, type FSWatcher, type Matcher} from 'chokida
2
2
  import {relative} from 'node:path';
3
3
  import {statSync} from 'node:fs';
4
4
  import {create_deferred, type Deferred} from '@ryanatkn/belt/async.js';
5
- import type {Path_Filter} from '@ryanatkn/belt/path.js';
5
+ import type {PathFilter} from '@ryanatkn/belt/path.js';
6
6
  import {EMPTY_OBJECT} from '@ryanatkn/belt/object.js';
7
7
 
8
8
  const TMP_FILE_PATTERN = /\.tmp\./;
9
9
 
10
10
  // TODO pretty hacky
11
11
 
12
- export interface Watch_Node_Fs {
12
+ export interface WatchNodeFs {
13
13
  init: () => Promise<void>;
14
14
  close: () => Promise<void>;
15
15
  }
16
16
 
17
- export interface Watcher_Change {
18
- type: Watcher_Change_Type;
17
+ export interface WatcherChange {
18
+ type: WatcherChangeType;
19
19
  path: string;
20
20
  is_directory: boolean;
21
21
  }
22
- export type Watcher_Change_Type = 'add' | 'update' | 'delete';
23
- export type Watcher_Change_Callback = (change: Watcher_Change) => void;
22
+ export type WatcherChangeType = 'add' | 'update' | 'delete';
23
+ export type WatcherChangeCallback = (change: WatcherChange) => void;
24
24
 
25
- export interface Watch_Dir_Options {
25
+ export interface WatchDirOptions {
26
26
  dir: string;
27
- on_change: Watcher_Change_Callback;
28
- filter?: Path_Filter | null | undefined;
27
+ on_change: WatcherChangeCallback;
28
+ filter?: PathFilter | null | undefined;
29
29
  chokidar?: ChokidarOptions;
30
30
  /**
31
31
  * When `false`, returns the `path` relative to `dir`.
@@ -51,7 +51,7 @@ export const watch_dir = ({
51
51
  absolute = true,
52
52
  chokidar,
53
53
  ignored = TMP_FILE_PATTERN,
54
- }: Watch_Dir_Options): Watch_Node_Fs => {
54
+ }: WatchDirOptions): WatchNodeFs => {
55
55
  let watcher: FSWatcher | undefined;
56
56
  let initing: Deferred<void> | undefined;
57
57