ts-codemod-lib 2.1.6 → 2.2.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 +7 -5
- package/dist/cmd/append-as-const.mjs +7 -1
- package/dist/cmd/append-as-const.mjs.map +1 -1
- package/dist/cmd/convert-interface-to-type.mjs +7 -1
- package/dist/cmd/convert-interface-to-type.mjs.map +1 -1
- package/dist/cmd/convert-to-readonly.mjs +7 -1
- package/dist/cmd/convert-to-readonly.mjs.map +1 -1
- package/dist/cmd/replace-any-with-unknown.mjs +7 -1
- package/dist/cmd/replace-any-with-unknown.mjs.map +1 -1
- package/dist/cmd/replace-record-with-unknown-record.mjs +7 -1
- package/dist/cmd/replace-record-with-unknown-record.mjs.map +1 -1
- package/dist/cmd/run-transformer-cli.d.mts +1 -0
- package/dist/cmd/run-transformer-cli.d.mts.map +1 -1
- package/dist/cmd/run-transformer-cli.mjs +26 -9
- package/dist/cmd/run-transformer-cli.mjs.map +1 -1
- package/package.json +23 -17
- package/src/cmd/append-as-const.mts +8 -1
- package/src/cmd/convert-interface-to-type.mts +8 -1
- package/src/cmd/convert-to-readonly.mts +8 -1
- package/src/cmd/replace-any-with-unknown.mts +8 -1
- package/src/cmd/replace-record-with-unknown-record.mts +8 -1
- package/src/cmd/run-transformer-cli.mts +32 -10
package/README.md
CHANGED
|
@@ -218,7 +218,7 @@ This package provides command-line tools for common TypeScript transformations:
|
|
|
218
218
|
Appends `as const` to array literals and object literals to make them readonly constants.
|
|
219
219
|
|
|
220
220
|
```bash
|
|
221
|
-
npx append-as-const <baseDir> [--exclude <pattern>] [--silent]
|
|
221
|
+
npx append-as-const <baseDir> [--exclude <pattern>] [--uncommitted] [--diff-from <base>] [--silent]
|
|
222
222
|
```
|
|
223
223
|
|
|
224
224
|
### convert-interface-to-type
|
|
@@ -226,7 +226,7 @@ npx append-as-const <baseDir> [--exclude <pattern>] [--silent]
|
|
|
226
226
|
Converts TypeScript interface declarations to type aliases.
|
|
227
227
|
|
|
228
228
|
```bash
|
|
229
|
-
npx convert-interface-to-type <baseDir> [--exclude <pattern>] [--silent]
|
|
229
|
+
npx convert-interface-to-type <baseDir> [--exclude <pattern>] [--uncommitted] [--diff-from <base>] [--silent]
|
|
230
230
|
```
|
|
231
231
|
|
|
232
232
|
### convert-to-readonly
|
|
@@ -234,7 +234,7 @@ npx convert-interface-to-type <baseDir> [--exclude <pattern>] [--silent]
|
|
|
234
234
|
Adds `readonly` modifiers to type definitions throughout your codebase.
|
|
235
235
|
|
|
236
236
|
```bash
|
|
237
|
-
npx convert-to-readonly <baseDir> [--exclude <pattern>] [--silent]
|
|
237
|
+
npx convert-to-readonly <baseDir> [--exclude <pattern>] [--uncommitted] [--diff-from <base>] [--silent]
|
|
238
238
|
```
|
|
239
239
|
|
|
240
240
|
### replace-any-with-unknown
|
|
@@ -242,7 +242,7 @@ npx convert-to-readonly <baseDir> [--exclude <pattern>] [--silent]
|
|
|
242
242
|
Replaces `any` type annotations with `unknown` for improved type safety.
|
|
243
243
|
|
|
244
244
|
```bash
|
|
245
|
-
npx replace-any-with-unknown <baseDir> [--exclude <pattern>] [--silent]
|
|
245
|
+
npx replace-any-with-unknown <baseDir> [--exclude <pattern>] [--uncommitted] [--diff-from <base>] [--silent]
|
|
246
246
|
```
|
|
247
247
|
|
|
248
248
|
### replace-record-with-unknown-record
|
|
@@ -250,13 +250,15 @@ npx replace-any-with-unknown <baseDir> [--exclude <pattern>] [--silent]
|
|
|
250
250
|
Replaces `Record<string, unknown>` with `UnknownRecord` for better type safety.
|
|
251
251
|
|
|
252
252
|
```bash
|
|
253
|
-
npx replace-record-with-unknown-record <baseDir> [--exclude <pattern>] [--silent]
|
|
253
|
+
npx replace-record-with-unknown-record <baseDir> [--exclude <pattern>] [--uncommitted] [--diff-from <base>] [--silent]
|
|
254
254
|
```
|
|
255
255
|
|
|
256
256
|
**Common Options:**
|
|
257
257
|
|
|
258
258
|
- `baseDir`: Base directory to scan for TypeScript files
|
|
259
259
|
- `--exclude`: Glob patterns to exclude (e.g., `"src/generated/**/*.mts"`)
|
|
260
|
+
- `--uncommitted`: Transform only uncommitted files (untracked, modified, and staged), intersected with `baseDir`
|
|
261
|
+
- `--diff-from <base>`: Transform only files that differ from the given base branch or commit hash (e.g., `origin/main`), intersected with `baseDir`
|
|
260
262
|
- `--silent`: Suppress output messages
|
|
261
263
|
|
|
262
264
|
## Programmatic Usage
|
|
@@ -10,7 +10,7 @@ import { runTransformerCLI } from './run-transformer-cli.mjs';
|
|
|
10
10
|
const transformer = appendAsConstTransformer();
|
|
11
11
|
const cmdDef = cmd.command({
|
|
12
12
|
name: transformer.name,
|
|
13
|
-
version: '2.
|
|
13
|
+
version: '2.2.0',
|
|
14
14
|
args: {
|
|
15
15
|
baseDir: cmd.positional({
|
|
16
16
|
type: cmd.string,
|
|
@@ -27,6 +27,11 @@ const cmdDef = cmd.command({
|
|
|
27
27
|
type: cmd.optional(cmd.boolean),
|
|
28
28
|
description: 'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
29
29
|
}),
|
|
30
|
+
diffFrom: cmd.option({
|
|
31
|
+
long: 'diff-from',
|
|
32
|
+
type: cmd.optional(cmd.string),
|
|
33
|
+
description: 'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
34
|
+
}),
|
|
30
35
|
silent: cmd.flag({
|
|
31
36
|
long: 'silent',
|
|
32
37
|
type: cmd.optional(cmd.boolean),
|
|
@@ -39,6 +44,7 @@ const cmdDef = cmd.command({
|
|
|
39
44
|
baseDir: args.baseDir,
|
|
40
45
|
exclude: args.exclude ?? [],
|
|
41
46
|
uncommitted: args.uncommitted ?? false,
|
|
47
|
+
diffFrom: args.diffFrom,
|
|
42
48
|
silent: args.silent ?? false,
|
|
43
49
|
}, [transformer]);
|
|
44
50
|
if (Result.isErr(result)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"append-as-const.mjs","sources":["../../src/cmd/append-as-const.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,wBAAwB,EAAE;AAE9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"append-as-const.mjs","sources":["../../src/cmd/append-as-const.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,wBAAwB,EAAE;AAE9C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;AACnB,YAAA,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,YAAA,WAAW,EACT,0FAA0F;SAC7F,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;gBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,aAAA,EACD,CAAC,WAAW,CAAC,CACd;AAED,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAE1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { runTransformerCLI } from './run-transformer-cli.mjs';
|
|
|
10
10
|
const transformer = convertInterfaceToTypeTransformer();
|
|
11
11
|
const cmdDef = cmd.command({
|
|
12
12
|
name: transformer.name,
|
|
13
|
-
version: '2.
|
|
13
|
+
version: '2.2.0',
|
|
14
14
|
args: {
|
|
15
15
|
baseDir: cmd.positional({
|
|
16
16
|
type: cmd.string,
|
|
@@ -27,6 +27,11 @@ const cmdDef = cmd.command({
|
|
|
27
27
|
type: cmd.optional(cmd.boolean),
|
|
28
28
|
description: 'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
29
29
|
}),
|
|
30
|
+
diffFrom: cmd.option({
|
|
31
|
+
long: 'diff-from',
|
|
32
|
+
type: cmd.optional(cmd.string),
|
|
33
|
+
description: 'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
34
|
+
}),
|
|
30
35
|
silent: cmd.flag({
|
|
31
36
|
long: 'silent',
|
|
32
37
|
type: cmd.optional(cmd.boolean),
|
|
@@ -39,6 +44,7 @@ const cmdDef = cmd.command({
|
|
|
39
44
|
baseDir: args.baseDir,
|
|
40
45
|
exclude: args.exclude ?? [],
|
|
41
46
|
uncommitted: args.uncommitted ?? false,
|
|
47
|
+
diffFrom: args.diffFrom,
|
|
42
48
|
silent: args.silent ?? false,
|
|
43
49
|
}, [transformer]);
|
|
44
50
|
if (Result.isErr(result)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-interface-to-type.mjs","sources":["../../src/cmd/convert-interface-to-type.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,iCAAiC,EAAE;AAEvD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"convert-interface-to-type.mjs","sources":["../../src/cmd/convert-interface-to-type.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,iCAAiC,EAAE;AAEvD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;AACnB,YAAA,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,YAAA,WAAW,EACT,0FAA0F;SAC7F,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;gBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,aAAA,EACD,CAAC,WAAW,CAAC,CACd;AAED,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAE1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { runTransformerCLI } from './run-transformer-cli.mjs';
|
|
|
10
10
|
const transformer = convertToReadonlyTransformer();
|
|
11
11
|
const cmdDef = cmd.command({
|
|
12
12
|
name: transformer.name,
|
|
13
|
-
version: '2.
|
|
13
|
+
version: '2.2.0',
|
|
14
14
|
args: {
|
|
15
15
|
baseDir: cmd.positional({
|
|
16
16
|
type: cmd.string,
|
|
@@ -27,6 +27,11 @@ const cmdDef = cmd.command({
|
|
|
27
27
|
type: cmd.optional(cmd.boolean),
|
|
28
28
|
description: 'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
29
29
|
}),
|
|
30
|
+
diffFrom: cmd.option({
|
|
31
|
+
long: 'diff-from',
|
|
32
|
+
type: cmd.optional(cmd.string),
|
|
33
|
+
description: 'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
34
|
+
}),
|
|
30
35
|
silent: cmd.flag({
|
|
31
36
|
long: 'silent',
|
|
32
37
|
type: cmd.optional(cmd.boolean),
|
|
@@ -39,6 +44,7 @@ const cmdDef = cmd.command({
|
|
|
39
44
|
baseDir: args.baseDir,
|
|
40
45
|
exclude: args.exclude ?? [],
|
|
41
46
|
uncommitted: args.uncommitted ?? false,
|
|
47
|
+
diffFrom: args.diffFrom,
|
|
42
48
|
silent: args.silent ?? false,
|
|
43
49
|
}, [transformer]);
|
|
44
50
|
if (Result.isErr(result)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convert-to-readonly.mjs","sources":["../../src/cmd/convert-to-readonly.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,4BAA4B,EAAE;AAElD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"convert-to-readonly.mjs","sources":["../../src/cmd/convert-to-readonly.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,4BAA4B,EAAE;AAElD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;AACnB,YAAA,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,YAAA,WAAW,EACT,0FAA0F;SAC7F,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;gBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,aAAA,EACD,CAAC,WAAW,CAAC,CACd;AAED,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAE1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { runTransformerCLI } from './run-transformer-cli.mjs';
|
|
|
10
10
|
const transformer = replaceAnyWithUnknownTransformer();
|
|
11
11
|
const cmdDef = cmd.command({
|
|
12
12
|
name: transformer.name,
|
|
13
|
-
version: '2.
|
|
13
|
+
version: '2.2.0',
|
|
14
14
|
args: {
|
|
15
15
|
baseDir: cmd.positional({
|
|
16
16
|
type: cmd.string,
|
|
@@ -27,6 +27,11 @@ const cmdDef = cmd.command({
|
|
|
27
27
|
type: cmd.optional(cmd.boolean),
|
|
28
28
|
description: 'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
29
29
|
}),
|
|
30
|
+
diffFrom: cmd.option({
|
|
31
|
+
long: 'diff-from',
|
|
32
|
+
type: cmd.optional(cmd.string),
|
|
33
|
+
description: 'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
34
|
+
}),
|
|
30
35
|
silent: cmd.flag({
|
|
31
36
|
long: 'silent',
|
|
32
37
|
type: cmd.optional(cmd.boolean),
|
|
@@ -39,6 +44,7 @@ const cmdDef = cmd.command({
|
|
|
39
44
|
baseDir: args.baseDir,
|
|
40
45
|
exclude: args.exclude ?? [],
|
|
41
46
|
uncommitted: args.uncommitted ?? false,
|
|
47
|
+
diffFrom: args.diffFrom,
|
|
42
48
|
silent: args.silent ?? false,
|
|
43
49
|
}, [transformer]);
|
|
44
50
|
if (Result.isErr(result)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace-any-with-unknown.mjs","sources":["../../src/cmd/replace-any-with-unknown.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,gCAAgC,EAAE;AAEtD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"replace-any-with-unknown.mjs","sources":["../../src/cmd/replace-any-with-unknown.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,gCAAgC,EAAE;AAEtD,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;AACnB,YAAA,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,YAAA,WAAW,EACT,0FAA0F;SAC7F,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;gBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,aAAA,EACD,CAAC,WAAW,CAAC,CACd;AAED,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAE1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { runTransformerCLI } from './run-transformer-cli.mjs';
|
|
|
10
10
|
const transformer = replaceRecordWithUnknownRecordTransformer();
|
|
11
11
|
const cmdDef = cmd.command({
|
|
12
12
|
name: transformer.name,
|
|
13
|
-
version: '2.
|
|
13
|
+
version: '2.2.0',
|
|
14
14
|
args: {
|
|
15
15
|
baseDir: cmd.positional({
|
|
16
16
|
type: cmd.string,
|
|
@@ -27,6 +27,11 @@ const cmdDef = cmd.command({
|
|
|
27
27
|
type: cmd.optional(cmd.boolean),
|
|
28
28
|
description: 'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
29
29
|
}),
|
|
30
|
+
diffFrom: cmd.option({
|
|
31
|
+
long: 'diff-from',
|
|
32
|
+
type: cmd.optional(cmd.string),
|
|
33
|
+
description: 'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
34
|
+
}),
|
|
30
35
|
silent: cmd.flag({
|
|
31
36
|
long: 'silent',
|
|
32
37
|
type: cmd.optional(cmd.boolean),
|
|
@@ -39,6 +44,7 @@ const cmdDef = cmd.command({
|
|
|
39
44
|
baseDir: args.baseDir,
|
|
40
45
|
exclude: args.exclude ?? [],
|
|
41
46
|
uncommitted: args.uncommitted ?? false,
|
|
47
|
+
diffFrom: args.diffFrom,
|
|
42
48
|
silent: args.silent ?? false,
|
|
43
49
|
}, [transformer]);
|
|
44
50
|
if (Result.isErr(result)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace-record-with-unknown-record.mjs","sources":["../../src/cmd/replace-record-with-unknown-record.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,yCAAyC,EAAE;AAE/D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"replace-record-with-unknown-record.mjs","sources":["../../src/cmd/replace-record-with-unknown-record.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;AAOA,MAAM,WAAW,GAAG,yCAAyC,EAAE;AAE/D,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,EAAE,WAAW,CAAC,IAAI;AACtB,IAAA,OAAO,EAAE,OAAO;AAChB,IAAA,IAAI,EAAE;AACJ,QAAA,OAAO,EAAE,GAAG,CAAC,UAAU,CAAC;YACtB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,WAAW,EAAE,uDAAuD;SACrE,CAAC;AACF,QAAA,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;AACvB,YAAA,IAAI,EAAE,SAAS;AACf,YAAA,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACzC,YAAA,WAAW,EACT,4FAA4F;SAC/F,CAAC;AACF,QAAA,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC;AACpB,YAAA,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oFAAoF;SACvF,CAAC;AACF,QAAA,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC;AACnB,YAAA,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,YAAA,WAAW,EACT,0FAA0F;SAC7F,CAAC;AACF,QAAA,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC;AACf,YAAA,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sDAAsD;SACpE,CAAC;AACH,KAAA;AACD,IAAA,OAAO,EAAE,CAAC,IAAI,KAAI;QAChB,CAAC,YAA0B;AACzB,YAAA,MAAM,MAAM,GAAG,MAAM,iBAAiB,CACpC;gBACE,OAAO,EAAE,IAAI,CAAC,OAAO;AACrB,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;AAC3B,gBAAA,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,KAAK;gBACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,aAAA,EACD,CAAC,WAAW,CAAC,CACd;AAED,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,gBAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YACjB;QACF,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAE1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-transformer-cli.d.mts","sourceRoot":"","sources":["../../src/cmd/run-transformer-cli.mts"],"names":[],"mappings":"AAKA,OAAO,EAAO,MAAM,EAAmB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"run-transformer-cli.d.mts","sourceRoot":"","sources":["../../src/cmd/run-transformer-cli.mts"],"names":[],"mappings":"AAKA,OAAO,EAAO,MAAM,EAAmB,MAAM,eAAe,CAAC;AAQ7D,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAEhC,KAAK,eAAe,GAAG,QAAQ,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,KAAK,qBAAqB,GAAG,eAAe,CAAC;AAE7C,eAAO,MAAM,iBAAiB,GAC5B,SAAS,qBAAqB,EAC9B,cAAc,SAAS,kBAAkB,EAAE,KAC1C,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAkEtC,CAAC"}
|
|
@@ -2,7 +2,7 @@ import dedent from 'dedent';
|
|
|
2
2
|
import * as fs from 'node:fs/promises';
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import { Result, Arr, unknownToString } from 'ts-data-forge';
|
|
5
|
-
import { glob, getUntrackedFiles, getModifiedFiles, getStagedFiles } from 'ts-repo-utils';
|
|
5
|
+
import { getDiffFrom, glob, getUntrackedFiles, getModifiedFiles, getStagedFiles } from 'ts-repo-utils';
|
|
6
6
|
import 'ts-morph';
|
|
7
7
|
import '../functions/functions/is-atomic-type-node.mjs';
|
|
8
8
|
import '../functions/ast-transformers/readonly-transformer-helpers/constants.mjs';
|
|
@@ -14,16 +14,20 @@ const runTransformerCLI = async (options, transformers) => {
|
|
|
14
14
|
const errorIfNotSilent = options.silent ? () => { } : console.error;
|
|
15
15
|
const filesResult = await getFilesForTransformation(options);
|
|
16
16
|
if (Result.isErr(filesResult)) {
|
|
17
|
-
errorIfNotSilent(options.
|
|
18
|
-
?
|
|
19
|
-
:
|
|
17
|
+
errorIfNotSilent(options.diffFrom !== undefined
|
|
18
|
+
? `Error getting diff files from "${options.diffFrom}":`
|
|
19
|
+
: options.uncommitted
|
|
20
|
+
? 'Error getting uncommitted files:'
|
|
21
|
+
: 'Error finding files matching pattern:', filesResult.value);
|
|
20
22
|
return Result.err(undefined);
|
|
21
23
|
}
|
|
22
24
|
const files = filesResult.value;
|
|
23
25
|
if (Arr.isArrayOfLength(files, 0)) {
|
|
24
|
-
echoIfNotSilent(options.
|
|
25
|
-
?
|
|
26
|
-
:
|
|
26
|
+
echoIfNotSilent(options.diffFrom !== undefined
|
|
27
|
+
? `No files found in diff from "${options.diffFrom}" matching pattern: ${options.baseDir}`
|
|
28
|
+
: options.uncommitted
|
|
29
|
+
? 'No uncommitted files found'
|
|
30
|
+
: `No files found matching pattern: ${options.baseDir}`);
|
|
27
31
|
return Result.ok(undefined);
|
|
28
32
|
}
|
|
29
33
|
const { errorFiles, transformedCount, unchangedCount } = await transformFiles(files, transformers, options.silent);
|
|
@@ -50,14 +54,27 @@ const runTransformerCLI = async (options, transformers) => {
|
|
|
50
54
|
};
|
|
51
55
|
const getFilesForTransformation = async (options) => {
|
|
52
56
|
const filesFromGlob = await getFilesFromGlob(options.baseDir, options.exclude, options.silent);
|
|
57
|
+
if (Result.isErr(filesFromGlob)) {
|
|
58
|
+
return filesFromGlob;
|
|
59
|
+
}
|
|
60
|
+
let mut_files = filesFromGlob.value;
|
|
53
61
|
if (options.uncommitted) {
|
|
54
62
|
const uncommittedFiles = await getUncommittedFiles(options.silent);
|
|
55
63
|
if (Result.isErr(uncommittedFiles)) {
|
|
56
64
|
return uncommittedFiles;
|
|
57
65
|
}
|
|
58
|
-
|
|
66
|
+
mut_files = Arr.setIntersection(mut_files, uncommittedFiles.value);
|
|
67
|
+
}
|
|
68
|
+
if (options.diffFrom !== undefined) {
|
|
69
|
+
const diffFiles = await getDiffFrom(options.diffFrom, {
|
|
70
|
+
silent: options.silent,
|
|
71
|
+
});
|
|
72
|
+
if (Result.isErr(diffFiles)) {
|
|
73
|
+
return diffFiles;
|
|
74
|
+
}
|
|
75
|
+
mut_files = Arr.setIntersection(mut_files, diffFiles.value);
|
|
59
76
|
}
|
|
60
|
-
return
|
|
77
|
+
return Result.ok(mut_files);
|
|
61
78
|
};
|
|
62
79
|
const getUncommittedFiles = async (silent) => {
|
|
63
80
|
const mut_files = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-transformer-cli.mjs","sources":["../../src/cmd/run-transformer-cli.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;AAAA;
|
|
1
|
+
{"version":3,"file":"run-transformer-cli.mjs","sources":["../../src/cmd/run-transformer-cli.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-codemod-lib",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript",
|
|
@@ -50,6 +50,12 @@
|
|
|
50
50
|
"clean": "pnpm run /clean:.*/",
|
|
51
51
|
"clean:logs": "npx rimraf ./*.log",
|
|
52
52
|
"codemod": "run-s codemod:uncommitted:* fmt",
|
|
53
|
+
"codemod:diff": "run-s codemod:diff:* fmt",
|
|
54
|
+
"codemod:diff:as-const": "tsx ./src/cmd/append-as-const.mts --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
55
|
+
"codemod:diff:any-to-unknown": "tsx ./src/cmd/replace-any-with-unknown.mts --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
56
|
+
"codemod:diff:unknown-record": "tsx ./src/cmd/replace-record-with-unknown-record.mts --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
57
|
+
"codemod:diff:interface-to-type": "tsx ./src/cmd/convert-interface-to-type.mts --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
58
|
+
"codemod:diff:readonly": "tsx ./src/cmd/convert-to-readonly.mts --diff-from origin/main '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
53
59
|
"codemod:full": "run-s codemod:full:* fmt",
|
|
54
60
|
"codemod:full:as-const": "tsx ./src/cmd/append-as-const.mts '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
55
61
|
"codemod:full:any-to-unknown": "tsx ./src/cmd/replace-any-with-unknown.mts '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
@@ -63,7 +69,7 @@
|
|
|
63
69
|
"codemod:uncommitted:readonly": "tsx ./src/cmd/convert-to-readonly.mts --uncommitted '{src,scripts,samples,test}/**/*.{mts,tsx}'",
|
|
64
70
|
"cspell": "cspell \"**\" --gitignore --gitignore-root ./ --no-progress",
|
|
65
71
|
"doc": "tsx ./scripts/cmd/gen-docs.mts",
|
|
66
|
-
"doc:embed": "tsx ./scripts/cmd/embed-
|
|
72
|
+
"doc:embed": "tsx ./scripts/cmd/embed-examples.mts",
|
|
67
73
|
"doc:preview": "vite preview --config ./configs/vite.doc.config.mts",
|
|
68
74
|
"doc:watch": "typedoc --options ./configs/typedoc.config.mjs --watch",
|
|
69
75
|
"fmt": "format-uncommitted",
|
|
@@ -99,9 +105,9 @@
|
|
|
99
105
|
"z:vitest:node": "pnpm run z:vitest --project='Node.js'"
|
|
100
106
|
},
|
|
101
107
|
"dependencies": {
|
|
102
|
-
"ts-data-forge": "6.9.
|
|
103
|
-
"ts-morph": "28.0.0",
|
|
104
|
-
"ts-type-forge": "3.0.
|
|
108
|
+
"ts-data-forge": "^6.9.6",
|
|
109
|
+
"ts-morph": "^28.0.0",
|
|
110
|
+
"ts-type-forge": "^3.0.1"
|
|
105
111
|
},
|
|
106
112
|
"devDependencies": {
|
|
107
113
|
"@rollup/plugin-replace": "6.0.3",
|
|
@@ -111,10 +117,10 @@
|
|
|
111
117
|
"@semantic-release/commit-analyzer": "13.0.1",
|
|
112
118
|
"@semantic-release/exec": "7.1.0",
|
|
113
119
|
"@semantic-release/git": "10.0.1",
|
|
114
|
-
"@semantic-release/github": "12.0.
|
|
120
|
+
"@semantic-release/github": "12.0.8",
|
|
115
121
|
"@semantic-release/npm": "13.1.5",
|
|
116
|
-
"@semantic-release/release-notes-generator": "14.1.
|
|
117
|
-
"@types/node": "25.
|
|
122
|
+
"@semantic-release/release-notes-generator": "14.1.1",
|
|
123
|
+
"@types/node": "25.9.1",
|
|
118
124
|
"@vitest/browser-playwright": "4.1.5",
|
|
119
125
|
"@vitest/coverage-v8": "4.1.5",
|
|
120
126
|
"@vitest/ui": "4.1.5",
|
|
@@ -123,25 +129,25 @@
|
|
|
123
129
|
"cspell": "10.0.0",
|
|
124
130
|
"dedent": "1.7.2",
|
|
125
131
|
"eslint": "9.39.4",
|
|
126
|
-
"eslint-config-typed": "4.9.
|
|
127
|
-
"github-settings-as-code": "1.2.
|
|
128
|
-
"jiti": "2.
|
|
132
|
+
"eslint-config-typed": "4.9.11",
|
|
133
|
+
"github-settings-as-code": "1.2.9",
|
|
134
|
+
"jiti": "2.7.0",
|
|
129
135
|
"markdownlint": "0.40.0",
|
|
130
136
|
"markdownlint-cli2": "0.22.1",
|
|
131
137
|
"npm-run-all2": "8.0.4",
|
|
132
|
-
"playwright": "1.
|
|
138
|
+
"playwright": "1.60.0",
|
|
133
139
|
"prettier": "3.8.3",
|
|
134
140
|
"prettier-plugin-organize-imports": "4.3.0",
|
|
135
141
|
"prettier-plugin-packagejson": "3.0.2",
|
|
136
|
-
"rollup": "4.60.
|
|
142
|
+
"rollup": "4.60.4",
|
|
137
143
|
"semantic-release": "25.0.3",
|
|
138
|
-
"ts-repo-utils": "10.
|
|
144
|
+
"ts-repo-utils": "10.1.2",
|
|
139
145
|
"tslib": "2.8.1",
|
|
140
|
-
"tsx": "4.
|
|
146
|
+
"tsx": "4.22.3",
|
|
141
147
|
"typedoc": "0.28.19",
|
|
142
148
|
"typedoc-github-theme": "0.4.0",
|
|
143
149
|
"typescript": "5.9.3",
|
|
144
|
-
"vite": "8.0.
|
|
150
|
+
"vite": "8.0.14",
|
|
145
151
|
"vitest": "4.1.5"
|
|
146
152
|
},
|
|
147
153
|
"peerDependencies": {
|
|
@@ -160,7 +166,7 @@
|
|
|
160
166
|
"optional": true
|
|
161
167
|
}
|
|
162
168
|
},
|
|
163
|
-
"packageManager": "pnpm@
|
|
169
|
+
"packageManager": "pnpm@10.33.4",
|
|
164
170
|
"engines": {
|
|
165
171
|
"node": ">=22.18.0",
|
|
166
172
|
"pnpm": ">=9.0.0"
|
|
@@ -9,7 +9,7 @@ const transformer = appendAsConstTransformer();
|
|
|
9
9
|
|
|
10
10
|
const cmdDef = cmd.command({
|
|
11
11
|
name: transformer.name,
|
|
12
|
-
version: '2.
|
|
12
|
+
version: '2.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
baseDir: cmd.positional({
|
|
15
15
|
type: cmd.string,
|
|
@@ -28,6 +28,12 @@ const cmdDef = cmd.command({
|
|
|
28
28
|
description:
|
|
29
29
|
'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
30
30
|
}),
|
|
31
|
+
diffFrom: cmd.option({
|
|
32
|
+
long: 'diff-from',
|
|
33
|
+
type: cmd.optional(cmd.string),
|
|
34
|
+
description:
|
|
35
|
+
'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
36
|
+
}),
|
|
31
37
|
silent: cmd.flag({
|
|
32
38
|
long: 'silent',
|
|
33
39
|
type: cmd.optional(cmd.boolean),
|
|
@@ -41,6 +47,7 @@ const cmdDef = cmd.command({
|
|
|
41
47
|
baseDir: args.baseDir,
|
|
42
48
|
exclude: args.exclude ?? [],
|
|
43
49
|
uncommitted: args.uncommitted ?? false,
|
|
50
|
+
diffFrom: args.diffFrom,
|
|
44
51
|
silent: args.silent ?? false,
|
|
45
52
|
},
|
|
46
53
|
[transformer],
|
|
@@ -9,7 +9,7 @@ const transformer = convertInterfaceToTypeTransformer();
|
|
|
9
9
|
|
|
10
10
|
const cmdDef = cmd.command({
|
|
11
11
|
name: transformer.name,
|
|
12
|
-
version: '2.
|
|
12
|
+
version: '2.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
baseDir: cmd.positional({
|
|
15
15
|
type: cmd.string,
|
|
@@ -28,6 +28,12 @@ const cmdDef = cmd.command({
|
|
|
28
28
|
description:
|
|
29
29
|
'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
30
30
|
}),
|
|
31
|
+
diffFrom: cmd.option({
|
|
32
|
+
long: 'diff-from',
|
|
33
|
+
type: cmd.optional(cmd.string),
|
|
34
|
+
description:
|
|
35
|
+
'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
36
|
+
}),
|
|
31
37
|
silent: cmd.flag({
|
|
32
38
|
long: 'silent',
|
|
33
39
|
type: cmd.optional(cmd.boolean),
|
|
@@ -41,6 +47,7 @@ const cmdDef = cmd.command({
|
|
|
41
47
|
baseDir: args.baseDir,
|
|
42
48
|
exclude: args.exclude ?? [],
|
|
43
49
|
uncommitted: args.uncommitted ?? false,
|
|
50
|
+
diffFrom: args.diffFrom,
|
|
44
51
|
silent: args.silent ?? false,
|
|
45
52
|
},
|
|
46
53
|
[transformer],
|
|
@@ -9,7 +9,7 @@ const transformer = convertToReadonlyTransformer();
|
|
|
9
9
|
|
|
10
10
|
const cmdDef = cmd.command({
|
|
11
11
|
name: transformer.name,
|
|
12
|
-
version: '2.
|
|
12
|
+
version: '2.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
baseDir: cmd.positional({
|
|
15
15
|
type: cmd.string,
|
|
@@ -28,6 +28,12 @@ const cmdDef = cmd.command({
|
|
|
28
28
|
description:
|
|
29
29
|
'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
30
30
|
}),
|
|
31
|
+
diffFrom: cmd.option({
|
|
32
|
+
long: 'diff-from',
|
|
33
|
+
type: cmd.optional(cmd.string),
|
|
34
|
+
description:
|
|
35
|
+
'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
36
|
+
}),
|
|
31
37
|
silent: cmd.flag({
|
|
32
38
|
long: 'silent',
|
|
33
39
|
type: cmd.optional(cmd.boolean),
|
|
@@ -41,6 +47,7 @@ const cmdDef = cmd.command({
|
|
|
41
47
|
baseDir: args.baseDir,
|
|
42
48
|
exclude: args.exclude ?? [],
|
|
43
49
|
uncommitted: args.uncommitted ?? false,
|
|
50
|
+
diffFrom: args.diffFrom,
|
|
44
51
|
silent: args.silent ?? false,
|
|
45
52
|
},
|
|
46
53
|
[transformer],
|
|
@@ -9,7 +9,7 @@ const transformer = replaceAnyWithUnknownTransformer();
|
|
|
9
9
|
|
|
10
10
|
const cmdDef = cmd.command({
|
|
11
11
|
name: transformer.name,
|
|
12
|
-
version: '2.
|
|
12
|
+
version: '2.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
baseDir: cmd.positional({
|
|
15
15
|
type: cmd.string,
|
|
@@ -28,6 +28,12 @@ const cmdDef = cmd.command({
|
|
|
28
28
|
description:
|
|
29
29
|
'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
30
30
|
}),
|
|
31
|
+
diffFrom: cmd.option({
|
|
32
|
+
long: 'diff-from',
|
|
33
|
+
type: cmd.optional(cmd.string),
|
|
34
|
+
description:
|
|
35
|
+
'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
36
|
+
}),
|
|
31
37
|
silent: cmd.flag({
|
|
32
38
|
long: 'silent',
|
|
33
39
|
type: cmd.optional(cmd.boolean),
|
|
@@ -41,6 +47,7 @@ const cmdDef = cmd.command({
|
|
|
41
47
|
baseDir: args.baseDir,
|
|
42
48
|
exclude: args.exclude ?? [],
|
|
43
49
|
uncommitted: args.uncommitted ?? false,
|
|
50
|
+
diffFrom: args.diffFrom,
|
|
44
51
|
silent: args.silent ?? false,
|
|
45
52
|
},
|
|
46
53
|
[transformer],
|
|
@@ -9,7 +9,7 @@ const transformer = replaceRecordWithUnknownRecordTransformer();
|
|
|
9
9
|
|
|
10
10
|
const cmdDef = cmd.command({
|
|
11
11
|
name: transformer.name,
|
|
12
|
-
version: '2.
|
|
12
|
+
version: '2.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
baseDir: cmd.positional({
|
|
15
15
|
type: cmd.string,
|
|
@@ -28,6 +28,12 @@ const cmdDef = cmd.command({
|
|
|
28
28
|
description:
|
|
29
29
|
'If true, transforms only uncommitted files (untracked, modified, and staged files)',
|
|
30
30
|
}),
|
|
31
|
+
diffFrom: cmd.option({
|
|
32
|
+
long: 'diff-from',
|
|
33
|
+
type: cmd.optional(cmd.string),
|
|
34
|
+
description:
|
|
35
|
+
'If provided, transforms only files that differ from the given base branch or commit hash',
|
|
36
|
+
}),
|
|
31
37
|
silent: cmd.flag({
|
|
32
38
|
long: 'silent',
|
|
33
39
|
type: cmd.optional(cmd.boolean),
|
|
@@ -41,6 +47,7 @@ const cmdDef = cmd.command({
|
|
|
41
47
|
baseDir: args.baseDir,
|
|
42
48
|
exclude: args.exclude ?? [],
|
|
43
49
|
uncommitted: args.uncommitted ?? false,
|
|
50
|
+
diffFrom: args.diffFrom,
|
|
44
51
|
silent: args.silent ?? false,
|
|
45
52
|
},
|
|
46
53
|
[transformer],
|
|
@@ -5,6 +5,7 @@ import * as fs from 'node:fs/promises';
|
|
|
5
5
|
import * as path from 'node:path';
|
|
6
6
|
import { Arr, Result, unknownToString } from 'ts-data-forge';
|
|
7
7
|
import {
|
|
8
|
+
getDiffFrom,
|
|
8
9
|
getModifiedFiles,
|
|
9
10
|
getStagedFiles,
|
|
10
11
|
getUntrackedFiles,
|
|
@@ -19,6 +20,7 @@ type GetFilesOptions = Readonly<{
|
|
|
19
20
|
baseDir: string;
|
|
20
21
|
exclude: readonly string[];
|
|
21
22
|
uncommitted: boolean;
|
|
23
|
+
diffFrom: string | undefined;
|
|
22
24
|
silent: boolean;
|
|
23
25
|
}>;
|
|
24
26
|
|
|
@@ -36,9 +38,11 @@ export const runTransformerCLI = async (
|
|
|
36
38
|
|
|
37
39
|
if (Result.isErr(filesResult)) {
|
|
38
40
|
errorIfNotSilent(
|
|
39
|
-
options.
|
|
40
|
-
?
|
|
41
|
-
:
|
|
41
|
+
options.diffFrom !== undefined
|
|
42
|
+
? `Error getting diff files from "${options.diffFrom}":`
|
|
43
|
+
: options.uncommitted
|
|
44
|
+
? 'Error getting uncommitted files:'
|
|
45
|
+
: 'Error finding files matching pattern:',
|
|
42
46
|
filesResult.value,
|
|
43
47
|
);
|
|
44
48
|
|
|
@@ -49,9 +53,11 @@ export const runTransformerCLI = async (
|
|
|
49
53
|
|
|
50
54
|
if (Arr.isArrayOfLength(files, 0)) {
|
|
51
55
|
echoIfNotSilent(
|
|
52
|
-
options.
|
|
53
|
-
?
|
|
54
|
-
:
|
|
56
|
+
options.diffFrom !== undefined
|
|
57
|
+
? `No files found in diff from "${options.diffFrom}" matching pattern: ${options.baseDir}`
|
|
58
|
+
: options.uncommitted
|
|
59
|
+
? 'No uncommitted files found'
|
|
60
|
+
: `No files found matching pattern: ${options.baseDir}`,
|
|
55
61
|
);
|
|
56
62
|
|
|
57
63
|
return Result.ok(undefined);
|
|
@@ -108,6 +114,12 @@ const getFilesForTransformation = async (
|
|
|
108
114
|
options.silent,
|
|
109
115
|
);
|
|
110
116
|
|
|
117
|
+
if (Result.isErr(filesFromGlob)) {
|
|
118
|
+
return filesFromGlob;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
let mut_files = filesFromGlob.value;
|
|
122
|
+
|
|
111
123
|
if (options.uncommitted) {
|
|
112
124
|
const uncommittedFiles = await getUncommittedFiles(options.silent);
|
|
113
125
|
|
|
@@ -115,12 +127,22 @@ const getFilesForTransformation = async (
|
|
|
115
127
|
return uncommittedFiles;
|
|
116
128
|
}
|
|
117
129
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
130
|
+
mut_files = Arr.setIntersection(mut_files, uncommittedFiles.value);
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
if (options.diffFrom !== undefined) {
|
|
134
|
+
const diffFiles = await getDiffFrom(options.diffFrom, {
|
|
135
|
+
silent: options.silent,
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
if (Result.isErr(diffFiles)) {
|
|
139
|
+
return diffFiles;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
mut_files = Arr.setIntersection(mut_files, diffFiles.value);
|
|
121
143
|
}
|
|
122
144
|
|
|
123
|
-
return
|
|
145
|
+
return Result.ok(mut_files);
|
|
124
146
|
};
|
|
125
147
|
|
|
126
148
|
const getUncommittedFiles = async (
|