ts-repo-utils 7.3.1 → 7.5.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 +38 -1
- package/dist/cmd/assert-repo-is-clean.mjs +1 -1
- package/dist/cmd/check-should-run-type-checks.mjs +1 -1
- package/dist/cmd/format-diff-from.mjs +1 -1
- package/dist/cmd/format-uncommitted.mjs +1 -1
- package/dist/cmd/gen-index-ts.mjs +1 -1
- package/dist/functions/should-run.d.mts +1 -1
- package/dist/functions/should-run.d.mts.map +1 -1
- package/dist/functions/should-run.mjs +1 -0
- package/dist/functions/should-run.mjs.map +1 -1
- package/dist/node-global.d.mts +3 -0
- package/dist/node-global.d.mts.map +1 -1
- package/dist/node-global.mjs +2 -0
- package/dist/node-global.mjs.map +1 -1
- package/package.json +1 -1
- package/src/cmd/assert-repo-is-clean.mts +1 -1
- package/src/cmd/check-should-run-type-checks.mts +1 -1
- package/src/cmd/format-diff-from.mts +1 -1
- package/src/cmd/format-uncommitted.mts +1 -1
- package/src/cmd/gen-index-ts.mts +1 -1
- package/src/functions/should-run.mts +3 -1
- package/src/node-global.mts +4 -0
package/README.md
CHANGED
|
@@ -394,6 +394,39 @@ type Ret = Result<
|
|
|
394
394
|
>;
|
|
395
395
|
```
|
|
396
396
|
|
|
397
|
+
#### Build Optimization Utilities
|
|
398
|
+
|
|
399
|
+
##### `checkShouldRunTypeChecks(options?): Promise<boolean>`
|
|
400
|
+
|
|
401
|
+
Checks whether TypeScript type checks should run based on file changes from the base branch. Optimizes CI/CD pipelines by skipping type checks when only non-TypeScript files have changed.
|
|
402
|
+
(Function version of the `check-should-run-type-checks` command)
|
|
403
|
+
|
|
404
|
+
```typescript
|
|
405
|
+
import { checkShouldRunTypeChecks } from 'ts-repo-utils';
|
|
406
|
+
|
|
407
|
+
// Use default settings (compare against origin/main)
|
|
408
|
+
const shouldRun = await checkShouldRunTypeChecks();
|
|
409
|
+
|
|
410
|
+
if (shouldRun) {
|
|
411
|
+
await $('npm run type-check');
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
// Custom ignore patterns and base branch
|
|
415
|
+
const shouldRun2 = await checkShouldRunTypeChecks({
|
|
416
|
+
pathsIgnore: ['.eslintrc.json', 'docs/', '**.md', 'scripts/'],
|
|
417
|
+
baseBranch: 'origin/develop',
|
|
418
|
+
});
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
**Options:**
|
|
422
|
+
|
|
423
|
+
- `pathsIgnore?` - Patterns to ignore when checking if type checks should run:
|
|
424
|
+
- Exact file matches: `.cspell.json`
|
|
425
|
+
- Directory prefixes: `docs/` (matches any file in docs directory)
|
|
426
|
+
- File extensions: `**.md` (matches any markdown file)
|
|
427
|
+
- Default: `['LICENSE', '.editorconfig', '.gitignore', '.cspell.json', '.markdownlint-cli2.mjs', '.npmignore', '.prettierignore', '.prettierrc', 'docs/', '**.md', '**.txt']`
|
|
428
|
+
- `baseBranch?` - Base branch to compare against (default: `origin/main`)
|
|
429
|
+
|
|
397
430
|
### Code Formatting Utilities
|
|
398
431
|
|
|
399
432
|
#### `formatFilesGlob(pathGlob: string, options?): Promise<Result<undefined, unknown>>`
|
|
@@ -690,7 +723,10 @@ import 'ts-repo-utils';
|
|
|
690
723
|
|
|
691
724
|
// Now these functions are globally available
|
|
692
725
|
|
|
693
|
-
await $('npm test');
|
|
726
|
+
const result = await $('npm test');
|
|
727
|
+
if (Result.isErr(result)) {
|
|
728
|
+
console.error(result.value);
|
|
729
|
+
}
|
|
694
730
|
|
|
695
731
|
echo('Building project...');
|
|
696
732
|
|
|
@@ -708,6 +744,7 @@ if (isDirectlyExecuted(import.meta.url)) {
|
|
|
708
744
|
```
|
|
709
745
|
|
|
710
746
|
- `$` - The command execution utility described above.
|
|
747
|
+
- `Result` - A utility for Result pattern (from [ts-data-forge](https://github.com/noshiro-pf/ts-data-forge#readme))
|
|
711
748
|
- `echo` - Equivalent to `console.log`
|
|
712
749
|
- `path` - `node:path`
|
|
713
750
|
- `fs` - `node:fs/promises`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"should-run.d.mts","sourceRoot":"","sources":["../../src/functions/should-run.mts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,QAAQ,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,KACD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"should-run.d.mts","sourceRoot":"","sources":["../../src/functions/should-run.mts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,CAAC;AAG5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,QAAQ,CAAC;IACjB,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC,KACD,OAAO,CAAC,OAAO,CAqDjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"should-run.mjs","sources":["../../src/functions/should-run.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDG;MACU,wBAAwB,GAAG,OACtC,OAGE,
|
|
1
|
+
{"version":3,"file":"should-run.mjs","sources":["../../src/functions/should-run.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqDG;MACU,wBAAwB,GAAG,OACtC,OAGE,KACkB;AACpB,IAAA,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI;QAC1C,SAAS;QACT,eAAe;QACf,YAAY;QACZ,cAAc;QACd,wBAAwB;QACxB,YAAY;QACZ,iBAAiB;QACjB,aAAa;QACb,OAAO;QACP,OAAO;QACP,QAAQ;KACT;AAED,IAAA,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,aAAa;IAEvD,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;AAElD,IAAA,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC;AAE3C,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;QACvB,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,KAAK,CAAC;AACjD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;IAEA,MAAM,iBAAiB,GAAY,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KACzD,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,KAAI;;AAE3B,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACrD,YAAA,OAAO,IAAI;QACb;;AAGA,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;QAChD;AAEA,QAAA,OAAO,KAAK;IACd,CAAC,CAAC,CACH;AAED,IAAA,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,EAAE,CAAA,WAAA,EAAc,iBAAiB,CAAA,EAAA,CAAI,CAAC;IACzE;AAEA,IAAA,OAAO,iBAAiB;AAC1B;;;;"}
|
package/dist/node-global.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { default as glob_ } from 'fast-glob';
|
|
2
2
|
import * as fs_ from 'node:fs/promises';
|
|
3
3
|
import * as path_ from 'node:path';
|
|
4
|
+
import { Result as Result_ } from 'ts-data-forge';
|
|
4
5
|
import { $ as $_ } from './functions/exec-async.mjs';
|
|
5
6
|
import { isDirectlyExecuted as isDirectlyExecuted_ } from './functions/is-directly-executed.mjs';
|
|
6
7
|
declare global {
|
|
@@ -10,5 +11,7 @@ declare global {
|
|
|
10
11
|
const fs: typeof fs_;
|
|
11
12
|
const glob: typeof glob_;
|
|
12
13
|
const isDirectlyExecuted: typeof isDirectlyExecuted_;
|
|
14
|
+
const Result: typeof Result_;
|
|
15
|
+
type Result<S, E> = Result_<S, E>;
|
|
13
16
|
}
|
|
14
17
|
//# sourceMappingURL=node-global.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-global.d.mts","sourceRoot":"","sources":["../src/node-global.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,kBAAkB,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"node-global.d.mts","sourceRoot":"","sources":["../src/node-global.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,GAAG,MAAM,kBAAkB,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,kBAAkB,IAAI,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAgBjG,OAAO,CAAC,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,MAAM,IAAI,EAAE,OAAO,OAAO,CAAC,GAAG,CAAC;IAE/B,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,EAAE,EAAE,OAAO,GAAG,CAAC;IACrB,MAAM,IAAI,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,kBAAkB,EAAE,OAAO,mBAAmB,CAAC;IACrD,MAAM,MAAM,EAAE,OAAO,OAAO,CAAC;IAC7B,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACnC"}
|
package/dist/node-global.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import glob_ from 'fast-glob';
|
|
2
2
|
import * as fs_ from 'node:fs/promises';
|
|
3
3
|
import * as path_ from 'node:path';
|
|
4
|
+
import { Result } from 'ts-data-forge';
|
|
4
5
|
import { $ } from './functions/exec-async.mjs';
|
|
5
6
|
import { isDirectlyExecuted } from './functions/is-directly-executed.mjs';
|
|
6
7
|
|
|
@@ -12,6 +13,7 @@ const globalsDef = {
|
|
|
12
13
|
fs: fs_,
|
|
13
14
|
glob: glob_,
|
|
14
15
|
isDirectlyExecuted: isDirectlyExecuted,
|
|
16
|
+
Result: Result,
|
|
15
17
|
};
|
|
16
18
|
// eslint-disable-next-line functional/immutable-data
|
|
17
19
|
Object.assign(globalThis, globalsDef);
|
package/dist/node-global.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-global.mjs","sources":["../src/node-global.mts"],"sourcesContent":[null],"names":["$_","isDirectlyExecuted_"],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-global.mjs","sources":["../src/node-global.mts"],"sourcesContent":[null],"names":["$_","isDirectlyExecuted_","Result_"],"mappings":";;;;;;;AAAA;AAQA,MAAM,UAAU,GAAG;AACjB,IAAA,CAAC,EAAEA,CAAE;IACL,IAAI,EAAE,OAAO,CAAC,GAAG;AAEjB,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,EAAE,EAAE,GAAG;AACP,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,kBAAkB,EAAEC,kBAAmB;AACvC,IAAA,MAAM,EAAEC,MAAO;CACP;AAEV;AACA,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC"}
|
package/package.json
CHANGED
package/src/cmd/gen-index-ts.mts
CHANGED
|
@@ -61,7 +61,7 @@ export const checkShouldRunTypeChecks = async (
|
|
|
61
61
|
pathsIgnore?: readonly string[];
|
|
62
62
|
baseBranch?: string;
|
|
63
63
|
}>,
|
|
64
|
-
): Promise<
|
|
64
|
+
): Promise<boolean> => {
|
|
65
65
|
const pathsIgnore = options?.pathsIgnore ?? [
|
|
66
66
|
'LICENSE',
|
|
67
67
|
'.editorconfig',
|
|
@@ -112,4 +112,6 @@ export const checkShouldRunTypeChecks = async (
|
|
|
112
112
|
if (GITHUB_OUTPUT !== undefined) {
|
|
113
113
|
await fs.appendFile(GITHUB_OUTPUT, `should_run=${shouldRunTsChecks}\n`);
|
|
114
114
|
}
|
|
115
|
+
|
|
116
|
+
return shouldRunTsChecks;
|
|
115
117
|
};
|
package/src/node-global.mts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { default as glob_ } from 'fast-glob';
|
|
3
3
|
import * as fs_ from 'node:fs/promises';
|
|
4
4
|
import * as path_ from 'node:path';
|
|
5
|
+
import { Result as Result_ } from 'ts-data-forge';
|
|
5
6
|
import { $ as $_ } from './functions/exec-async.mjs';
|
|
6
7
|
import { isDirectlyExecuted as isDirectlyExecuted_ } from './functions/is-directly-executed.mjs';
|
|
7
8
|
|
|
@@ -13,6 +14,7 @@ const globalsDef = {
|
|
|
13
14
|
fs: fs_,
|
|
14
15
|
glob: glob_,
|
|
15
16
|
isDirectlyExecuted: isDirectlyExecuted_,
|
|
17
|
+
Result: Result_,
|
|
16
18
|
} as const;
|
|
17
19
|
|
|
18
20
|
// eslint-disable-next-line functional/immutable-data
|
|
@@ -26,4 +28,6 @@ declare global {
|
|
|
26
28
|
const fs: typeof fs_;
|
|
27
29
|
const glob: typeof glob_;
|
|
28
30
|
const isDirectlyExecuted: typeof isDirectlyExecuted_;
|
|
31
|
+
const Result: typeof Result_;
|
|
32
|
+
type Result<S, E> = Result_<S, E>;
|
|
29
33
|
}
|