@ryanatkn/gro 0.167.0 → 0.168.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/env.d.ts +4 -3
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +17 -14
- package/dist/gen.d.ts +1 -1
- package/dist/gen.d.ts.map +1 -1
- package/dist/gen_helpers.d.ts.map +1 -1
- package/dist/gen_helpers.js +10 -2
- package/dist/gro_plugin_sveltekit_app.js +1 -1
- package/dist/package.gen.js +2 -2
- package/dist/package.js +5 -5
- package/dist/run_task.js +1 -1
- package/dist/src_json.d.ts +3 -2
- package/dist/src_json.d.ts.map +1 -1
- package/dist/src_json.js +7 -4
- package/dist/watch_dir.d.ts +9 -2
- package/dist/watch_dir.d.ts.map +1 -1
- package/dist/watch_dir.js +11 -2
- package/package.json +3 -3
- package/src/lib/env.ts +16 -13
- package/src/lib/gen.ts +1 -1
- package/src/lib/gen_helpers.ts +13 -2
- package/src/lib/gro_plugin_sveltekit_app.ts +1 -1
- package/src/lib/package.gen.ts +2 -2
- package/src/lib/package.ts +5 -5
- package/src/lib/run_task.ts +1 -1
- package/src/lib/src_json.ts +12 -3
- package/src/lib/watch_dir.ts +27 -2
package/dist/env.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
export declare const load_env: (dev: boolean, visibility: "public" | "private", public_prefix: string, private_prefix: string, env_dir?: string, env_files?: string[], ambient_env?: NodeJS.ProcessEnv) => Record<string, string>;
|
|
2
|
-
export declare const merge_envs: (envs: Array<Record<string, string | undefined>>, visibility: "public" | "private", public_prefix: string, private_prefix: string) => Record<string, string>;
|
|
3
|
-
export declare const is_private_env: (key: string, public_prefix: string, private_prefix: string) => boolean;
|
|
4
|
-
export declare const is_public_env: (key: string, public_prefix: string, private_prefix: string) => boolean;
|
|
5
2
|
/**
|
|
6
3
|
* Loads a single env value without merging it into `process.env`.
|
|
7
4
|
* By default searches process.env, then a local `.env` if one exists, then `../.env` if it exists.
|
|
5
|
+
* Empty strings are semantically the same as `undefined` for more ergonomic fallbacks.
|
|
8
6
|
*/
|
|
9
7
|
export declare const load_from_env: (key: string, paths?: string[]) => string | undefined;
|
|
8
|
+
export declare const merge_envs: (envs: Array<Record<string, string | undefined>>, visibility: "public" | "private", public_prefix: string, private_prefix: string) => Record<string, string>;
|
|
9
|
+
export declare const is_private_env: (key: string, public_prefix: string, private_prefix: string) => boolean;
|
|
10
|
+
export declare const is_public_env: (key: string, public_prefix: string, private_prefix: string) => boolean;
|
|
10
11
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,GACpB,KAAK,OAAO,EACZ,YAAY,QAAQ,GAAG,SAAS,EAChC,eAAe,MAAM,EACrB,gBAAgB,MAAM,EACtB,UAAU,MAAM,EAChB,oBAAoE,EACpE,+BAAyB,KACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAMvB,CAAC;AAQF,eAAO,MAAM,UAAU,GACtB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAC/C,YAAY,QAAQ,GAAG,SAAS,EAChC,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAgBvB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,KAAK,MAAM,EACX,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACpB,OACwF,CAAC;AAE5F,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACpB,OACyF,CAAC
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/env.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,GACpB,KAAK,OAAO,EACZ,YAAY,QAAQ,GAAG,SAAS,EAChC,eAAe,MAAM,EACrB,gBAAgB,MAAM,EACtB,UAAU,MAAM,EAChB,oBAAoE,EACpE,+BAAyB,KACvB,MAAM,CAAC,MAAM,EAAE,MAAM,CAMvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,gBAA2B,KAAG,MAAM,GAAG,SASjF,CAAC;AAQF,eAAO,MAAM,UAAU,GACtB,MAAM,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,EAC/C,YAAY,QAAQ,GAAG,SAAS,EAChC,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAgBvB,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,KAAK,MAAM,EACX,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACpB,OACwF,CAAC;AAE5F,eAAO,MAAM,aAAa,GACzB,KAAK,MAAM,EACX,eAAe,MAAM,EACrB,gBAAgB,MAAM,KACpB,OACyF,CAAC"}
|
package/dist/env.js
CHANGED
|
@@ -8,6 +8,23 @@ export const load_env = (dev, visibility, public_prefix, private_prefix, env_dir
|
|
|
8
8
|
envs.push(ambient_env);
|
|
9
9
|
return merge_envs(envs, visibility, public_prefix, private_prefix);
|
|
10
10
|
};
|
|
11
|
+
/**
|
|
12
|
+
* Loads a single env value without merging it into `process.env`.
|
|
13
|
+
* By default searches process.env, then a local `.env` if one exists, then `../.env` if it exists.
|
|
14
|
+
* Empty strings are semantically the same as `undefined` for more ergonomic fallbacks.
|
|
15
|
+
*/
|
|
16
|
+
export const load_from_env = (key, paths = ['.env', '../.env']) => {
|
|
17
|
+
let v = process.env[key];
|
|
18
|
+
if (v)
|
|
19
|
+
return v;
|
|
20
|
+
for (const path of paths) {
|
|
21
|
+
const env = load(path);
|
|
22
|
+
v = env?.[key];
|
|
23
|
+
if (v)
|
|
24
|
+
return v;
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
};
|
|
11
28
|
const load = (path) => {
|
|
12
29
|
if (!existsSync(path))
|
|
13
30
|
return;
|
|
@@ -30,17 +47,3 @@ export const merge_envs = (envs, visibility, public_prefix, private_prefix) => {
|
|
|
30
47
|
};
|
|
31
48
|
export const is_private_env = (key, public_prefix, private_prefix) => key.startsWith(private_prefix) && (public_prefix === '' || !key.startsWith(public_prefix));
|
|
32
49
|
export const is_public_env = (key, public_prefix, private_prefix) => key.startsWith(public_prefix) && (private_prefix === '' || !key.startsWith(private_prefix));
|
|
33
|
-
/**
|
|
34
|
-
* Loads a single env value without merging it into `process.env`.
|
|
35
|
-
* By default searches process.env, then a local `.env` if one exists, then `../.env` if it exists.
|
|
36
|
-
*/
|
|
37
|
-
export const load_from_env = (key, paths = ['.env', '../.env']) => {
|
|
38
|
-
if (process.env[key])
|
|
39
|
-
return process.env[key];
|
|
40
|
-
for (const path of paths) {
|
|
41
|
-
const env = load(path);
|
|
42
|
-
if (env?.[key])
|
|
43
|
-
return env[key];
|
|
44
|
-
}
|
|
45
|
-
return undefined;
|
|
46
|
-
};
|
package/dist/gen.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export interface Gen_Dependencies_Config {
|
|
|
26
26
|
patterns?: Array<RegExp>;
|
|
27
27
|
files?: Array<Path_Id>;
|
|
28
28
|
}
|
|
29
|
-
export type Gen_Dependencies_Resolver = (ctx: Gen_Context) => Gen_Dependencies_Config | 'all' | Promise<Gen_Dependencies_Config | 'all'>;
|
|
29
|
+
export type Gen_Dependencies_Resolver = (ctx: Gen_Context) => Gen_Dependencies_Config | 'all' | null | Promise<Gen_Dependencies_Config | 'all' | null>;
|
|
30
30
|
export type Gen = Gen_Function | Gen_Config;
|
|
31
31
|
export type Gen_Function = (ctx: Gen_Context) => Raw_Gen_Result | Promise<Raw_Gen_Result>;
|
|
32
32
|
export interface Gen_Config {
|
package/dist/gen.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gen.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAGlD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAKvD,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,EAAe,KAAK,oBAAoB,EAAE,KAAK,WAAW,EAAC,MAAM,cAAc,CAAC;AACvF,OAAO,EACN,UAAU,EAGV,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAE3C,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,gBAAgB,QAAoC,CAAC;AAElE,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,KAAG,OAA0C,CAAC;AAEtF,MAAM,WAAW,UAAU;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CACvB;AACD,MAAM,WAAW,QAAQ;IACxB,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,uBAAuB,GAAG,yBAAyB,CAAC;AAE3F,MAAM,WAAW,uBAAuB;IACvC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CACvB;AAED,MAAM,MAAM,yBAAyB,GAAG,CACvC,GAAG,EAAE,WAAW,KACZ,uBAAuB,GAAG,KAAK,GAAG,OAAO,CAAC,uBAAuB,GAAG,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"gen.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gen_helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAoB,KAAK,KAAK,EAAC,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gen_helpers.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/gen_helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAoB,KAAK,KAAK,EAAC,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAU3C,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAGvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC9B,aAAa,OAAO,EACpB,iBAAiB,OAAO,EACxB,QAAQ,UAAU,EAClB,OAAO,KAAK,EACZ,KAAK,MAAM,EACX,SAAS,OAAO,EAChB,aAAa,WAAW,KACtB,OAAO,CAAC,OAAO,CAqCjB,CAAC"}
|
package/dist/gen_helpers.js
CHANGED
|
@@ -45,7 +45,7 @@ const resolve_gen_dependencies = async (gen_file_id, changed_file_id, bust_cache
|
|
|
45
45
|
if (!gen_config.dependencies) {
|
|
46
46
|
return null;
|
|
47
47
|
}
|
|
48
|
-
let
|
|
48
|
+
let dependencies = gen_config.dependencies;
|
|
49
49
|
if (typeof dependencies === 'function') {
|
|
50
50
|
const gen_ctx = {
|
|
51
51
|
config,
|
|
@@ -60,8 +60,16 @@ const resolve_gen_dependencies = async (gen_file_id, changed_file_id, bust_cache
|
|
|
60
60
|
};
|
|
61
61
|
dependencies = await dependencies(gen_ctx);
|
|
62
62
|
}
|
|
63
|
+
if (dependencies === null || dependencies === 'all') {
|
|
64
|
+
return dependencies;
|
|
65
|
+
}
|
|
66
|
+
// At this point, dependencies is either 'all' or Gen_Dependencies_Config
|
|
67
|
+
// For static dependencies, also normalize empty objects
|
|
68
|
+
if (!dependencies.patterns?.length && !dependencies.files?.length) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
63
71
|
// Normalize file paths to absolute paths
|
|
64
|
-
if (dependencies
|
|
72
|
+
if (dependencies.files) {
|
|
65
73
|
dependencies.files = dependencies.files.map((f) => resolve(f));
|
|
66
74
|
}
|
|
67
75
|
return dependencies;
|
|
@@ -42,7 +42,7 @@ export const gro_plugin_sveltekit_app = ({ host_target = 'github_pages', well_kn
|
|
|
42
42
|
const serialized_package_json = mapped_package_json && serialize_package_json(mapped_package_json);
|
|
43
43
|
// `.well-known/src.json` and `.well-known/src/`
|
|
44
44
|
const final_package_json = mapped_package_json ?? package_json;
|
|
45
|
-
const src_json = create_src_json(final_package_json, undefined);
|
|
45
|
+
const src_json = create_src_json(final_package_json, undefined, log);
|
|
46
46
|
if (well_known_src_json === undefined) {
|
|
47
47
|
well_known_src_json = final_package_json.public; // eslint-disable-line no-param-reassign
|
|
48
48
|
}
|
package/dist/package.gen.js
CHANGED
|
@@ -7,13 +7,13 @@ import { create_src_json } from "./src_json.js";
|
|
|
7
7
|
* which mirrors `package.json` but in TypeScript,
|
|
8
8
|
* allowing apps to import typesafe data from their own `package.json`.
|
|
9
9
|
*/
|
|
10
|
-
export const gen = ({ origin_path }) => {
|
|
10
|
+
export const gen = ({ origin_path, log }) => {
|
|
11
11
|
const package_json = load_package_json();
|
|
12
12
|
// TODO this can error with bad json data, do we need to update the package.json here first?
|
|
13
13
|
// similarly do this in other places too?
|
|
14
14
|
// part of the problem is that the package_json actually has a dependency on each of its exports and their deps,
|
|
15
15
|
// but only when they're added/removed right? see gro_plugin_gen for details
|
|
16
|
-
const src_json = create_src_json(package_json, undefined);
|
|
16
|
+
const src_json = create_src_json(package_json, undefined, log);
|
|
17
17
|
const is_this_belt = package_json.name === '@ryanatkn/belt'; // TODO more robust?
|
|
18
18
|
return `
|
|
19
19
|
// generated by ${origin_path}
|
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.168.0',
|
|
5
5
|
description: 'task runner and toolkit extending SvelteKit',
|
|
6
6
|
motto: 'generate, run, optimize',
|
|
7
7
|
glyph: '🌰',
|
|
@@ -64,8 +64,8 @@ export const package_json = {
|
|
|
64
64
|
'@changesets/changelog-git': '^0.2.1',
|
|
65
65
|
'@changesets/types': '^6.1.0',
|
|
66
66
|
'@ryanatkn/eslint-config': '^0.8.0',
|
|
67
|
-
'@ryanatkn/fuz': '^0.
|
|
68
|
-
'@ryanatkn/moss': '^0.
|
|
67
|
+
'@ryanatkn/fuz': '^0.147.0',
|
|
68
|
+
'@ryanatkn/moss': '^0.36.0',
|
|
69
69
|
'@sveltejs/adapter-static': '^3.0.9',
|
|
70
70
|
'@sveltejs/kit': '^2.37.1',
|
|
71
71
|
'@sveltejs/package': '^2.5.0',
|
|
@@ -98,7 +98,7 @@ export const package_json = {
|
|
|
98
98
|
};
|
|
99
99
|
export const src_json = {
|
|
100
100
|
name: '@ryanatkn/gro',
|
|
101
|
-
version: '0.
|
|
101
|
+
version: '0.168.0',
|
|
102
102
|
modules: {
|
|
103
103
|
'.': {
|
|
104
104
|
path: 'index.ts',
|
|
@@ -265,10 +265,10 @@ export const src_json = {
|
|
|
265
265
|
path: 'env.ts',
|
|
266
266
|
declarations: [
|
|
267
267
|
{ name: 'load_env', kind: 'function' },
|
|
268
|
+
{ name: 'load_from_env', kind: 'function' },
|
|
268
269
|
{ name: 'merge_envs', kind: 'function' },
|
|
269
270
|
{ name: 'is_private_env', kind: 'function' },
|
|
270
271
|
{ name: 'is_public_env', kind: 'function' },
|
|
271
|
-
{ name: 'load_from_env', kind: 'function' },
|
|
272
272
|
],
|
|
273
273
|
},
|
|
274
274
|
'./esbuild_helpers.js': {
|
package/dist/run_task.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { styleText as st } from 'node:util';
|
|
2
2
|
import { print_log_label } from '@ryanatkn/belt/print.js';
|
|
3
3
|
import { System_Logger } from '@ryanatkn/belt/log.js';
|
|
4
|
-
import z from 'zod';
|
|
4
|
+
import { z } from 'zod';
|
|
5
5
|
import { parse_args } from "./args.js";
|
|
6
6
|
import { log_task_help } from "./task_logging.js";
|
|
7
7
|
import { Task_Error } from "./task.js";
|
package/dist/src_json.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { Package_Json, Package_Json_Exports } from '@ryanatkn/belt/package_json.js';
|
|
2
2
|
import { Src_Json, Src_Modules } from '@ryanatkn/belt/src_json.js';
|
|
3
|
+
import type { Logger } from '@ryanatkn/belt/log.js';
|
|
3
4
|
export type Map_Src_Json = (src_json: Src_Json) => Src_Json | null | Promise<Src_Json | null>;
|
|
4
|
-
export declare const create_src_json: (package_json: Package_Json, lib_path?: string) => Src_Json;
|
|
5
|
+
export declare const create_src_json: (package_json: Package_Json, lib_path?: string, log?: Logger) => Src_Json;
|
|
5
6
|
export declare const serialize_src_json: (src_json: Src_Json) => string;
|
|
6
|
-
export declare const to_src_modules: (exports: Package_Json_Exports | undefined, lib_path?: string) => Src_Modules | undefined;
|
|
7
|
+
export declare const to_src_modules: (exports: Package_Json_Exports | undefined, lib_path?: string, log?: Logger) => Src_Modules | undefined;
|
|
7
8
|
//# sourceMappingURL=src_json.d.ts.map
|
package/dist/src_json.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"src_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/src_json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"src_json.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/src_json.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACvF,OAAO,EAAC,QAAQ,EAAE,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAOlD,MAAM,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,KAAK,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAE9F,eAAO,MAAM,eAAe,GAC3B,cAAc,YAAY,EAC1B,WAAW,MAAM,EACjB,MAAM,MAAM,KACV,QAKA,CAAC;AAEJ,eAAO,MAAM,kBAAkB,GAAI,UAAU,QAAQ,KAAG,MAGvD,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,SAAS,oBAAoB,GAAG,SAAS,EACzC,iBAAoB,EACpB,MAAM,MAAM,KACV,WAAW,GAAG,SA+ChB,CAAC"}
|
package/dist/src_json.js
CHANGED
|
@@ -7,16 +7,16 @@ import { paths, replace_extension } from "./paths.js";
|
|
|
7
7
|
import { parse_exports } from "./parse_exports.js";
|
|
8
8
|
import { TS_MATCHER, SVELTE_MATCHER, JSON_MATCHER, CSS_MATCHER } from "./constants.js";
|
|
9
9
|
import { search_fs } from "./search_fs.js";
|
|
10
|
-
export const create_src_json = (package_json, lib_path) => Src_Json.parse({
|
|
10
|
+
export const create_src_json = (package_json, lib_path, log) => Src_Json.parse({
|
|
11
11
|
name: package_json.name,
|
|
12
12
|
version: package_json.version,
|
|
13
|
-
modules: to_src_modules(package_json.exports, lib_path),
|
|
13
|
+
modules: to_src_modules(package_json.exports, lib_path, log),
|
|
14
14
|
});
|
|
15
15
|
export const serialize_src_json = (src_json) => {
|
|
16
16
|
const parsed = Src_Json.parse(src_json); // TODO can parse do the logic that normalize does? see `.transform`
|
|
17
17
|
return JSON.stringify(parsed, null, 2) + '\n';
|
|
18
18
|
};
|
|
19
|
-
export const to_src_modules = (exports, lib_path = paths.lib) => {
|
|
19
|
+
export const to_src_modules = (exports, lib_path = paths.lib, log) => {
|
|
20
20
|
if (!exports)
|
|
21
21
|
return;
|
|
22
22
|
const file_paths = collect_file_paths(exports, lib_path);
|
|
@@ -40,7 +40,10 @@ export const to_src_modules = (exports, lib_path = paths.lib) => {
|
|
|
40
40
|
// Process each file
|
|
41
41
|
for (const { export_key, file_path } of file_paths) {
|
|
42
42
|
const relative_path = file_path.replace(ensure_end(lib_path, '/'), '');
|
|
43
|
-
const declarations = parse_exports(file_path, program).map(({ name, kind }) => ({
|
|
43
|
+
const declarations = parse_exports(file_path, program, undefined, log).map(({ name, kind }) => ({
|
|
44
|
+
name,
|
|
45
|
+
kind,
|
|
46
|
+
}));
|
|
44
47
|
result[export_key] = declarations.length
|
|
45
48
|
? {
|
|
46
49
|
path: relative_path,
|
package/dist/watch_dir.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ChokidarOptions } from 'chokidar';
|
|
1
|
+
import { type ChokidarOptions, type Matcher } from 'chokidar';
|
|
2
2
|
import type { Path_Filter } from './path.ts';
|
|
3
3
|
export interface Watch_Node_Fs {
|
|
4
4
|
init: () => Promise<void>;
|
|
@@ -21,9 +21,16 @@ export interface Watch_Dir_Options {
|
|
|
21
21
|
* @default true
|
|
22
22
|
*/
|
|
23
23
|
absolute?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Pattern to ignore files, merged into `chokidar.ignored` if also provided.
|
|
26
|
+
* - `undefined` (default) ignores files matching `.tmp.` pattern
|
|
27
|
+
* - `null` sets no default ignore pattern
|
|
28
|
+
* - or some custom pattern
|
|
29
|
+
*/
|
|
30
|
+
ignored?: Matcher | null;
|
|
24
31
|
}
|
|
25
32
|
/**
|
|
26
33
|
* Watch for changes on the filesystem using chokidar.
|
|
27
34
|
*/
|
|
28
|
-
export declare const watch_dir: ({ dir, on_change, filter, absolute, chokidar, }: Watch_Dir_Options) => Watch_Node_Fs;
|
|
35
|
+
export declare const watch_dir: ({ dir, on_change, filter, absolute, chokidar, ignored, }: Watch_Dir_Options) => Watch_Node_Fs;
|
|
29
36
|
//# sourceMappingURL=watch_dir.d.ts.map
|
package/dist/watch_dir.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch_dir.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/watch_dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,eAAe,
|
|
1
|
+
{"version":3,"file":"watch_dir.d.ts","sourceRoot":"../src/lib/","sources":["../src/lib/watch_dir.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,eAAe,EAAkB,KAAK,OAAO,EAAC,MAAM,UAAU,CAAC;AAMnF,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,WAAW,CAAC;AAM3C,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC9D,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;AAEvE,MAAM,WAAW,iBAAiB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,0DAOvB,iBAAiB,KAAG,aA+CtB,CAAC"}
|
package/dist/watch_dir.js
CHANGED
|
@@ -2,10 +2,12 @@ import { watch } from 'chokidar';
|
|
|
2
2
|
import { relative } from 'node:path';
|
|
3
3
|
import { statSync } from 'node:fs';
|
|
4
4
|
import { create_deferred } from '@ryanatkn/belt/async.js';
|
|
5
|
+
import { EMPTY_OBJECT } from '@ryanatkn/belt/object.js';
|
|
6
|
+
const TMP_FILE_PATTERN = /\.tmp\./;
|
|
5
7
|
/**
|
|
6
8
|
* Watch for changes on the filesystem using chokidar.
|
|
7
9
|
*/
|
|
8
|
-
export const watch_dir = ({ dir, on_change, filter, absolute = true, chokidar, }) => {
|
|
10
|
+
export const watch_dir = ({ dir, on_change, filter, absolute = true, chokidar, ignored = TMP_FILE_PATTERN, }) => {
|
|
9
11
|
let watcher;
|
|
10
12
|
let initing;
|
|
11
13
|
return {
|
|
@@ -13,7 +15,7 @@ export const watch_dir = ({ dir, on_change, filter, absolute = true, chokidar, }
|
|
|
13
15
|
if (initing)
|
|
14
16
|
return initing.promise;
|
|
15
17
|
initing = create_deferred();
|
|
16
|
-
watcher = watch(dir,
|
|
18
|
+
watcher = watch(dir, resolve_chokidar_options(chokidar, ignored));
|
|
17
19
|
watcher.on('add', (path) => {
|
|
18
20
|
const final_path = absolute ? path : relative(dir, path);
|
|
19
21
|
if (filter && !filter(final_path, false))
|
|
@@ -58,3 +60,10 @@ export const watch_dir = ({ dir, on_change, filter, absolute = true, chokidar, }
|
|
|
58
60
|
},
|
|
59
61
|
};
|
|
60
62
|
};
|
|
63
|
+
const resolve_chokidar_options = (options, ignored) => {
|
|
64
|
+
if (ignored === null)
|
|
65
|
+
return options;
|
|
66
|
+
const { ignored: i, ...rest } = options ?? EMPTY_OBJECT;
|
|
67
|
+
const resolved_ignored = i === undefined ? ignored : Array.isArray(i) ? [...i, ignored] : [i, ignored];
|
|
68
|
+
return { ...rest, ignored: resolved_ignored };
|
|
69
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ryanatkn/gro",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.168.0",
|
|
4
4
|
"description": "task runner and toolkit extending SvelteKit",
|
|
5
5
|
"motto": "generate, run, optimize",
|
|
6
6
|
"glyph": "🌰",
|
|
@@ -83,8 +83,8 @@
|
|
|
83
83
|
"@changesets/changelog-git": "^0.2.1",
|
|
84
84
|
"@changesets/types": "^6.1.0",
|
|
85
85
|
"@ryanatkn/eslint-config": "^0.8.0",
|
|
86
|
-
"@ryanatkn/fuz": "^0.
|
|
87
|
-
"@ryanatkn/moss": "^0.
|
|
86
|
+
"@ryanatkn/fuz": "^0.147.0",
|
|
87
|
+
"@ryanatkn/moss": "^0.36.0",
|
|
88
88
|
"@sveltejs/adapter-static": "^3.0.9",
|
|
89
89
|
"@sveltejs/kit": "^2.37.1",
|
|
90
90
|
"@sveltejs/package": "^2.5.0",
|
package/src/lib/env.ts
CHANGED
|
@@ -18,6 +18,22 @@ export const load_env = (
|
|
|
18
18
|
return merge_envs(envs, visibility, public_prefix, private_prefix);
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
+
/**
|
|
22
|
+
* Loads a single env value without merging it into `process.env`.
|
|
23
|
+
* By default searches process.env, then a local `.env` if one exists, then `../.env` if it exists.
|
|
24
|
+
* Empty strings are semantically the same as `undefined` for more ergonomic fallbacks.
|
|
25
|
+
*/
|
|
26
|
+
export const load_from_env = (key: string, paths = ['.env', '../.env']): string | undefined => {
|
|
27
|
+
let v = process.env[key];
|
|
28
|
+
if (v) return v;
|
|
29
|
+
for (const path of paths) {
|
|
30
|
+
const env = load(path);
|
|
31
|
+
v = env?.[key];
|
|
32
|
+
if (v) return v;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
};
|
|
36
|
+
|
|
21
37
|
const load = (path: string): Record<string, string> | undefined => {
|
|
22
38
|
if (!existsSync(path)) return;
|
|
23
39
|
const loaded = readFileSync(path, 'utf8');
|
|
@@ -60,16 +76,3 @@ export const is_public_env = (
|
|
|
60
76
|
private_prefix: string,
|
|
61
77
|
): boolean =>
|
|
62
78
|
key.startsWith(public_prefix) && (private_prefix === '' || !key.startsWith(private_prefix));
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Loads a single env value without merging it into `process.env`.
|
|
66
|
-
* By default searches process.env, then a local `.env` if one exists, then `../.env` if it exists.
|
|
67
|
-
*/
|
|
68
|
-
export const load_from_env = (key: string, paths = ['.env', '../.env']): string | undefined => {
|
|
69
|
-
if (process.env[key]) return process.env[key];
|
|
70
|
-
for (const path of paths) {
|
|
71
|
-
const env = load(path);
|
|
72
|
-
if (env?.[key]) return env[key];
|
|
73
|
-
}
|
|
74
|
-
return undefined;
|
|
75
|
-
};
|
package/src/lib/gen.ts
CHANGED
|
@@ -47,7 +47,7 @@ export interface Gen_Dependencies_Config {
|
|
|
47
47
|
|
|
48
48
|
export type Gen_Dependencies_Resolver = (
|
|
49
49
|
ctx: Gen_Context,
|
|
50
|
-
) => Gen_Dependencies_Config | 'all' | Promise<Gen_Dependencies_Config | 'all'>;
|
|
50
|
+
) => Gen_Dependencies_Config | 'all' | null | Promise<Gen_Dependencies_Config | 'all' | null>;
|
|
51
51
|
|
|
52
52
|
export type Gen = Gen_Function | Gen_Config;
|
|
53
53
|
|
package/src/lib/gen_helpers.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
normalize_gen_config,
|
|
10
10
|
validate_gen_module,
|
|
11
11
|
type Gen_Context,
|
|
12
|
+
type Gen_Dependencies,
|
|
12
13
|
type Gen_Dependencies_Config,
|
|
13
14
|
} from './gen.ts';
|
|
14
15
|
import {default_svelte_config} from './svelte_config.ts';
|
|
@@ -95,7 +96,7 @@ const resolve_gen_dependencies = async (
|
|
|
95
96
|
return null;
|
|
96
97
|
}
|
|
97
98
|
|
|
98
|
-
let
|
|
99
|
+
let dependencies: Gen_Dependencies | null = gen_config.dependencies;
|
|
99
100
|
if (typeof dependencies === 'function') {
|
|
100
101
|
const gen_ctx: Gen_Context = {
|
|
101
102
|
config,
|
|
@@ -111,8 +112,18 @@ const resolve_gen_dependencies = async (
|
|
|
111
112
|
dependencies = await dependencies(gen_ctx);
|
|
112
113
|
}
|
|
113
114
|
|
|
115
|
+
if (dependencies === null || dependencies === 'all') {
|
|
116
|
+
return dependencies;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// At this point, dependencies is either 'all' or Gen_Dependencies_Config
|
|
120
|
+
// For static dependencies, also normalize empty objects
|
|
121
|
+
if (!dependencies.patterns?.length && !dependencies.files?.length) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
|
|
114
125
|
// Normalize file paths to absolute paths
|
|
115
|
-
if (dependencies
|
|
126
|
+
if (dependencies.files) {
|
|
116
127
|
dependencies.files = dependencies.files.map((f) => resolve(f));
|
|
117
128
|
}
|
|
118
129
|
|
|
@@ -91,7 +91,7 @@ export const gro_plugin_sveltekit_app = ({
|
|
|
91
91
|
|
|
92
92
|
// `.well-known/src.json` and `.well-known/src/`
|
|
93
93
|
const final_package_json = mapped_package_json ?? package_json;
|
|
94
|
-
const src_json = create_src_json(final_package_json, undefined);
|
|
94
|
+
const src_json = create_src_json(final_package_json, undefined, log);
|
|
95
95
|
if (well_known_src_json === undefined) {
|
|
96
96
|
well_known_src_json = final_package_json.public; // eslint-disable-line no-param-reassign
|
|
97
97
|
}
|
package/src/lib/package.gen.ts
CHANGED
|
@@ -11,13 +11,13 @@ import type {Gen} from './gen.ts';
|
|
|
11
11
|
* which mirrors `package.json` but in TypeScript,
|
|
12
12
|
* allowing apps to import typesafe data from their own `package.json`.
|
|
13
13
|
*/
|
|
14
|
-
export const gen: Gen = ({origin_path}) => {
|
|
14
|
+
export const gen: Gen = ({origin_path, log}) => {
|
|
15
15
|
const package_json = load_package_json();
|
|
16
16
|
// TODO this can error with bad json data, do we need to update the package.json here first?
|
|
17
17
|
// similarly do this in other places too?
|
|
18
18
|
// part of the problem is that the package_json actually has a dependency on each of its exports and their deps,
|
|
19
19
|
// but only when they're added/removed right? see gro_plugin_gen for details
|
|
20
|
-
const src_json = create_src_json(package_json, undefined);
|
|
20
|
+
const src_json = create_src_json(package_json, undefined, log);
|
|
21
21
|
|
|
22
22
|
const is_this_belt = package_json.name === '@ryanatkn/belt'; // TODO more robust?
|
|
23
23
|
|
package/src/lib/package.ts
CHANGED
|
@@ -5,7 +5,7 @@ import type {Src_Json} from '@ryanatkn/belt/src_json.js';
|
|
|
5
5
|
|
|
6
6
|
export const package_json: Package_Json = {
|
|
7
7
|
name: '@ryanatkn/gro',
|
|
8
|
-
version: '0.
|
|
8
|
+
version: '0.168.0',
|
|
9
9
|
description: 'task runner and toolkit extending SvelteKit',
|
|
10
10
|
motto: 'generate, run, optimize',
|
|
11
11
|
glyph: '🌰',
|
|
@@ -69,8 +69,8 @@ export const package_json: Package_Json = {
|
|
|
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.
|
|
73
|
-
'@ryanatkn/moss': '^0.
|
|
72
|
+
'@ryanatkn/fuz': '^0.147.0',
|
|
73
|
+
'@ryanatkn/moss': '^0.36.0',
|
|
74
74
|
'@sveltejs/adapter-static': '^3.0.9',
|
|
75
75
|
'@sveltejs/kit': '^2.37.1',
|
|
76
76
|
'@sveltejs/package': '^2.5.0',
|
|
@@ -104,7 +104,7 @@ export const package_json: Package_Json = {
|
|
|
104
104
|
|
|
105
105
|
export const src_json: Src_Json = {
|
|
106
106
|
name: '@ryanatkn/gro',
|
|
107
|
-
version: '0.
|
|
107
|
+
version: '0.168.0',
|
|
108
108
|
modules: {
|
|
109
109
|
'.': {
|
|
110
110
|
path: 'index.ts',
|
|
@@ -271,10 +271,10 @@ export const src_json: Src_Json = {
|
|
|
271
271
|
path: 'env.ts',
|
|
272
272
|
declarations: [
|
|
273
273
|
{name: 'load_env', kind: 'function'},
|
|
274
|
+
{name: 'load_from_env', kind: 'function'},
|
|
274
275
|
{name: 'merge_envs', kind: 'function'},
|
|
275
276
|
{name: 'is_private_env', kind: 'function'},
|
|
276
277
|
{name: 'is_public_env', kind: 'function'},
|
|
277
|
-
{name: 'load_from_env', kind: 'function'},
|
|
278
278
|
],
|
|
279
279
|
},
|
|
280
280
|
'./esbuild_helpers.js': {
|
package/src/lib/run_task.ts
CHANGED
|
@@ -2,7 +2,7 @@ import {styleText as st} from 'node:util';
|
|
|
2
2
|
import {print_log_label} from '@ryanatkn/belt/print.js';
|
|
3
3
|
import {System_Logger} from '@ryanatkn/belt/log.js';
|
|
4
4
|
import type {Timings} from '@ryanatkn/belt/timings.js';
|
|
5
|
-
import z from 'zod';
|
|
5
|
+
import {z} from 'zod';
|
|
6
6
|
|
|
7
7
|
import {parse_args, type Args} from './args.ts';
|
|
8
8
|
import type {invoke_task as base_invoke_task} from './invoke_task.ts';
|
package/src/lib/src_json.ts
CHANGED
|
@@ -4,6 +4,7 @@ import {existsSync} from 'node:fs';
|
|
|
4
4
|
import ts from 'typescript';
|
|
5
5
|
import type {Package_Json, Package_Json_Exports} from '@ryanatkn/belt/package_json.js';
|
|
6
6
|
import {Src_Json, Src_Modules} from '@ryanatkn/belt/src_json.js';
|
|
7
|
+
import type {Logger} from '@ryanatkn/belt/log.js';
|
|
7
8
|
|
|
8
9
|
import {paths, replace_extension} from './paths.ts';
|
|
9
10
|
import {parse_exports} from './parse_exports.ts';
|
|
@@ -12,11 +13,15 @@ import {search_fs} from './search_fs.ts';
|
|
|
12
13
|
|
|
13
14
|
export type Map_Src_Json = (src_json: Src_Json) => Src_Json | null | Promise<Src_Json | null>;
|
|
14
15
|
|
|
15
|
-
export const create_src_json = (
|
|
16
|
+
export const create_src_json = (
|
|
17
|
+
package_json: Package_Json,
|
|
18
|
+
lib_path?: string,
|
|
19
|
+
log?: Logger,
|
|
20
|
+
): Src_Json =>
|
|
16
21
|
Src_Json.parse({
|
|
17
22
|
name: package_json.name,
|
|
18
23
|
version: package_json.version,
|
|
19
|
-
modules: to_src_modules(package_json.exports, lib_path),
|
|
24
|
+
modules: to_src_modules(package_json.exports, lib_path, log),
|
|
20
25
|
});
|
|
21
26
|
|
|
22
27
|
export const serialize_src_json = (src_json: Src_Json): string => {
|
|
@@ -27,6 +32,7 @@ export const serialize_src_json = (src_json: Src_Json): string => {
|
|
|
27
32
|
export const to_src_modules = (
|
|
28
33
|
exports: Package_Json_Exports | undefined,
|
|
29
34
|
lib_path = paths.lib,
|
|
35
|
+
log?: Logger,
|
|
30
36
|
): Src_Modules | undefined => {
|
|
31
37
|
if (!exports) return;
|
|
32
38
|
|
|
@@ -58,7 +64,10 @@ export const to_src_modules = (
|
|
|
58
64
|
for (const {export_key, file_path} of file_paths) {
|
|
59
65
|
const relative_path = file_path.replace(ensure_end(lib_path, '/'), '');
|
|
60
66
|
|
|
61
|
-
const declarations = parse_exports(file_path, program).map(({name, kind}) => ({
|
|
67
|
+
const declarations = parse_exports(file_path, program, undefined, log).map(({name, kind}) => ({
|
|
68
|
+
name,
|
|
69
|
+
kind,
|
|
70
|
+
}));
|
|
62
71
|
|
|
63
72
|
result[export_key] = declarations.length
|
|
64
73
|
? {
|
package/src/lib/watch_dir.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import {watch, type ChokidarOptions, type FSWatcher} from 'chokidar';
|
|
1
|
+
import {watch, type ChokidarOptions, type FSWatcher, type Matcher} from 'chokidar';
|
|
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 {EMPTY_OBJECT} from '@ryanatkn/belt/object.js';
|
|
5
6
|
|
|
6
7
|
import type {Path_Filter} from './path.ts';
|
|
7
8
|
|
|
9
|
+
const TMP_FILE_PATTERN = /\.tmp\./;
|
|
10
|
+
|
|
8
11
|
// TODO pretty hacky
|
|
9
12
|
|
|
10
13
|
export interface Watch_Node_Fs {
|
|
@@ -30,6 +33,13 @@ export interface Watch_Dir_Options {
|
|
|
30
33
|
* @default true
|
|
31
34
|
*/
|
|
32
35
|
absolute?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Pattern to ignore files, merged into `chokidar.ignored` if also provided.
|
|
38
|
+
* - `undefined` (default) ignores files matching `.tmp.` pattern
|
|
39
|
+
* - `null` sets no default ignore pattern
|
|
40
|
+
* - or some custom pattern
|
|
41
|
+
*/
|
|
42
|
+
ignored?: Matcher | null;
|
|
33
43
|
}
|
|
34
44
|
|
|
35
45
|
/**
|
|
@@ -41,6 +51,7 @@ export const watch_dir = ({
|
|
|
41
51
|
filter,
|
|
42
52
|
absolute = true,
|
|
43
53
|
chokidar,
|
|
54
|
+
ignored = TMP_FILE_PATTERN,
|
|
44
55
|
}: Watch_Dir_Options): Watch_Node_Fs => {
|
|
45
56
|
let watcher: FSWatcher | undefined;
|
|
46
57
|
let initing: Deferred<void> | undefined;
|
|
@@ -49,7 +60,7 @@ export const watch_dir = ({
|
|
|
49
60
|
init: async () => {
|
|
50
61
|
if (initing) return initing.promise;
|
|
51
62
|
initing = create_deferred();
|
|
52
|
-
watcher = watch(dir,
|
|
63
|
+
watcher = watch(dir, resolve_chokidar_options(chokidar, ignored));
|
|
53
64
|
watcher.on('add', (path) => {
|
|
54
65
|
const final_path = absolute ? path : relative(dir, path);
|
|
55
66
|
if (filter && !filter(final_path, false)) return;
|
|
@@ -89,3 +100,17 @@ export const watch_dir = ({
|
|
|
89
100
|
},
|
|
90
101
|
};
|
|
91
102
|
};
|
|
103
|
+
|
|
104
|
+
const resolve_chokidar_options = (
|
|
105
|
+
options: ChokidarOptions | undefined,
|
|
106
|
+
ignored: Matcher | null,
|
|
107
|
+
): ChokidarOptions | undefined => {
|
|
108
|
+
if (ignored === null) return options;
|
|
109
|
+
|
|
110
|
+
const {ignored: i, ...rest} = options ?? EMPTY_OBJECT;
|
|
111
|
+
|
|
112
|
+
const resolved_ignored =
|
|
113
|
+
i === undefined ? ignored : Array.isArray(i) ? [...i, ignored] : [i, ignored];
|
|
114
|
+
|
|
115
|
+
return {...rest, ignored: resolved_ignored};
|
|
116
|
+
};
|