ts-repo-utils 10.4.0 → 10.6.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/README.md +6 -8
- package/dist/cmd/assert-repo-is-clean.mjs +18 -28
- package/dist/cmd/assert-repo-is-clean.mjs.map +1 -1
- package/dist/cmd/check-should-run-type-checks.mjs +26 -36
- package/dist/cmd/check-should-run-type-checks.mjs.map +1 -1
- package/dist/cmd/check-should-run.mjs +26 -36
- package/dist/cmd/check-should-run.mjs.map +1 -1
- package/dist/cmd/format-diff-from.mjs +67 -76
- package/dist/cmd/format-diff-from.mjs.map +1 -1
- package/dist/cmd/format-uncommitted.mjs +61 -70
- package/dist/cmd/format-uncommitted.mjs.map +1 -1
- package/dist/cmd/gen-index-ts.mjs +110 -121
- package/dist/cmd/gen-index-ts.mjs.map +1 -1
- package/dist/entry-point.mjs +2 -18
- package/dist/entry-point.mjs.map +1 -1
- package/dist/functions/assert-ext.mjs +86 -77
- package/dist/functions/assert-ext.mjs.map +1 -1
- package/dist/functions/assert-path-exists.mjs +26 -16
- package/dist/functions/assert-path-exists.mjs.map +1 -1
- package/dist/functions/assert-repo-is-clean.mjs +58 -46
- package/dist/functions/assert-repo-is-clean.mjs.map +1 -1
- package/dist/functions/create-result-assert.mjs +34 -32
- package/dist/functions/create-result-assert.mjs.map +1 -1
- package/dist/functions/diff.mjs +80 -64
- package/dist/functions/diff.mjs.map +1 -1
- package/dist/functions/exec-async.mjs +43 -47
- package/dist/functions/exec-async.mjs.map +1 -1
- package/dist/functions/format.mjs +309 -272
- package/dist/functions/format.mjs.map +1 -1
- package/dist/functions/gen-index.mjs +414 -189
- package/dist/functions/gen-index.mjs.map +1 -1
- package/dist/functions/glob.mjs +10 -15
- package/dist/functions/glob.mjs.map +1 -1
- package/dist/functions/index.d.mts +1 -0
- package/dist/functions/index.d.mts.map +1 -1
- package/dist/functions/index.mjs +15 -18
- package/dist/functions/index.mjs.map +1 -1
- package/dist/functions/is-directly-executed.mjs +3 -5
- package/dist/functions/is-directly-executed.mjs.map +1 -1
- package/dist/functions/make-empty-dir.mjs +4 -6
- package/dist/functions/make-empty-dir.mjs.map +1 -1
- package/dist/functions/should-run.mjs +157 -47
- package/dist/functions/should-run.mjs.map +1 -1
- package/dist/functions/strip-dev-only-code.d.mts +103 -0
- package/dist/functions/strip-dev-only-code.d.mts.map +1 -0
- package/dist/functions/strip-dev-only-code.mjs +477 -0
- package/dist/functions/strip-dev-only-code.mjs.map +1 -0
- package/dist/functions/workspace-utils/execute-parallel.mjs +204 -136
- package/dist/functions/workspace-utils/execute-parallel.mjs.map +1 -1
- package/dist/functions/workspace-utils/get-workspace-packages.mjs +75 -64
- package/dist/functions/workspace-utils/get-workspace-packages.mjs.map +1 -1
- package/dist/functions/workspace-utils/index.mjs +6 -6
- package/dist/functions/workspace-utils/index.mjs.map +1 -1
- package/dist/functions/workspace-utils/run-cmd-in-parallel.mjs +33 -26
- package/dist/functions/workspace-utils/run-cmd-in-parallel.mjs.map +1 -1
- package/dist/functions/workspace-utils/run-cmd-in-stages.mjs +39 -30
- package/dist/functions/workspace-utils/run-cmd-in-stages.mjs.map +1 -1
- package/dist/functions/workspace-utils/types.mjs +15 -7
- package/dist/functions/workspace-utils/types.mjs.map +1 -1
- package/dist/index.mjs +2 -18
- package/dist/index.mjs.map +1 -1
- package/package.json +11 -12
- package/src/cmd/gen-index-ts.mts +2 -2
- package/src/functions/diff.mts +3 -3
- package/src/functions/diff.test.mts +6 -6
- package/src/functions/gen-index.mts +177 -7
- package/src/functions/index.mts +1 -0
- package/src/functions/strip-dev-only-code.mts +767 -0
- package/src/functions/strip-dev-only-code.test.mts +537 -0
package/README.md
CHANGED
|
@@ -428,10 +428,10 @@ type CheckExtConfig = Readonly<{
|
|
|
428
428
|
Creates an assert-style wrapper around a function that returns a `Result`, exiting the process with a non-zero code when the underlying function yields an error. The wrapper keeps success handling customizable while reusing the composable Result-based variant elsewhere.
|
|
429
429
|
|
|
430
430
|
```tsx
|
|
431
|
-
import { hasKey, isNumber, isRecord,
|
|
431
|
+
import { hasKey, isNumber, isRecord, Result } from 'ts-data-forge';
|
|
432
432
|
import { createResultAssert } from 'ts-repo-utils';
|
|
433
433
|
|
|
434
|
-
type AppConfig = Readonly<{ port: number
|
|
434
|
+
type AppConfig = Readonly<{ port: number }>;
|
|
435
435
|
|
|
436
436
|
const parseConfig = (
|
|
437
437
|
raw: string,
|
|
@@ -447,24 +447,22 @@ const parseConfig = (
|
|
|
447
447
|
if (
|
|
448
448
|
!isRecord(parsed) ||
|
|
449
449
|
!hasKey(parsed, 'port') ||
|
|
450
|
-
!
|
|
451
|
-
!isNumber(parsed.port) ||
|
|
452
|
-
!isString(parsed.host)
|
|
450
|
+
!isNumber(parsed.port)
|
|
453
451
|
) {
|
|
454
452
|
return Promise.resolve(Result.err({ message: 'Invalid config shape' }));
|
|
455
453
|
}
|
|
456
454
|
|
|
457
|
-
return Promise.resolve(Result.ok({ port: parsed.port
|
|
455
|
+
return Promise.resolve(Result.ok({ port: parsed.port }));
|
|
458
456
|
};
|
|
459
457
|
|
|
460
458
|
const assertValidConfig = createResultAssert({
|
|
461
459
|
run: parseConfig,
|
|
462
460
|
onSuccess: (config) => {
|
|
463
|
-
console.log(`✓ Config loaded
|
|
461
|
+
console.log(`✓ Config loaded on port ${config.port}`);
|
|
464
462
|
},
|
|
465
463
|
});
|
|
466
464
|
|
|
467
|
-
await assertValidConfig('{"port":3000
|
|
465
|
+
await assertValidConfig('{"port":3000}');
|
|
468
466
|
```
|
|
469
467
|
|
|
470
468
|
**Options:**
|
|
@@ -1,36 +1,26 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as cmd from 'cmd-ts';
|
|
3
3
|
import { Arr } from 'ts-data-forge';
|
|
4
|
-
import '
|
|
5
|
-
import 'node:fs/promises';
|
|
6
|
-
import 'fast-glob';
|
|
7
|
-
import { assertRepoIsClean } from '../functions/assert-repo-is-clean.mjs';
|
|
8
|
-
import 'node:child_process';
|
|
9
|
-
import 'prettier';
|
|
10
|
-
import 'micromatch';
|
|
11
|
-
import 'node:fs';
|
|
12
|
-
import 'node:url';
|
|
13
|
-
import '@sindresorhus/is';
|
|
14
|
-
|
|
4
|
+
import { assertRepoIsClean } from '../functions/index.mjs';
|
|
15
5
|
const cmdDef = cmd.command({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
6
|
+
name: 'assert-repo-is-clean-cli',
|
|
7
|
+
version: '10.1.8',
|
|
8
|
+
args: {
|
|
9
|
+
silent: cmd.flag({
|
|
10
|
+
long: 'silent',
|
|
11
|
+
type: cmd.optional(cmd.boolean),
|
|
12
|
+
description: 'If true, suppresses output messages (default: false)',
|
|
13
|
+
}),
|
|
14
|
+
},
|
|
15
|
+
handler: (args) => {
|
|
16
|
+
main(args).catch((error) => {
|
|
17
|
+
console.error('An error occurred:', error);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
});
|
|
20
|
+
},
|
|
31
21
|
});
|
|
32
22
|
const main = async (args) => {
|
|
33
|
-
|
|
23
|
+
await assertRepoIsClean({ silent: args.silent });
|
|
34
24
|
};
|
|
35
25
|
await cmd.run(cmdDef, Arr.skip(process.argv, 2));
|
|
36
|
-
//# sourceMappingURL=assert-repo-is-clean.mjs.map
|
|
26
|
+
//# sourceMappingURL=assert-repo-is-clean.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assert-repo-is-clean.mjs","
|
|
1
|
+
{"version":3,"file":"assert-repo-is-clean.mjs","sourceRoot":"","sources":["../../src/cmd/assert-repo-is-clean.mts"],"names":[],"mappings":";AAEA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,0BAA0B;IAChC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE;QACJ,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;YAC/B,WAAW,EAAE,sDAAsD;SACpE,CAAC;KACH;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAE3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,KAAK,EAAE,IAAoC,EAAiB,EAAE;IACzE,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,44 +1,34 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as cmd from 'cmd-ts';
|
|
3
3
|
import { Arr } from 'ts-data-forge';
|
|
4
|
-
import '
|
|
5
|
-
import 'node:fs/promises';
|
|
6
|
-
import 'fast-glob';
|
|
7
|
-
import 'node:child_process';
|
|
8
|
-
import 'prettier';
|
|
9
|
-
import 'micromatch';
|
|
10
|
-
import 'node:fs';
|
|
11
|
-
import 'node:url';
|
|
12
|
-
import { checkShouldRunTypeChecks } from '../functions/should-run.mjs';
|
|
13
|
-
import '@sindresorhus/is';
|
|
14
|
-
|
|
4
|
+
import { checkShouldRunTypeChecks } from '../functions/index.mjs';
|
|
15
5
|
const cmdDef = cmd.command({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
6
|
+
name: 'check-should-run-type-checks-cli',
|
|
7
|
+
version: '10.1.8',
|
|
8
|
+
args: {
|
|
9
|
+
pathsIgnore: cmd.multioption({
|
|
10
|
+
long: 'paths-ignore',
|
|
11
|
+
type: cmd.optional(cmd.array(cmd.string)),
|
|
12
|
+
description: 'Patterns to ignore when checking if type checks should run. Supports exact file matches, directory prefixes (ending with "/"), and file extensions (starting with "**.")',
|
|
13
|
+
}),
|
|
14
|
+
baseBranch: cmd.option({
|
|
15
|
+
long: 'base-branch',
|
|
16
|
+
type: cmd.optional(cmd.string),
|
|
17
|
+
description: 'Base branch to compare against for determining changed files. Defaults to "origin/main"',
|
|
18
|
+
}),
|
|
19
|
+
},
|
|
20
|
+
handler: (args) => {
|
|
21
|
+
main(args).catch((error) => {
|
|
22
|
+
console.error('An error occurred:', error);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
});
|
|
25
|
+
},
|
|
36
26
|
});
|
|
37
27
|
const main = async (args) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
await checkShouldRunTypeChecks({
|
|
29
|
+
pathsIgnore: args.pathsIgnore,
|
|
30
|
+
baseBranch: args.baseBranch,
|
|
31
|
+
});
|
|
42
32
|
};
|
|
43
33
|
await cmd.run(cmdDef, Arr.skip(process.argv, 2));
|
|
44
|
-
//# sourceMappingURL=check-should-run-type-checks.mjs.map
|
|
34
|
+
//# sourceMappingURL=check-should-run-type-checks.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-should-run-type-checks.mjs","
|
|
1
|
+
{"version":3,"file":"check-should-run-type-checks.mjs","sourceRoot":"","sources":["../../src/cmd/check-should-run-type-checks.mts"],"names":[],"mappings":";AAEA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,kCAAkC;IACxC,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC;YAC3B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,WAAW,EACT,0KAA0K;SAC7K,CAAC;QACF,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC9B,WAAW,EACT,yFAAyF;SAC5F,CAAC;KACH;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAE3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,KAAK,EAChB,IAGE,EACa,EAAE;IACjB,MAAM,wBAAwB,CAAC;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,44 +1,34 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as cmd from 'cmd-ts';
|
|
3
3
|
import { Arr } from 'ts-data-forge';
|
|
4
|
-
import '
|
|
5
|
-
import 'node:fs/promises';
|
|
6
|
-
import 'fast-glob';
|
|
7
|
-
import 'node:child_process';
|
|
8
|
-
import 'prettier';
|
|
9
|
-
import 'micromatch';
|
|
10
|
-
import 'node:fs';
|
|
11
|
-
import 'node:url';
|
|
12
|
-
import { checkShouldRun } from '../functions/should-run.mjs';
|
|
13
|
-
import '@sindresorhus/is';
|
|
14
|
-
|
|
4
|
+
import { checkShouldRun } from '../functions/index.mjs';
|
|
15
5
|
const cmdDef = cmd.command({
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
6
|
+
name: 'check-should-run-cli',
|
|
7
|
+
version: '10.2.0',
|
|
8
|
+
args: {
|
|
9
|
+
pathsIgnore: cmd.multioption({
|
|
10
|
+
long: 'paths-ignore',
|
|
11
|
+
type: cmd.optional(cmd.array(cmd.string)),
|
|
12
|
+
description: 'Patterns whose files do not affect the gated step. Matched with micromatch against repository-relative paths, with a trailing "/" as the shorthand for a directory (e.g. "experimental/", ".editorconfig", "**.md"). Defaults to ignoring nothing.',
|
|
13
|
+
}),
|
|
14
|
+
baseBranch: cmd.option({
|
|
15
|
+
long: 'base-branch',
|
|
16
|
+
type: cmd.optional(cmd.string),
|
|
17
|
+
description: 'Base branch to compare against for determining changed files. Defaults to "origin/main"',
|
|
18
|
+
}),
|
|
19
|
+
},
|
|
20
|
+
handler: (args) => {
|
|
21
|
+
main(args).catch((error) => {
|
|
22
|
+
console.error('An error occurred:', error);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
});
|
|
25
|
+
},
|
|
36
26
|
});
|
|
37
27
|
const main = async (args) => {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
28
|
+
await checkShouldRun({
|
|
29
|
+
pathsIgnore: args.pathsIgnore,
|
|
30
|
+
baseBranch: args.baseBranch,
|
|
31
|
+
});
|
|
42
32
|
};
|
|
43
33
|
await cmd.run(cmdDef, Arr.skip(process.argv, 2));
|
|
44
|
-
//# sourceMappingURL=check-should-run.mjs.map
|
|
34
|
+
//# sourceMappingURL=check-should-run.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-should-run.mjs","
|
|
1
|
+
{"version":3,"file":"check-should-run.mjs","sourceRoot":"","sources":["../../src/cmd/check-should-run.mts"],"names":[],"mappings":";AAEA,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,sBAAsB;IAC5B,OAAO,EAAE,QAAQ;IACjB,IAAI,EAAE;QACJ,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC;YAC3B,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,WAAW,EACT,oPAAoP;SACvP,CAAC;QACF,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAC9B,WAAW,EACT,yFAAyF;SAC5F,CAAC;KACH;IACD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAClC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAE3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,IAAI,GAAG,KAAK,EAChB,IAGE,EACa,EAAE;IACjB,MAAM,cAAc,CAAC;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,83 +1,74 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as cmd from 'cmd-ts';
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
5
|
-
import 'node:fs/promises';
|
|
6
|
-
import 'fast-glob';
|
|
7
|
-
import 'node:child_process';
|
|
8
|
-
import { formatDiffFrom } from '../functions/format.mjs';
|
|
9
|
-
import 'micromatch';
|
|
10
|
-
import 'node:fs';
|
|
11
|
-
import 'node:url';
|
|
12
|
-
import '@sindresorhus/is';
|
|
13
|
-
|
|
3
|
+
import { Arr, Result } from 'ts-data-forge';
|
|
4
|
+
import { formatDiffFrom } from '../functions/index.mjs';
|
|
14
5
|
const cmdDef = cmd.command({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
6
|
+
name: 'format-diff-from-cli',
|
|
7
|
+
version: '10.1.8',
|
|
8
|
+
args: {
|
|
9
|
+
base: cmd.positional({
|
|
10
|
+
type: cmd.string,
|
|
11
|
+
displayName: 'base',
|
|
12
|
+
description: 'Base branch name or commit hash to compare against',
|
|
13
|
+
}),
|
|
14
|
+
excludeUntracked: cmd.flag({
|
|
15
|
+
long: 'exclude-untracked',
|
|
16
|
+
type: cmd.optional(cmd.boolean),
|
|
17
|
+
description: 'Exclude untracked files in addition to diff files (default: false)',
|
|
18
|
+
}),
|
|
19
|
+
excludeModified: cmd.flag({
|
|
20
|
+
long: 'exclude-modified',
|
|
21
|
+
type: cmd.optional(cmd.boolean),
|
|
22
|
+
description: 'Exclude modified files in addition to diff files (default: false)',
|
|
23
|
+
}),
|
|
24
|
+
excludeStaged: cmd.flag({
|
|
25
|
+
long: 'exclude-staged',
|
|
26
|
+
type: cmd.optional(cmd.boolean),
|
|
27
|
+
description: 'Exclude staged files in addition to diff files (default: false)',
|
|
28
|
+
}),
|
|
29
|
+
ignoreUnknown: cmd.flag({
|
|
30
|
+
long: 'ignore-unknown',
|
|
31
|
+
type: cmd.optional(cmd.boolean),
|
|
32
|
+
description: 'Ignore unknown files (default: true)',
|
|
33
|
+
}),
|
|
34
|
+
silent: cmd.flag({
|
|
35
|
+
long: 'silent',
|
|
36
|
+
type: cmd.optional(cmd.boolean),
|
|
37
|
+
description: 'If true, suppresses output messages (default: false)',
|
|
38
|
+
}),
|
|
39
|
+
cwd: cmd.option({
|
|
40
|
+
long: 'cwd',
|
|
41
|
+
type: cmd.optional(cmd.string),
|
|
42
|
+
description: 'If provided, only files within this directory are formatted. Relative paths are resolved against the current working directory (process.cwd()), not the git repository root.',
|
|
43
|
+
}),
|
|
44
|
+
},
|
|
45
|
+
handler: (args) => {
|
|
46
|
+
main({
|
|
47
|
+
base: args.base,
|
|
48
|
+
excludeUntracked: args.excludeUntracked ?? false,
|
|
49
|
+
excludeModified: args.excludeModified ?? false,
|
|
50
|
+
excludeStaged: args.excludeStaged ?? false,
|
|
51
|
+
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
52
|
+
silent: args.silent ?? false,
|
|
53
|
+
cwd: args.cwd,
|
|
54
|
+
}).catch((error) => {
|
|
55
|
+
console.error('An error occurred:', error);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
});
|
|
58
|
+
},
|
|
68
59
|
});
|
|
69
60
|
const main = async (args) => {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
61
|
+
const result = await formatDiffFrom(args.base, {
|
|
62
|
+
includeUntracked: !args.excludeUntracked,
|
|
63
|
+
includeModified: !args.excludeModified,
|
|
64
|
+
includeStaged: !args.excludeStaged,
|
|
65
|
+
ignoreUnknown: args.ignoreUnknown,
|
|
66
|
+
silent: args.silent,
|
|
67
|
+
cwd: args.cwd,
|
|
68
|
+
});
|
|
69
|
+
if (Result.isErr(result)) {
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
81
72
|
};
|
|
82
73
|
await cmd.run(cmdDef, Arr.skip(process.argv, 2));
|
|
83
|
-
//# sourceMappingURL=format-diff-from.mjs.map
|
|
74
|
+
//# sourceMappingURL=format-diff-from.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-diff-from.mjs","sources":["../../src/cmd/format-diff-from.mts"],"
|
|
1
|
+
{"version":3,"file":"format-diff-from.mjs","sourceRoot":"","sources":["../../src/cmd/format-diff-from.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,77 +1,68 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import * as cmd from 'cmd-ts';
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
5
|
-
import 'node:fs/promises';
|
|
6
|
-
import 'fast-glob';
|
|
7
|
-
import 'node:child_process';
|
|
8
|
-
import { formatUncommittedFiles } from '../functions/format.mjs';
|
|
9
|
-
import 'micromatch';
|
|
10
|
-
import 'node:fs';
|
|
11
|
-
import 'node:url';
|
|
12
|
-
import '@sindresorhus/is';
|
|
13
|
-
|
|
3
|
+
import { Arr, Result } from 'ts-data-forge';
|
|
4
|
+
import { formatUncommittedFiles } from '../functions/index.mjs';
|
|
14
5
|
const cmdDef = cmd.command({
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
6
|
+
name: 'format-uncommitted-cli',
|
|
7
|
+
version: '10.1.8',
|
|
8
|
+
args: {
|
|
9
|
+
excludeUntracked: cmd.flag({
|
|
10
|
+
long: 'exclude-untracked',
|
|
11
|
+
type: cmd.optional(cmd.boolean),
|
|
12
|
+
description: 'Exclude untracked files in addition to diff files (default: false)',
|
|
13
|
+
}),
|
|
14
|
+
excludeModified: cmd.flag({
|
|
15
|
+
long: 'exclude-modified',
|
|
16
|
+
type: cmd.optional(cmd.boolean),
|
|
17
|
+
description: 'Exclude modified files in addition to diff files (default: false)',
|
|
18
|
+
}),
|
|
19
|
+
excludeStaged: cmd.flag({
|
|
20
|
+
long: 'exclude-staged',
|
|
21
|
+
type: cmd.optional(cmd.boolean),
|
|
22
|
+
description: 'Exclude staged files in addition to diff files (default: false)',
|
|
23
|
+
}),
|
|
24
|
+
ignoreUnknown: cmd.flag({
|
|
25
|
+
long: 'ignore-unknown',
|
|
26
|
+
type: cmd.optional(cmd.boolean),
|
|
27
|
+
description: 'Ignore unknown files (default: true)',
|
|
28
|
+
}),
|
|
29
|
+
silent: cmd.flag({
|
|
30
|
+
long: 'silent',
|
|
31
|
+
type: cmd.optional(cmd.boolean),
|
|
32
|
+
description: 'If true, suppresses output messages (default: false)',
|
|
33
|
+
}),
|
|
34
|
+
cwd: cmd.option({
|
|
35
|
+
long: 'cwd',
|
|
36
|
+
type: cmd.optional(cmd.string),
|
|
37
|
+
description: 'If provided, only files within this directory are formatted. Relative paths are resolved against the current working directory (process.cwd()), not the git repository root.',
|
|
38
|
+
}),
|
|
39
|
+
},
|
|
40
|
+
handler: (args) => {
|
|
41
|
+
main({
|
|
42
|
+
excludeUntracked: args.excludeUntracked ?? false,
|
|
43
|
+
excludeModified: args.excludeModified ?? false,
|
|
44
|
+
excludeStaged: args.excludeStaged ?? false,
|
|
45
|
+
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
46
|
+
silent: args.silent ?? false,
|
|
47
|
+
cwd: args.cwd,
|
|
48
|
+
}).catch((error) => {
|
|
49
|
+
console.error('An error occurred:', error);
|
|
50
|
+
process.exit(1);
|
|
51
|
+
});
|
|
52
|
+
},
|
|
62
53
|
});
|
|
63
54
|
const main = async (args) => {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
55
|
+
const result = await formatUncommittedFiles({
|
|
56
|
+
untracked: !args.excludeUntracked,
|
|
57
|
+
modified: !args.excludeModified,
|
|
58
|
+
staged: !args.excludeStaged,
|
|
59
|
+
ignoreUnknown: args.ignoreUnknown,
|
|
60
|
+
silent: args.silent,
|
|
61
|
+
cwd: args.cwd,
|
|
62
|
+
});
|
|
63
|
+
if (Result.isErr(result)) {
|
|
64
|
+
process.exit(1);
|
|
65
|
+
}
|
|
75
66
|
};
|
|
76
67
|
await cmd.run(cmdDef, Arr.skip(process.argv, 2));
|
|
77
|
-
//# sourceMappingURL=format-uncommitted.mjs.map
|
|
68
|
+
//# sourceMappingURL=format-uncommitted.mjs.map
|