@ryanatkn/gro 0.150.1 → 0.151.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/filer.d.ts +3 -1
- package/dist/filer.d.ts.map +1 -1
- package/dist/filer.js +19 -0
- package/dist/gro_plugin_gen.d.ts +0 -3
- package/dist/gro_plugin_gen.d.ts.map +1 -1
- package/dist/gro_plugin_gen.js +2 -15
- package/dist/package.d.ts +3 -0
- package/dist/package.d.ts.map +1 -1
- package/dist/package.js +8 -8
- package/package.json +6 -6
- package/src/lib/filer.ts +30 -1
- package/src/lib/gro_plugin_gen.ts +4 -22
- package/src/lib/package.ts +8 -8
package/dist/filer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Omit_Strict } from '@ryanatkn/belt/types.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Logger } from '@ryanatkn/belt/log.js';
|
|
3
|
+
import type { File_Filter, Path_Id } from './path.js';
|
|
3
4
|
import { watch_dir, type Watcher_Change, type Watch_Dir_Options } from './watch_dir.js';
|
|
4
5
|
import type { Package_Json } from './package_json.js';
|
|
5
6
|
export interface Source_File {
|
|
@@ -35,4 +36,5 @@ export declare class Filer {
|
|
|
35
36
|
watch(listener: On_Filer_Change): Promise<Cleanup_Watch>;
|
|
36
37
|
close(): Promise<void>;
|
|
37
38
|
}
|
|
39
|
+
export declare const filter_dependents: (source_file: Source_File, get_by_id: (id: Path_Id) => Source_File | undefined, filter?: File_Filter, results?: Set<string>, searched?: Set<string>, log?: Logger) => Set<string>;
|
|
38
40
|
//# sourceMappingURL=filer.d.ts.map
|
package/dist/filer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filer.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/filer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"filer.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/filer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAKzD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAC,WAAW,EAAE,OAAO,EAAC,MAAM,WAAW,CAAC;AACpD,OAAO,EACN,SAAS,EAET,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAEtB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,mBAAmB,CAAC;AAIpD,MAAM,WAAW,WAAW;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ;;;OAGG;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtC,YAAY,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;CACxC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhD,MAAM,MAAM,eAAe,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,KAAK,IAAI,CAAC;AAEzF,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CAClD;AAED,qBAAa,KAAK;;IACjB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAa;gBAK1C,OAAO,GAAE,aAA4B;IAWjD,SAAS,GAAI,IAAI,OAAO,KAAG,WAAW,GAAG,SAAS,CAEhD;IAEF,aAAa,GAAI,IAAI,OAAO,KAAG,WAAW,CAkBxC;IA4II,KAAK,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC;IAKxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAa5B;AAGD,eAAO,MAAM,iBAAiB,GAC7B,aAAa,WAAW,EACxB,WAAW,CAAC,EAAE,EAAE,OAAO,KAAK,WAAW,GAAG,SAAS,EACnD,SAAS,WAAW,EACpB,UAAS,GAAG,CAAC,MAAM,CAAa,EAChC,WAAU,GAAG,CAAC,MAAM,CAAa,EACjC,MAAM,MAAM,KACV,GAAG,CAAC,MAAM,CAkBZ,CAAC"}
|
package/dist/filer.js
CHANGED
|
@@ -192,3 +192,22 @@ export class Filer {
|
|
|
192
192
|
return !id.startsWith(this.root_dir + '/') || (!!filter && !filter(id, false));
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
+
// TODO maybe `Source_File` class?
|
|
196
|
+
export const filter_dependents = (source_file, get_by_id, filter, results = new Set(), searched = new Set(), log) => {
|
|
197
|
+
const { dependents } = source_file;
|
|
198
|
+
for (const dependent_id of dependents.keys()) {
|
|
199
|
+
if (searched.has(dependent_id))
|
|
200
|
+
continue;
|
|
201
|
+
searched.add(dependent_id);
|
|
202
|
+
if (!filter || filter(dependent_id)) {
|
|
203
|
+
results.add(dependent_id);
|
|
204
|
+
}
|
|
205
|
+
const dependent_source_file = get_by_id(dependent_id);
|
|
206
|
+
if (!dependent_source_file) {
|
|
207
|
+
log?.warn(`[filer.filter_dependents]: dependent source file ${dependent_id} not found for ${source_file.id}`);
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
filter_dependents(dependent_source_file, get_by_id, filter, results, searched);
|
|
211
|
+
}
|
|
212
|
+
return results;
|
|
213
|
+
};
|
package/dist/gro_plugin_gen.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import type { Plugin } from './plugin.js';
|
|
2
2
|
import type { Args } from './args.js';
|
|
3
|
-
import type { File_Filter, Path_Id } from './path.js';
|
|
4
|
-
import type { Source_File } from './filer.js';
|
|
5
3
|
export interface Task_Args extends Args {
|
|
6
4
|
watch?: boolean;
|
|
7
5
|
}
|
|
@@ -11,5 +9,4 @@ export interface Gro_Plugin_Gen_Options {
|
|
|
11
9
|
flush_debounce_delay?: number;
|
|
12
10
|
}
|
|
13
11
|
export declare const gro_plugin_gen: ({ input_paths, root_dirs, flush_debounce_delay, }?: Gro_Plugin_Gen_Options) => Plugin;
|
|
14
|
-
export declare const filter_dependents: (source_file: Source_File, get_by_id: (id: Path_Id) => Source_File | undefined, filter?: File_Filter, results?: Set<string>, searched?: Set<string>) => Set<string>;
|
|
15
12
|
//# sourceMappingURL=gro_plugin_gen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gro_plugin_gen.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gro_plugin_gen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gro_plugin_gen.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gro_plugin_gen.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAC,IAAI,EAAC,MAAM,WAAW,CAAC;AAQpC,MAAM,WAAW,SAAU,SAAQ,IAAI;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACtC,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,eAAO,MAAM,cAAc,GAAI,oDAI5B,sBAAqC,KAAG,MAqF1C,CAAC"}
|
package/dist/gro_plugin_gen.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Unreachable_Error } from '@ryanatkn/belt/error.js';
|
|
|
4
4
|
import { paths } from './paths.js';
|
|
5
5
|
import { find_genfiles, is_gen_path } from './gen.js';
|
|
6
6
|
import { spawn_cli } from './cli.js';
|
|
7
|
+
import { filter_dependents } from './filer.js';
|
|
7
8
|
const FLUSH_DEBOUNCE_DELAY = 500;
|
|
8
9
|
export const gro_plugin_gen = ({ input_paths = [paths.source], root_dirs = [paths.source], flush_debounce_delay = FLUSH_DEBOUNCE_DELAY, } = EMPTY_OBJECT) => {
|
|
9
10
|
let flushing_timeout;
|
|
@@ -55,7 +56,7 @@ export const gro_plugin_gen = ({ input_paths = [paths.source], root_dirs = [path
|
|
|
55
56
|
if (is_gen_path(source_file.id)) {
|
|
56
57
|
queue_gen(source_file.id);
|
|
57
58
|
}
|
|
58
|
-
const dependent_gen_file_ids = filter_dependents(source_file, filer.get_by_id, is_gen_path);
|
|
59
|
+
const dependent_gen_file_ids = filter_dependents(source_file, filer.get_by_id, is_gen_path, undefined, undefined, log);
|
|
59
60
|
for (const dependent_gen_file_id of dependent_gen_file_ids) {
|
|
60
61
|
queue_gen(dependent_gen_file_id);
|
|
61
62
|
}
|
|
@@ -78,17 +79,3 @@ export const gro_plugin_gen = ({ input_paths = [paths.source], root_dirs = [path
|
|
|
78
79
|
},
|
|
79
80
|
};
|
|
80
81
|
};
|
|
81
|
-
export const filter_dependents = (source_file, get_by_id, filter, results = new Set(), searched = new Set()) => {
|
|
82
|
-
const { dependents } = source_file;
|
|
83
|
-
for (const dependent_id of dependents.keys()) {
|
|
84
|
-
if (searched.has(dependent_id))
|
|
85
|
-
continue;
|
|
86
|
-
searched.add(dependent_id);
|
|
87
|
-
if (!filter || filter(dependent_id)) {
|
|
88
|
-
results.add(dependent_id);
|
|
89
|
-
}
|
|
90
|
-
const dependent_source_File = get_by_id(dependent_id);
|
|
91
|
-
filter_dependents(dependent_source_File, get_by_id, filter, results, searched);
|
|
92
|
-
}
|
|
93
|
-
return results;
|
|
94
|
-
};
|
package/dist/package.d.ts
CHANGED
package/dist/package.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsQD,CAAC;AAEzB,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"package.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/package.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsQD,CAAC;AAEzB,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+wBD,CAAC"}
|
package/dist/package.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// generated by src/lib/package.gen.ts
|
|
2
2
|
export const package_json = {
|
|
3
3
|
name: '@ryanatkn/gro',
|
|
4
|
-
version: '0.
|
|
4
|
+
version: '0.151.0',
|
|
5
5
|
description: 'task runner and toolkit extending SvelteKit',
|
|
6
6
|
motto: 'generate, run, optimize',
|
|
7
7
|
glyph: '🌰',
|
|
@@ -56,20 +56,20 @@ export const package_json = {
|
|
|
56
56
|
'@changesets/changelog-git': '^0.2.1',
|
|
57
57
|
'@changesets/types': '^6.1.0',
|
|
58
58
|
'@ryanatkn/eslint-config': '^0.8.0',
|
|
59
|
-
'@ryanatkn/fuz': '^0.136.
|
|
59
|
+
'@ryanatkn/fuz': '^0.136.1',
|
|
60
60
|
'@ryanatkn/moss': '^0.24.3',
|
|
61
61
|
'@sveltejs/adapter-static': '^3.0.8',
|
|
62
|
-
'@sveltejs/kit': '^2.20.
|
|
63
|
-
'@sveltejs/package': '^2.3.
|
|
62
|
+
'@sveltejs/kit': '^2.20.7',
|
|
63
|
+
'@sveltejs/package': '^2.3.11',
|
|
64
64
|
'@sveltejs/vite-plugin-svelte': '^5.0.3',
|
|
65
65
|
'@types/node': '^22.14.1',
|
|
66
66
|
esbuild: '^0.25.2',
|
|
67
67
|
eslint: '^9.24.0',
|
|
68
68
|
'eslint-plugin-svelte': '^3.5.1',
|
|
69
|
-
svelte: '^5.
|
|
69
|
+
svelte: '^5.27.0',
|
|
70
70
|
'svelte-check': '^4.1.6',
|
|
71
71
|
typescript: '^5.8.3',
|
|
72
|
-
'typescript-eslint': '^8.
|
|
72
|
+
'typescript-eslint': '^8.30.1',
|
|
73
73
|
uvu: '^0.5.6',
|
|
74
74
|
},
|
|
75
75
|
prettier: {
|
|
@@ -263,7 +263,7 @@ export const package_json = {
|
|
|
263
263
|
};
|
|
264
264
|
export const src_json = {
|
|
265
265
|
name: '@ryanatkn/gro',
|
|
266
|
-
version: '0.
|
|
266
|
+
version: '0.151.0',
|
|
267
267
|
modules: {
|
|
268
268
|
'.': {
|
|
269
269
|
path: 'index.ts',
|
|
@@ -479,6 +479,7 @@ export const src_json = {
|
|
|
479
479
|
{ name: 'On_Filer_Change', kind: 'type' },
|
|
480
480
|
{ name: 'Filer_Options', kind: 'type' },
|
|
481
481
|
{ name: 'Filer', kind: 'class' },
|
|
482
|
+
{ name: 'filter_dependents', kind: 'function' },
|
|
482
483
|
],
|
|
483
484
|
},
|
|
484
485
|
'./format_directory.js': {
|
|
@@ -600,7 +601,6 @@ export const src_json = {
|
|
|
600
601
|
{ name: 'Task_Args', kind: 'type' },
|
|
601
602
|
{ name: 'Gro_Plugin_Gen_Options', kind: 'type' },
|
|
602
603
|
{ name: 'gro_plugin_gen', kind: 'function' },
|
|
603
|
-
{ name: 'filter_dependents', kind: 'function' },
|
|
604
604
|
],
|
|
605
605
|
},
|
|
606
606
|
'./gro_plugin_moss.js': {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryanatkn/gro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.151.0",
|
|
4
4
|
"description": "task runner and toolkit extending SvelteKit",
|
|
5
5
|
"motto": "generate, run, optimize",
|
|
6
6
|
"glyph": "🌰",
|
|
@@ -69,20 +69,20 @@
|
|
|
69
69
|
"@changesets/changelog-git": "^0.2.1",
|
|
70
70
|
"@changesets/types": "^6.1.0",
|
|
71
71
|
"@ryanatkn/eslint-config": "^0.8.0",
|
|
72
|
-
"@ryanatkn/fuz": "^0.136.
|
|
72
|
+
"@ryanatkn/fuz": "^0.136.1",
|
|
73
73
|
"@ryanatkn/moss": "^0.24.3",
|
|
74
74
|
"@sveltejs/adapter-static": "^3.0.8",
|
|
75
|
-
"@sveltejs/kit": "^2.20.
|
|
76
|
-
"@sveltejs/package": "^2.3.
|
|
75
|
+
"@sveltejs/kit": "^2.20.7",
|
|
76
|
+
"@sveltejs/package": "^2.3.11",
|
|
77
77
|
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
|
78
78
|
"@types/node": "^22.14.1",
|
|
79
79
|
"esbuild": "^0.25.2",
|
|
80
80
|
"eslint": "^9.24.0",
|
|
81
81
|
"eslint-plugin-svelte": "^3.5.1",
|
|
82
|
-
"svelte": "^5.
|
|
82
|
+
"svelte": "^5.27.0",
|
|
83
83
|
"svelte-check": "^4.1.6",
|
|
84
84
|
"typescript": "^5.8.3",
|
|
85
|
-
"typescript-eslint": "^8.
|
|
85
|
+
"typescript-eslint": "^8.30.1",
|
|
86
86
|
"uvu": "^0.5.6"
|
|
87
87
|
},
|
|
88
88
|
"prettier": {
|
package/src/lib/filer.ts
CHANGED
|
@@ -6,8 +6,9 @@ import {wait} from '@ryanatkn/belt/async.js';
|
|
|
6
6
|
import {isBuiltin} from 'node:module';
|
|
7
7
|
import {fileURLToPath} from 'node:url';
|
|
8
8
|
import {Unreachable_Error} from '@ryanatkn/belt/error.js';
|
|
9
|
+
import type {Logger} from '@ryanatkn/belt/log.js';
|
|
9
10
|
|
|
10
|
-
import type {Path_Id} from './path.js';
|
|
11
|
+
import type {File_Filter, Path_Id} from './path.js';
|
|
11
12
|
import {
|
|
12
13
|
watch_dir,
|
|
13
14
|
type Watch_Node_Fs,
|
|
@@ -251,3 +252,31 @@ export class Filer {
|
|
|
251
252
|
return !id.startsWith(this.root_dir + '/') || (!!filter && !filter(id, false));
|
|
252
253
|
}
|
|
253
254
|
}
|
|
255
|
+
|
|
256
|
+
// TODO maybe `Source_File` class?
|
|
257
|
+
export const filter_dependents = (
|
|
258
|
+
source_file: Source_File,
|
|
259
|
+
get_by_id: (id: Path_Id) => Source_File | undefined,
|
|
260
|
+
filter?: File_Filter,
|
|
261
|
+
results: Set<string> = new Set(),
|
|
262
|
+
searched: Set<string> = new Set(),
|
|
263
|
+
log?: Logger,
|
|
264
|
+
): Set<string> => {
|
|
265
|
+
const {dependents} = source_file;
|
|
266
|
+
for (const dependent_id of dependents.keys()) {
|
|
267
|
+
if (searched.has(dependent_id)) continue;
|
|
268
|
+
searched.add(dependent_id);
|
|
269
|
+
if (!filter || filter(dependent_id)) {
|
|
270
|
+
results.add(dependent_id);
|
|
271
|
+
}
|
|
272
|
+
const dependent_source_file = get_by_id(dependent_id);
|
|
273
|
+
if (!dependent_source_file) {
|
|
274
|
+
log?.warn(
|
|
275
|
+
`[filer.filter_dependents]: dependent source file ${dependent_id} not found for ${source_file.id}`,
|
|
276
|
+
);
|
|
277
|
+
continue;
|
|
278
|
+
}
|
|
279
|
+
filter_dependents(dependent_source_file, get_by_id, filter, results, searched);
|
|
280
|
+
}
|
|
281
|
+
return results;
|
|
282
|
+
};
|
|
@@ -7,8 +7,7 @@ import type {Args} from './args.js';
|
|
|
7
7
|
import {paths} from './paths.js';
|
|
8
8
|
import {find_genfiles, is_gen_path} from './gen.js';
|
|
9
9
|
import {spawn_cli} from './cli.js';
|
|
10
|
-
import
|
|
11
|
-
import type {Cleanup_Watch, Source_File} from './filer.js';
|
|
10
|
+
import {filter_dependents, type Cleanup_Watch} from './filer.js';
|
|
12
11
|
|
|
13
12
|
const FLUSH_DEBOUNCE_DELAY = 500;
|
|
14
13
|
|
|
@@ -86,6 +85,9 @@ export const gro_plugin_gen = ({
|
|
|
86
85
|
source_file,
|
|
87
86
|
filer.get_by_id,
|
|
88
87
|
is_gen_path,
|
|
88
|
+
undefined,
|
|
89
|
+
undefined,
|
|
90
|
+
log,
|
|
89
91
|
);
|
|
90
92
|
for (const dependent_gen_file_id of dependent_gen_file_ids) {
|
|
91
93
|
queue_gen(dependent_gen_file_id);
|
|
@@ -109,23 +111,3 @@ export const gro_plugin_gen = ({
|
|
|
109
111
|
},
|
|
110
112
|
};
|
|
111
113
|
};
|
|
112
|
-
|
|
113
|
-
export const filter_dependents = (
|
|
114
|
-
source_file: Source_File,
|
|
115
|
-
get_by_id: (id: Path_Id) => Source_File | undefined,
|
|
116
|
-
filter?: File_Filter,
|
|
117
|
-
results: Set<string> = new Set(),
|
|
118
|
-
searched: Set<string> = new Set(),
|
|
119
|
-
): Set<string> => {
|
|
120
|
-
const {dependents} = source_file;
|
|
121
|
-
for (const dependent_id of dependents.keys()) {
|
|
122
|
-
if (searched.has(dependent_id)) continue;
|
|
123
|
-
searched.add(dependent_id);
|
|
124
|
-
if (!filter || filter(dependent_id)) {
|
|
125
|
-
results.add(dependent_id);
|
|
126
|
-
}
|
|
127
|
-
const dependent_source_File = get_by_id(dependent_id)!;
|
|
128
|
-
filter_dependents(dependent_source_File, get_by_id, filter, results, searched);
|
|
129
|
-
}
|
|
130
|
-
return results;
|
|
131
|
-
};
|
package/src/lib/package.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type {Src_Json} from './src_json.js';
|
|
|
5
5
|
|
|
6
6
|
export const package_json = {
|
|
7
7
|
name: '@ryanatkn/gro',
|
|
8
|
-
version: '0.
|
|
8
|
+
version: '0.151.0',
|
|
9
9
|
description: 'task runner and toolkit extending SvelteKit',
|
|
10
10
|
motto: 'generate, run, optimize',
|
|
11
11
|
glyph: '🌰',
|
|
@@ -61,20 +61,20 @@ export const package_json = {
|
|
|
61
61
|
'@changesets/changelog-git': '^0.2.1',
|
|
62
62
|
'@changesets/types': '^6.1.0',
|
|
63
63
|
'@ryanatkn/eslint-config': '^0.8.0',
|
|
64
|
-
'@ryanatkn/fuz': '^0.136.
|
|
64
|
+
'@ryanatkn/fuz': '^0.136.1',
|
|
65
65
|
'@ryanatkn/moss': '^0.24.3',
|
|
66
66
|
'@sveltejs/adapter-static': '^3.0.8',
|
|
67
|
-
'@sveltejs/kit': '^2.20.
|
|
68
|
-
'@sveltejs/package': '^2.3.
|
|
67
|
+
'@sveltejs/kit': '^2.20.7',
|
|
68
|
+
'@sveltejs/package': '^2.3.11',
|
|
69
69
|
'@sveltejs/vite-plugin-svelte': '^5.0.3',
|
|
70
70
|
'@types/node': '^22.14.1',
|
|
71
71
|
esbuild: '^0.25.2',
|
|
72
72
|
eslint: '^9.24.0',
|
|
73
73
|
'eslint-plugin-svelte': '^3.5.1',
|
|
74
|
-
svelte: '^5.
|
|
74
|
+
svelte: '^5.27.0',
|
|
75
75
|
'svelte-check': '^4.1.6',
|
|
76
76
|
typescript: '^5.8.3',
|
|
77
|
-
'typescript-eslint': '^8.
|
|
77
|
+
'typescript-eslint': '^8.30.1',
|
|
78
78
|
uvu: '^0.5.6',
|
|
79
79
|
},
|
|
80
80
|
prettier: {
|
|
@@ -269,7 +269,7 @@ export const package_json = {
|
|
|
269
269
|
|
|
270
270
|
export const src_json = {
|
|
271
271
|
name: '@ryanatkn/gro',
|
|
272
|
-
version: '0.
|
|
272
|
+
version: '0.151.0',
|
|
273
273
|
modules: {
|
|
274
274
|
'.': {
|
|
275
275
|
path: 'index.ts',
|
|
@@ -485,6 +485,7 @@ export const src_json = {
|
|
|
485
485
|
{name: 'On_Filer_Change', kind: 'type'},
|
|
486
486
|
{name: 'Filer_Options', kind: 'type'},
|
|
487
487
|
{name: 'Filer', kind: 'class'},
|
|
488
|
+
{name: 'filter_dependents', kind: 'function'},
|
|
488
489
|
],
|
|
489
490
|
},
|
|
490
491
|
'./format_directory.js': {
|
|
@@ -606,7 +607,6 @@ export const src_json = {
|
|
|
606
607
|
{name: 'Task_Args', kind: 'type'},
|
|
607
608
|
{name: 'Gro_Plugin_Gen_Options', kind: 'type'},
|
|
608
609
|
{name: 'gro_plugin_gen', kind: 'function'},
|
|
609
|
-
{name: 'filter_dependents', kind: 'function'},
|
|
610
610
|
],
|
|
611
611
|
},
|
|
612
612
|
'./gro_plugin_moss.js': {
|