@ryanatkn/gro 0.134.0 → 0.135.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.
- package/dist/args.d.ts.map +1 -1
- package/dist/args.js +6 -2
- package/dist/changeset.task.js +3 -3
- package/dist/check.task.js +2 -2
- package/dist/deploy.task.d.ts +2 -2
- package/dist/deploy.task.d.ts.map +1 -1
- package/dist/deploy.task.js +7 -7
- package/dist/esbuild_helpers.js +3 -3
- package/dist/gen.js +3 -3
- package/dist/gen.task.d.ts.map +1 -1
- package/dist/gen.task.js +8 -8
- package/dist/gro_helpers.js +1 -1
- package/dist/invoke.js +3 -0
- package/dist/invoke_task.d.ts.map +1 -1
- package/dist/invoke_task.js +8 -8
- package/dist/package.js +15 -15
- package/dist/package_json.js +3 -3
- package/dist/paths.js +2 -2
- package/dist/publish.task.js +4 -4
- package/dist/resolve.task.js +3 -3
- package/dist/run.task.js +2 -2
- package/dist/run_gen.js +3 -3
- package/dist/run_task.d.ts.map +1 -1
- package/dist/run_task.js +6 -5
- package/dist/task.js +3 -3
- package/dist/task_logging.js +7 -7
- package/dist/test.task.js +2 -2
- package/dist/watch_dir.js +1 -1
- package/package.json +14 -14
- package/src/lib/args.ts +6 -2
- package/src/lib/changeset.task.ts +3 -3
- package/src/lib/check.task.ts +2 -2
- package/src/lib/deploy.task.ts +12 -7
- package/src/lib/esbuild_helpers.ts +3 -3
- package/src/lib/gen.task.ts +11 -9
- package/src/lib/gen.ts +3 -3
- package/src/lib/gro_helpers.ts +1 -1
- package/src/lib/invoke.ts +4 -0
- package/src/lib/invoke_task.ts +10 -8
- package/src/lib/package.ts +15 -15
- package/src/lib/package_json.ts +3 -3
- package/src/lib/paths.ts +2 -2
- package/src/lib/publish.task.ts +4 -4
- package/src/lib/resolve.task.ts +3 -3
- package/src/lib/run.task.ts +2 -2
- package/src/lib/run_gen.ts +3 -3
- package/src/lib/run_task.ts +8 -5
- package/src/lib/task.ts +3 -3
- package/src/lib/task_logging.ts +10 -10
- package/src/lib/test.task.ts +2 -2
- package/src/lib/watch_dir.ts +1 -1
package/dist/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"../src/lib/","sources":["args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACpB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEjG,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,GACtB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SACzC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,wBAEzB,MAAM,UACb,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAC9C,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAiBvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAAM,EAuBjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,uBAA0B;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAMhF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,uBAA0B,MAAM,EAG5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YACpB,MAAM,kBACC,MAAM,EAAE,+CAEtB,IAA4B,CAAC;AAEhC,eAAO,MAAM,4BAA4B,gCAEtC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAuCjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,oBAAqB,MAAM,EAAE,KAAG,
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"../src/lib/","sources":["args.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAE3B;;;;;;;;GAQG;AACH,MAAM,WAAW,IAAI;IACpB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEjG,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,UAAU,GACtB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,SACzC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,wBAEzB,MAAM,UACb,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC,KAC9C,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAiBvC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,SAAU,IAAI,KAAG,MAAM,EAuBjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,YAAY,uBAA0B;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAMhF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,uBAA0B,MAAM,EAG5D,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,YACpB,MAAM,kBACC,MAAM,EAAE,+CAEtB,IAA4B,CAAC;AAEhC,eAAO,MAAM,4BAA4B,gCAEtC,MAAM,CAAC,MAAM,EAAE,IAAI,GAAG,SAAS,CAuCjC,CAAC;AAEF,eAAO,MAAM,kBAAkB,oBAAqB,MAAM,EAAE,KAAG,MAKrC,CAAC"}
|
package/dist/args.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { styleText as st } from 'node:util';
|
|
2
2
|
import mri from 'mri';
|
|
3
3
|
/**
|
|
4
4
|
* Parses user input args with a Zod schema.
|
|
@@ -129,4 +129,8 @@ export const to_forwarded_args_by_command = (raw_rest_args = to_raw_rest_args())
|
|
|
129
129
|
}
|
|
130
130
|
return forwarded_args_by_command;
|
|
131
131
|
};
|
|
132
|
-
export const print_command_args = (serialized_args) =>
|
|
132
|
+
export const print_command_args = (serialized_args) => st('gray', '[') +
|
|
133
|
+
st('magenta', 'running command') +
|
|
134
|
+
st('gray', ']') +
|
|
135
|
+
' ' +
|
|
136
|
+
serialized_args.join(' ');
|
package/dist/changeset.task.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { spawn } from '@ryanatkn/belt/process.js';
|
|
3
|
-
import {
|
|
3
|
+
import { styleText as st } from 'node:util';
|
|
4
4
|
import { readFile, writeFile } from 'node:fs/promises';
|
|
5
5
|
import { join } from 'node:path';
|
|
6
6
|
import { existsSync, readdirSync } from 'node:fs';
|
|
@@ -67,8 +67,8 @@ export const task = {
|
|
|
67
67
|
const access = (access_arg ?? package_json.private)
|
|
68
68
|
? CHANGESET_RESTRICTED_ACCESS
|
|
69
69
|
: CHANGESET_PUBLIC_ACCESS;
|
|
70
|
-
const access_color = access === CHANGESET_RESTRICTED_ACCESS ? blue : red;
|
|
71
|
-
log.info('initing changeset with ' + access_color
|
|
70
|
+
const access_color = access === CHANGESET_RESTRICTED_ACCESS ? 'blue' : 'red';
|
|
71
|
+
log.info('initing changeset with ' + st(access_color, access) + ' access');
|
|
72
72
|
if (access !== CHANGESET_RESTRICTED_ACCESS) {
|
|
73
73
|
await update_changeset_config(path, (config) => {
|
|
74
74
|
const updated = { ...config };
|
package/dist/check.task.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { spawn } from '@ryanatkn/belt/process.js';
|
|
3
|
-
import {
|
|
3
|
+
import { styleText as st } from 'node:util';
|
|
4
4
|
import { Task_Error } from './task.js';
|
|
5
5
|
import { git_check_clean_workspace } from './git.js';
|
|
6
6
|
import { sync_package_json } from './package_json.js';
|
|
@@ -67,7 +67,7 @@ export const task = {
|
|
|
67
67
|
if (workspace) {
|
|
68
68
|
const error_message = await git_check_clean_workspace();
|
|
69
69
|
if (error_message) {
|
|
70
|
-
log.error(
|
|
70
|
+
log.error(st('red', 'git status'));
|
|
71
71
|
await spawn('git', ['status']);
|
|
72
72
|
throw new Task_Error('Failed check for git_check_clean_workspace:' +
|
|
73
73
|
error_message +
|
package/dist/deploy.task.d.ts
CHANGED
|
@@ -13,10 +13,10 @@ export declare const Args: z.ZodObject<{
|
|
|
13
13
|
build: z.ZodDefault<z.ZodBoolean>;
|
|
14
14
|
'no-build': z.ZodDefault<z.ZodBoolean>;
|
|
15
15
|
}, "strict", z.ZodTypeAny, {
|
|
16
|
+
reset: boolean;
|
|
16
17
|
build: boolean;
|
|
17
18
|
target: string & z.BRAND<"Git_Branch">;
|
|
18
19
|
origin: string & z.BRAND<"Git_Origin">;
|
|
19
|
-
reset: boolean;
|
|
20
20
|
source: string & z.BRAND<"Git_Branch">;
|
|
21
21
|
deploy_dir: string;
|
|
22
22
|
build_dir: string;
|
|
@@ -25,10 +25,10 @@ export declare const Args: z.ZodObject<{
|
|
|
25
25
|
dangerous: boolean;
|
|
26
26
|
'no-build': boolean;
|
|
27
27
|
}, {
|
|
28
|
+
reset?: boolean | undefined;
|
|
28
29
|
build?: boolean | undefined;
|
|
29
30
|
target?: string | undefined;
|
|
30
31
|
origin?: string | undefined;
|
|
31
|
-
reset?: boolean | undefined;
|
|
32
32
|
source?: string | undefined;
|
|
33
33
|
deploy_dir?: string | undefined;
|
|
34
34
|
build_dir?: string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.task.d.ts","sourceRoot":"../src/lib/","sources":["deploy.task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAkChD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BP,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"deploy.task.d.ts","sourceRoot":"../src/lib/","sources":["deploy.task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAKtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAkChD,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8BP,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAExC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CA4K3B,CAAC"}
|
package/dist/deploy.task.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { spawn } from '@ryanatkn/belt/process.js';
|
|
2
2
|
import { print_error } from '@ryanatkn/belt/print.js';
|
|
3
|
-
import {
|
|
3
|
+
import { styleText as st } from 'node:util';
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { cp, mkdir, rm } from 'node:fs/promises';
|
|
6
6
|
import { join, resolve } from 'node:path';
|
|
@@ -159,14 +159,14 @@ export const task = {
|
|
|
159
159
|
await invoke_task('build');
|
|
160
160
|
}
|
|
161
161
|
if (!existsSync(build_dir)) {
|
|
162
|
-
log.error(
|
|
162
|
+
log.error(st('red', 'directory to deploy does not exist after building:'), build_dir);
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
165
|
}
|
|
166
166
|
catch (err) {
|
|
167
|
-
log.error(
|
|
167
|
+
log.error(st('red', 'build failed'), 'but', st('green', 'no changes were made to git'), print_error(err));
|
|
168
168
|
if (dry) {
|
|
169
|
-
log.info(
|
|
169
|
+
log.info(st('red', 'dry deploy failed'));
|
|
170
170
|
}
|
|
171
171
|
throw new Task_Error(`Deploy safely canceled due to build failure. See the error above.`);
|
|
172
172
|
}
|
|
@@ -174,7 +174,7 @@ export const task = {
|
|
|
174
174
|
await Promise.all(readdirSync(build_dir).map((path) => cp(join(build_dir, path), join(resolved_deploy_dir, path), { recursive: true })));
|
|
175
175
|
// At this point, `dist/` is ready to be committed and deployed!
|
|
176
176
|
if (dry) {
|
|
177
|
-
log.info(
|
|
177
|
+
log.info(st('green', 'dry deploy complete:'), 'files at', print_path(resolved_deploy_dir));
|
|
178
178
|
return;
|
|
179
179
|
}
|
|
180
180
|
// Commit and push
|
|
@@ -184,9 +184,9 @@ export const task = {
|
|
|
184
184
|
await spawn('git', ['push', origin, target, '-f'], target_spawn_options); // force push because we may be resetting the branch, see the checks above to make this safer
|
|
185
185
|
}
|
|
186
186
|
catch (err) {
|
|
187
|
-
log.error(
|
|
187
|
+
log.error(st('red', 'updating git failed:'), print_error(err));
|
|
188
188
|
throw new Task_Error(`Deploy failed in a bad state: built but not pushed, see error above.`);
|
|
189
189
|
}
|
|
190
|
-
log.info(
|
|
190
|
+
log.info(st('green', 'deployed')); // TODO log a different message if "Everything up-to-date"
|
|
191
191
|
},
|
|
192
192
|
};
|
package/dist/esbuild_helpers.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { styleText as st } from 'node:util';
|
|
2
2
|
export const print_build_result = (log, build_result) => {
|
|
3
3
|
for (const error of build_result.errors) {
|
|
4
|
-
log.error(
|
|
4
|
+
log.error(st('red', 'esbuild error'), error);
|
|
5
5
|
}
|
|
6
6
|
for (const warning of build_result.warnings) {
|
|
7
|
-
log.warn(
|
|
7
|
+
log.warn(st('yellow', 'esbuild warning'), warning);
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
10
|
// This concatenates weirdly to avoid a SvelteKit warning,
|
package/dist/gen.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join, basename, dirname, isAbsolute } from 'node:path';
|
|
2
2
|
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
3
3
|
import { z } from 'zod';
|
|
4
|
-
import {
|
|
4
|
+
import { styleText as st } from 'node:util';
|
|
5
5
|
import { existsSync } from 'node:fs';
|
|
6
6
|
import { print_path } from './paths.js';
|
|
7
7
|
import { load_modules } from './modules.js';
|
|
@@ -145,7 +145,7 @@ export const find_genfiles = (input_paths, root_dirs, config, timings) => {
|
|
|
145
145
|
type: 'unmapped_input_paths',
|
|
146
146
|
unmapped_input_paths,
|
|
147
147
|
resolved_input_paths,
|
|
148
|
-
reasons: unmapped_input_paths.map((input_path) => red
|
|
148
|
+
reasons: unmapped_input_paths.map((input_path) => st('red', `Input path ${print_path(input_path)} cannot be mapped to a file or directory.`)),
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
// Find all of the files for any directories.
|
|
@@ -164,7 +164,7 @@ export const find_genfiles = (input_paths, root_dirs, config, timings) => {
|
|
|
164
164
|
resolved_input_files,
|
|
165
165
|
resolved_input_files_by_root_dir,
|
|
166
166
|
resolved_input_paths,
|
|
167
|
-
reasons: input_directories_with_no_files.map((input_path) => red
|
|
167
|
+
reasons: input_directories_with_no_files.map((input_path) => st('red', `Input directory contains no matching files: ${print_path(input_path)}`)),
|
|
168
168
|
};
|
|
169
169
|
}
|
|
170
170
|
return {
|
package/dist/gen.task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.task.d.ts","sourceRoot":"../src/lib/","sources":["gen.task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAShD,eAAO,MAAM,IAAI;;;;;;;;;;;;EAUP,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAIxC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"gen.task.d.ts","sourceRoot":"../src/lib/","sources":["gen.task.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,CAAC,EAAC,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAShD,eAAO,MAAM,IAAI;;;;;;;;;;;;EAUP,CAAC;AACX,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC;AAIxC,eAAO,MAAM,IAAI,EAAE,IAAI,CAAC,IAAI,CA0G3B,CAAC"}
|
package/dist/gen.task.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { styleText as st } from 'node:util';
|
|
2
2
|
import { print_ms, print_error } from '@ryanatkn/belt/print.js';
|
|
3
3
|
import { plural } from '@ryanatkn/belt/string.js';
|
|
4
4
|
import { z } from 'zod';
|
|
@@ -68,7 +68,7 @@ export const task = {
|
|
|
68
68
|
if (!analyzed.has_changed)
|
|
69
69
|
continue;
|
|
70
70
|
has_unexpected_changes = true;
|
|
71
|
-
log.error(red
|
|
71
|
+
log.error(st('red', `Generated file ${print_path(analyzed.file.id)} via ${print_path(analyzed.file.origin_id)} ${analyzed.is_new ? 'is new' : 'has changed'}.`));
|
|
72
72
|
}
|
|
73
73
|
if (has_unexpected_changes) {
|
|
74
74
|
throw new Task_Error('Failed gen check. Some generated files have unexpectedly changed.' +
|
|
@@ -88,15 +88,15 @@ export const task = {
|
|
|
88
88
|
const new_count = analyzed_gen_results.filter((r) => r.is_new).length;
|
|
89
89
|
const changed_count = analyzed_gen_results.filter((r) => r.has_changed).length;
|
|
90
90
|
const unchanged_count = analyzed_gen_results.filter((r) => !r.is_new && !r.has_changed).length;
|
|
91
|
-
let log_result =
|
|
92
|
-
log_result += `\n\t${new_count} ` +
|
|
93
|
-
log_result += `\n\t${changed_count} ` +
|
|
94
|
-
log_result += `\n\t${unchanged_count} ` +
|
|
91
|
+
let log_result = st('green', 'gen results:');
|
|
92
|
+
log_result += `\n\t${new_count} ` + st('gray', 'new');
|
|
93
|
+
log_result += `\n\t${changed_count} ` + st('gray', 'changed');
|
|
94
|
+
log_result += `\n\t${unchanged_count} ` + st('gray', 'unchanged');
|
|
95
95
|
for (const result of gen_results.results) {
|
|
96
|
-
log_result += `\n\t${result.ok ?
|
|
96
|
+
log_result += `\n\t${result.ok ? st('green', '✓') : st('red', '🞩')} ${result.ok ? result.files.length : 0} ${st('gray', 'in')} ${print_ms(result.elapsed)} ${st('gray', '←')} ${print_path(result.id)}`;
|
|
97
97
|
}
|
|
98
98
|
log.info(log_result);
|
|
99
|
-
log.info(green
|
|
99
|
+
log.info(st('green', `generated ${gen_results.output_count} file${plural(gen_results.output_count)} from ${gen_results.successes.length} input file${plural(gen_results.successes.length)}`));
|
|
100
100
|
if (fail_count) {
|
|
101
101
|
for (const result of gen_results.failures) {
|
|
102
102
|
log.error(result.reason, '\n', print_error(result.error));
|
package/dist/gro_helpers.js
CHANGED
|
@@ -84,7 +84,7 @@ export const spawn_with_loader = (loader_path, invoke_path, argv) => {
|
|
|
84
84
|
register("${loader_path}", pathToFileURL("./"));`,
|
|
85
85
|
'--enable-source-maps', // because TypeScript
|
|
86
86
|
];
|
|
87
|
-
// In almost all cases we want the exports condition to be `"development"`.
|
|
87
|
+
// In almost all cases we want the exports condition to be `"development"`. Needed for `esm-env`.
|
|
88
88
|
if (process.env.NODE_ENV !== 'production') {
|
|
89
89
|
args.push('-C', 'development'); // same as `--conditions`
|
|
90
90
|
}
|
package/dist/invoke.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { attach_process_error_handlers } from '@ryanatkn/belt/process.js';
|
|
2
|
+
import { configure_log_colors } from '@ryanatkn/belt/log.js';
|
|
3
|
+
import { styleText } from 'node:util';
|
|
2
4
|
import { invoke_task } from './invoke_task.js';
|
|
3
5
|
import { to_task_args } from './args.js';
|
|
4
6
|
import { load_gro_config } from './gro_config.js';
|
|
@@ -15,6 +17,7 @@ and the rest of the args are forwarded to the task's `run` function.
|
|
|
15
17
|
*/
|
|
16
18
|
// handle uncaught errors
|
|
17
19
|
attach_process_error_handlers((err) => (err.constructor.name === 'Task_Error' ? 'Task_Error' : null), (err) => (err.constructor.name === 'Silent_Error' ? '' : null));
|
|
20
|
+
configure_log_colors(styleText);
|
|
18
21
|
await sveltekit_sync_if_obviously_needed();
|
|
19
22
|
const { task_name, args } = to_task_args();
|
|
20
23
|
await invoke_task(task_name, args, await load_gro_config());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke_task.d.ts","sourceRoot":"../src/lib/","sources":["invoke_task.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAoB,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAgB,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAI9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,cACZ,cAAc,QACnB,IAAI,GAAG,SAAS,UACd,UAAU,oBACD,OAAO,GAAG,IAAI,KAC7B,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"invoke_task.d.ts","sourceRoot":"../src/lib/","sources":["invoke_task.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAoB,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAgB,cAAc,EAAC,MAAM,iBAAiB,CAAC;AAI9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,WAAW,cACZ,cAAc,QACnB,IAAI,GAAG,SAAS,UACd,UAAU,oBACD,OAAO,GAAG,IAAI,KAC7B,OAAO,CAAC,IAAI,CA6Ed,CAAC"}
|
package/dist/invoke_task.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { System_Logger
|
|
1
|
+
import { styleText as st } from 'node:util';
|
|
2
|
+
import { System_Logger } from '@ryanatkn/belt/log.js';
|
|
3
3
|
import { create_stopwatch, Timings } from '@ryanatkn/belt/timings.js';
|
|
4
|
-
import { print_ms, print_timings } from '@ryanatkn/belt/print.js';
|
|
4
|
+
import { print_ms, print_timings, print_log_label } from '@ryanatkn/belt/print.js';
|
|
5
5
|
import { to_forwarded_args } from './args.js';
|
|
6
6
|
import { run_task } from './run_task.js';
|
|
7
7
|
import { to_input_path, Raw_Input_Path } from './input_path.js';
|
|
@@ -32,7 +32,7 @@ import { log_tasks, log_error_reasons } from './task_logging.js';
|
|
|
32
32
|
*/
|
|
33
33
|
export const invoke_task = async (task_name, args, config, initial_timings = null) => {
|
|
34
34
|
const log = new System_Logger(print_log_label(task_name || 'gro'));
|
|
35
|
-
log.info('invoking', task_name ? cyan
|
|
35
|
+
log.info('invoking', task_name ? st('cyan', task_name) : 'gro');
|
|
36
36
|
const timings = initial_timings ?? new Timings();
|
|
37
37
|
const total_timing = create_stopwatch();
|
|
38
38
|
const finish = () => {
|
|
@@ -44,7 +44,7 @@ export const invoke_task = async (task_name, args, config, initial_timings = nul
|
|
|
44
44
|
// Check if the caller just wants to see the version.
|
|
45
45
|
if (!task_name && (args?.version || args?.v)) {
|
|
46
46
|
const gro_package_json = load_gro_package_json();
|
|
47
|
-
log.info(`${
|
|
47
|
+
log.info(`${st('gray', 'v')}${st('cyan', gro_package_json.version)}`);
|
|
48
48
|
finish();
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
@@ -78,15 +78,15 @@ export const invoke_task = async (task_name, args, config, initial_timings = nul
|
|
|
78
78
|
if (loaded_tasks.modules.length !== 1)
|
|
79
79
|
throw Error('expected one loaded task'); // run only one task at a time
|
|
80
80
|
const task = loaded_tasks.modules[0];
|
|
81
|
-
log.info(`→ ${cyan
|
|
81
|
+
log.info(`→ ${st('cyan', task.name)} ${(task.mod.task.summary && st('gray', task.mod.task.summary)) ?? ''}`);
|
|
82
82
|
const timing_to_run_task = timings.start('run task ' + task_name);
|
|
83
83
|
const result = await run_task(task, { ...args, ...to_forwarded_args(`gro ${task.name}`) }, invoke_task, config, timings);
|
|
84
84
|
timing_to_run_task();
|
|
85
85
|
if (!result.ok) {
|
|
86
|
-
log.info(`${
|
|
86
|
+
log.info(`${st('red', '🞩')} ${st('cyan', task.name)}`);
|
|
87
87
|
log_error_reasons(log, [result.reason]);
|
|
88
88
|
throw result.error;
|
|
89
89
|
}
|
|
90
|
-
log.info(`✓ ${cyan
|
|
90
|
+
log.info(`✓ ${st('cyan', task.name)}`);
|
|
91
91
|
finish();
|
|
92
92
|
};
|
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.135.1',
|
|
5
5
|
description: 'task runner and toolkit extending SvelteKit',
|
|
6
6
|
motto: 'generate, run, optimize',
|
|
7
7
|
glyph: '🌰',
|
|
@@ -25,7 +25,7 @@ export const package_json = {
|
|
|
25
25
|
deploy: 'gro deploy',
|
|
26
26
|
},
|
|
27
27
|
type: 'module',
|
|
28
|
-
engines: { node: '>=20.
|
|
28
|
+
engines: { node: '>=20.17' },
|
|
29
29
|
bin: { gro: 'dist/gro.js' },
|
|
30
30
|
keywords: [
|
|
31
31
|
'web',
|
|
@@ -39,8 +39,8 @@ export const package_json = {
|
|
|
39
39
|
'typescript',
|
|
40
40
|
],
|
|
41
41
|
dependencies: {
|
|
42
|
-
'@ryanatkn/belt': '^0.
|
|
43
|
-
chokidar: '^4.0.
|
|
42
|
+
'@ryanatkn/belt': '^0.25.0',
|
|
43
|
+
chokidar: '^4.0.1',
|
|
44
44
|
dotenv: '^16.4.5',
|
|
45
45
|
'es-module-lexer': '^1.5.4',
|
|
46
46
|
'esm-env': '^1.0.0',
|
|
@@ -56,21 +56,21 @@ export const package_json = {
|
|
|
56
56
|
'@changesets/changelog-git': '^0.2.0',
|
|
57
57
|
'@changesets/types': '^6.0.0',
|
|
58
58
|
'@ryanatkn/eslint-config': '^0.5.3',
|
|
59
|
-
'@ryanatkn/fuz': '^0.
|
|
60
|
-
'@ryanatkn/moss': '^0.
|
|
61
|
-
'@sveltejs/adapter-static': '^3.0.
|
|
62
|
-
'@sveltejs/kit': '^2.5.
|
|
63
|
-
'@sveltejs/package': '^2.3.
|
|
59
|
+
'@ryanatkn/fuz': '^0.124.4',
|
|
60
|
+
'@ryanatkn/moss': '^0.16.1',
|
|
61
|
+
'@sveltejs/adapter-static': '^3.0.5',
|
|
62
|
+
'@sveltejs/kit': '^2.5.28',
|
|
63
|
+
'@sveltejs/package': '^2.3.5',
|
|
64
64
|
'@sveltejs/vite-plugin-svelte': '^3.1.2',
|
|
65
65
|
'@types/fs-extra': '^11.0.4',
|
|
66
|
-
'@types/node': '^22.5.
|
|
66
|
+
'@types/node': '^22.5.5',
|
|
67
67
|
esbuild: '^0.21.5',
|
|
68
|
-
eslint: '^9.
|
|
69
|
-
'eslint-plugin-svelte': '^2.
|
|
70
|
-
svelte: '^5.0.0-next.
|
|
68
|
+
eslint: '^9.11.0',
|
|
69
|
+
'eslint-plugin-svelte': '^2.44.0',
|
|
70
|
+
svelte: '^5.0.0-next.257',
|
|
71
71
|
'svelte-check': '^4.0.2',
|
|
72
72
|
typescript: '^5.6.2',
|
|
73
|
-
'typescript-eslint': '^8.
|
|
73
|
+
'typescript-eslint': '^8.6.0',
|
|
74
74
|
uvu: '^0.5.6',
|
|
75
75
|
},
|
|
76
76
|
prettier: {
|
|
@@ -262,7 +262,7 @@ export const package_json = {
|
|
|
262
262
|
};
|
|
263
263
|
export const src_json = {
|
|
264
264
|
name: '@ryanatkn/gro',
|
|
265
|
-
version: '0.
|
|
265
|
+
version: '0.135.1',
|
|
266
266
|
modules: {
|
|
267
267
|
'.': {
|
|
268
268
|
path: 'index.ts',
|
package/dist/package_json.js
CHANGED
|
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
4
4
|
import { count_graphemes, plural, strip_end } from '@ryanatkn/belt/string.js';
|
|
5
|
-
import {
|
|
5
|
+
import { styleText as st } from 'node:util';
|
|
6
6
|
import { paths, gro_paths, IS_THIS_GRO, replace_extension } from './paths.js';
|
|
7
7
|
import { SVELTEKIT_DIST_DIRNAME } from './path_constants.js';
|
|
8
8
|
import { search_fs } from './search_fs.js';
|
|
@@ -252,9 +252,9 @@ const parse_package_json = (schema, value) => {
|
|
|
252
252
|
const parse_or_throw_formatted_error = (name, schema, value) => {
|
|
253
253
|
const parsed = schema.safeParse(value);
|
|
254
254
|
if (!parsed.success) {
|
|
255
|
-
let msg = red
|
|
255
|
+
let msg = st('red', `Failed to parse ${name}:\n`);
|
|
256
256
|
for (const issue of parsed.error.issues) {
|
|
257
|
-
msg += red
|
|
257
|
+
msg += st('red', `\n\t"${issue.path}" ${issue.message}\n`);
|
|
258
258
|
}
|
|
259
259
|
throw Error(msg);
|
|
260
260
|
}
|
package/dist/paths.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { join, extname, relative, basename } from 'node:path';
|
|
2
2
|
import { fileURLToPath } from 'node:url';
|
|
3
3
|
import { strip_end } from '@ryanatkn/belt/string.js';
|
|
4
|
-
import {
|
|
4
|
+
import { styleText as st } from 'node:util';
|
|
5
5
|
import { GRO_CONFIG_PATH, GRO_DEV_DIR, GRO_DIR, SOURCE_DIR, SVELTEKIT_DIST_DIRNAME, } from './path_constants.js';
|
|
6
6
|
import { default_sveltekit_config } from './sveltekit_config.js';
|
|
7
7
|
/*
|
|
@@ -39,7 +39,7 @@ export const print_path = (path, p = infer_paths(path)) => {
|
|
|
39
39
|
let final_path = strip_end(path, '/') === strip_end(GRO_DIST_DIR, '/') ? 'gro' : to_root_path(path, p);
|
|
40
40
|
final_path =
|
|
41
41
|
final_path === 'gro' ? final_path : final_path[0] === '.' ? final_path : './' + final_path;
|
|
42
|
-
return gray
|
|
42
|
+
return st('gray', final_path);
|
|
43
43
|
};
|
|
44
44
|
export const replace_extension = (path, new_extension) => {
|
|
45
45
|
const { length } = extname(path);
|
package/dist/publish.task.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { spawn } from '@ryanatkn/belt/process.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import {
|
|
3
|
+
import { styleText as st } from 'node:util';
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
5
|
import { Task_Error } from './task.js';
|
|
6
6
|
import { load_package_json, parse_repo_url } from './package_json.js';
|
|
@@ -50,7 +50,7 @@ export const task = {
|
|
|
50
50
|
run: async ({ args, log, invoke_task }) => {
|
|
51
51
|
const { branch, origin, changelog, preserve_changelog, dry, check, build, pull, optional, changeset_cli, } = args;
|
|
52
52
|
if (dry) {
|
|
53
|
-
log.info(
|
|
53
|
+
log.info(st('green', 'dry run!'));
|
|
54
54
|
}
|
|
55
55
|
const has_sveltekit_library_result = has_sveltekit_library();
|
|
56
56
|
if (!has_sveltekit_library_result.ok) {
|
|
@@ -137,7 +137,7 @@ export const task = {
|
|
|
137
137
|
return;
|
|
138
138
|
if (dry) {
|
|
139
139
|
log.info('publishing branch ' + branch);
|
|
140
|
-
log.info(
|
|
140
|
+
log.info(st('green', 'dry run complete!'));
|
|
141
141
|
return;
|
|
142
142
|
}
|
|
143
143
|
const npm_publish_result = await spawn_cli(found_changeset_cli, ['publish'], log);
|
|
@@ -149,6 +149,6 @@ export const task = {
|
|
|
149
149
|
}
|
|
150
150
|
await spawn('git', ['commit', '-a', '-m', `publish v${version}`]);
|
|
151
151
|
await spawn('git', ['push', '--follow-tags']);
|
|
152
|
-
log.info(green
|
|
152
|
+
log.info(st('green', `published to branch ${st('cyan', branch)}!`));
|
|
153
153
|
},
|
|
154
154
|
};
|
package/dist/resolve.task.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { styleText as st } from 'node:util';
|
|
3
3
|
import { TASK_FILE_SUFFIXES } from './task.js';
|
|
4
4
|
import { resolve_input_paths, to_input_paths } from './input_path.js';
|
|
5
5
|
export const Args = z
|
|
@@ -29,10 +29,10 @@ export const task = {
|
|
|
29
29
|
if (verbose)
|
|
30
30
|
log.info('unmapped_input_paths:', unmapped_input_paths);
|
|
31
31
|
for (const p of resolved_input_paths) {
|
|
32
|
-
log.info('resolved:', green
|
|
32
|
+
log.info('resolved:', st('green', p.id));
|
|
33
33
|
}
|
|
34
34
|
if (!resolved_input_paths.length) {
|
|
35
|
-
log.warn(
|
|
35
|
+
log.warn(st('yellow', 'no input paths were resolved'));
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
};
|
package/dist/run.task.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
-
import {
|
|
2
|
+
import { styleText as st } from 'node:util';
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import { Task_Error } from './task.js';
|
|
5
5
|
import { resolve_gro_module_path, spawn_with_loader } from './gro_helpers.js';
|
|
@@ -16,7 +16,7 @@ export const task = {
|
|
|
16
16
|
run: async ({ args, log }) => {
|
|
17
17
|
const { _: [path, ...argv], } = args;
|
|
18
18
|
if (!path) {
|
|
19
|
-
log.info(
|
|
19
|
+
log.info(st('green', '\n\nUsage: ') + st('cyan', 'gro run path/to/file.ts [...node_args]\n'));
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
22
|
if (!existsSync(path)) {
|
package/dist/run_gen.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { styleText as st } from 'node:util';
|
|
2
2
|
import { print_error } from '@ryanatkn/belt/print.js';
|
|
3
3
|
import { to_gen_result, } from './gen.js';
|
|
4
4
|
import { print_path, to_root_path } from './paths.js';
|
|
@@ -29,7 +29,7 @@ export const run_gen = async (gen_modules, config, log, timings, format_file) =>
|
|
|
29
29
|
ok: false,
|
|
30
30
|
id,
|
|
31
31
|
error: err,
|
|
32
|
-
reason: red
|
|
32
|
+
reason: st('red', `Error generating ${print_path(id)}`),
|
|
33
33
|
elapsed: timing_for_module(),
|
|
34
34
|
};
|
|
35
35
|
}
|
|
@@ -44,7 +44,7 @@ export const run_gen = async (gen_modules, config, log, timings, format_file) =>
|
|
|
44
44
|
return { ...file, content: await format_file(file.content, { filepath: file.id }) };
|
|
45
45
|
}
|
|
46
46
|
catch (err) {
|
|
47
|
-
log.error(red
|
|
47
|
+
log.error(st('red', `Error formatting ${print_path(file.id)} via ${print_path(id)}`), print_error(err));
|
|
48
48
|
return file;
|
|
49
49
|
}
|
|
50
50
|
}))
|
package/dist/run_task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run_task.d.ts","sourceRoot":"../src/lib/","sources":["run_task.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run_task.d.ts","sourceRoot":"../src/lib/","sources":["run_task.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAa,KAAK,IAAI,EAAC,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAC,WAAW,IAAI,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAEtE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAa,KAAK,gBAAgB,EAAC,MAAM,WAAW,CAAC;AAG5D,MAAM,MAAM,eAAe,GACxB;IACA,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,OAAO,CAAC;CACf,GACD;IACA,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACZ,CAAC;AAEL,eAAO,MAAM,QAAQ,cACT,gBAAgB,iBACZ,IAAI,eACN,OAAO,gBAAgB,UAC5B,UAAU,WACT,OAAO,KACd,OAAO,CAAC,eAAe,CAgDzB,CAAC"}
|
package/dist/run_task.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { print_log_label
|
|
1
|
+
import { styleText as st } from 'node:util';
|
|
2
|
+
import { print_log_label } from '@ryanatkn/belt/print.js';
|
|
3
|
+
import { System_Logger } from '@ryanatkn/belt/log.js';
|
|
3
4
|
import { parse_args } from './args.js';
|
|
4
5
|
import { log_task_help } from './task_logging.js';
|
|
5
6
|
import { Task_Error } from './task.js';
|
|
@@ -16,7 +17,7 @@ export const run_task = async (task_meta, unparsed_args, invoke_task, config, ti
|
|
|
16
17
|
if (task.Args) {
|
|
17
18
|
const parsed = parse_args(unparsed_args, task.Args);
|
|
18
19
|
if (!parsed.success) {
|
|
19
|
-
log.error(red
|
|
20
|
+
log.error(st('red', `Args validation failed:`), '\n', parsed.error.format());
|
|
20
21
|
throw new Task_Error(`Task args failed validation`);
|
|
21
22
|
}
|
|
22
23
|
args = parsed.data;
|
|
@@ -36,9 +37,9 @@ export const run_task = async (task_meta, unparsed_args, invoke_task, config, ti
|
|
|
36
37
|
catch (err) {
|
|
37
38
|
return {
|
|
38
39
|
ok: false,
|
|
39
|
-
reason: red
|
|
40
|
+
reason: st('red', err?.constructor?.name === 'Task_Error'
|
|
40
41
|
? err.message
|
|
41
|
-
: `Unexpected error running task ${cyan
|
|
42
|
+
: `Unexpected error running task ${st('cyan', task_meta.name)}. If this is unexpected try running \`npm i\` and \`gro clean\`.`),
|
|
42
43
|
error: err,
|
|
43
44
|
};
|
|
44
45
|
}
|
package/dist/task.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ensure_end, strip_end, strip_start } from '@ryanatkn/belt/string.js';
|
|
2
|
-
import {
|
|
2
|
+
import { styleText as st } from 'node:util';
|
|
3
3
|
import { isAbsolute, join, relative } from 'node:path';
|
|
4
4
|
import { resolve_input_files, resolve_input_paths, } from './input_path.js';
|
|
5
5
|
import { GRO_DIST_DIR, print_path } from './paths.js';
|
|
@@ -57,7 +57,7 @@ export const find_tasks = (input_paths, task_root_dirs, config, timings) => {
|
|
|
57
57
|
resolved_input_paths,
|
|
58
58
|
input_paths,
|
|
59
59
|
task_root_dirs,
|
|
60
|
-
reasons: unmapped_input_paths.map((input_path) => red
|
|
60
|
+
reasons: unmapped_input_paths.map((input_path) => st('red', `Input path ${print_path(input_path)} cannot be mapped to a file or directory.`)),
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
// Find all of the files for any directories.
|
|
@@ -78,7 +78,7 @@ export const find_tasks = (input_paths, task_root_dirs, config, timings) => {
|
|
|
78
78
|
resolved_input_paths,
|
|
79
79
|
input_paths,
|
|
80
80
|
task_root_dirs,
|
|
81
|
-
reasons: input_directories_with_no_files.map((input_path) => red
|
|
81
|
+
reasons: input_directories_with_no_files.map((input_path) => st('red', `Input directory contains no matching files: ${print_path(input_path)}`)),
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
84
|
return {
|