ts-repo-utils 10.0.3 → 10.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +8 -1
- package/dist/cmd/format-diff-from.mjs.map +1 -1
- package/dist/cmd/format-uncommitted.mjs +8 -1
- package/dist/cmd/format-uncommitted.mjs.map +1 -1
- package/dist/cmd/gen-index-ts.mjs +1 -1
- package/dist/functions/format.d.mts +12 -0
- package/dist/functions/format.d.mts.map +1 -1
- package/dist/functions/format.mjs +26 -4
- package/dist/functions/format.mjs.map +1 -1
- package/package.json +5 -5
- 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 +10 -1
- package/src/cmd/format-uncommitted.mts +10 -1
- package/src/cmd/gen-index-ts.mts +1 -1
- package/src/functions/format.mts +42 -2
- package/src/functions/format.test.mts +159 -0
|
@@ -13,7 +13,7 @@ import '@sindresorhus/is';
|
|
|
13
13
|
|
|
14
14
|
const cmdDef = cmd.command({
|
|
15
15
|
name: 'format-diff-from-cli',
|
|
16
|
-
version: '10.0
|
|
16
|
+
version: '10.1.0',
|
|
17
17
|
args: {
|
|
18
18
|
base: cmd.positional({
|
|
19
19
|
type: cmd.string,
|
|
@@ -45,6 +45,11 @@ const cmdDef = cmd.command({
|
|
|
45
45
|
type: cmd.optional(cmd.boolean),
|
|
46
46
|
description: 'If true, suppresses output messages (default: false)',
|
|
47
47
|
}),
|
|
48
|
+
cwd: cmd.option({
|
|
49
|
+
long: 'cwd',
|
|
50
|
+
type: cmd.optional(cmd.string),
|
|
51
|
+
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.',
|
|
52
|
+
}),
|
|
48
53
|
},
|
|
49
54
|
handler: (args) => {
|
|
50
55
|
main({
|
|
@@ -54,6 +59,7 @@ const cmdDef = cmd.command({
|
|
|
54
59
|
excludeStaged: args.excludeStaged ?? false,
|
|
55
60
|
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
56
61
|
silent: args.silent ?? false,
|
|
62
|
+
cwd: args.cwd,
|
|
57
63
|
}).catch((error) => {
|
|
58
64
|
console.error('An error occurred:', error);
|
|
59
65
|
process.exit(1);
|
|
@@ -67,6 +73,7 @@ const main = async (args) => {
|
|
|
67
73
|
includeStaged: !args.excludeStaged,
|
|
68
74
|
ignoreUnknown: args.ignoreUnknown,
|
|
69
75
|
silent: args.silent,
|
|
76
|
+
cwd: args.cwd,
|
|
70
77
|
});
|
|
71
78
|
if (Result.isErr(result)) {
|
|
72
79
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-diff-from.mjs","sources":["../../src/cmd/format-diff-from.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAMA,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;AACzB,IAAA,IAAI,EAAE,sBAAsB;AAC5B,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC;YACnB,IAAI,EAAE,GAAG,CAAC,MAAM;AAChB,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,WAAW,EAAE,oDAAoD;SAClE,CAAC;AACF,QAAA,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oEAAoE;SACvE,CAAC;AACF,QAAA,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,mEAAmE;SACtE,CAAC;AACF,QAAA,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,iEAAiE;SACpE,CAAC;AACF,QAAA,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sCAAsC;SACpD,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;AAChB,QAAA,IAAI,CAAC;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;AAChD,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,KAAK;AAC9C,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK;AAC1C,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;AACzC,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"format-diff-from.mjs","sources":["../../src/cmd/format-diff-from.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import '@sindresorhus/is';
|
|
|
13
13
|
|
|
14
14
|
const cmdDef = cmd.command({
|
|
15
15
|
name: 'format-uncommitted-cli',
|
|
16
|
-
version: '10.0
|
|
16
|
+
version: '10.1.0',
|
|
17
17
|
args: {
|
|
18
18
|
excludeUntracked: cmd.flag({
|
|
19
19
|
long: 'exclude-untracked',
|
|
@@ -40,6 +40,11 @@ const cmdDef = cmd.command({
|
|
|
40
40
|
type: cmd.optional(cmd.boolean),
|
|
41
41
|
description: 'If true, suppresses output messages (default: false)',
|
|
42
42
|
}),
|
|
43
|
+
cwd: cmd.option({
|
|
44
|
+
long: 'cwd',
|
|
45
|
+
type: cmd.optional(cmd.string),
|
|
46
|
+
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.',
|
|
47
|
+
}),
|
|
43
48
|
},
|
|
44
49
|
handler: (args) => {
|
|
45
50
|
main({
|
|
@@ -48,6 +53,7 @@ const cmdDef = cmd.command({
|
|
|
48
53
|
excludeStaged: args.excludeStaged ?? false,
|
|
49
54
|
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
50
55
|
silent: args.silent ?? false,
|
|
56
|
+
cwd: args.cwd,
|
|
51
57
|
}).catch((error) => {
|
|
52
58
|
console.error('An error occurred:', error);
|
|
53
59
|
process.exit(1);
|
|
@@ -61,6 +67,7 @@ const main = async (args) => {
|
|
|
61
67
|
staged: !args.excludeStaged,
|
|
62
68
|
ignoreUnknown: args.ignoreUnknown,
|
|
63
69
|
silent: args.silent,
|
|
70
|
+
cwd: args.cwd,
|
|
64
71
|
});
|
|
65
72
|
if (Result.isErr(result)) {
|
|
66
73
|
process.exit(1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-uncommitted.mjs","sources":["../../src/cmd/format-uncommitted.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;;;AAMA,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;AACzB,IAAA,IAAI,EAAE,wBAAwB;AAC9B,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,IAAI,EAAE;AACJ,QAAA,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC;AACzB,YAAA,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,oEAAoE;SACvE,CAAC;AACF,QAAA,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC;AACxB,YAAA,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,mEAAmE;SACtE,CAAC;AACF,QAAA,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EACT,iEAAiE;SACpE,CAAC;AACF,QAAA,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC;AACtB,YAAA,IAAI,EAAE,gBAAgB;YACtB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;AAC/B,YAAA,WAAW,EAAE,sCAAsC;SACpD,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;AAChB,QAAA,IAAI,CAAC;AACH,YAAA,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,IAAI,KAAK;AAChD,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,KAAK;AAC9C,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,KAAK;AAC1C,YAAA,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,IAAI;AACzC,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;
|
|
1
|
+
{"version":3,"file":"format-uncommitted.mjs","sources":["../../src/cmd/format-uncommitted.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,10 @@ export declare const formatFilesGlob: (pathGlob: string, options?: Readonly<{
|
|
|
24
24
|
* Format only files that have been changed (git status)
|
|
25
25
|
*
|
|
26
26
|
* @param options - Options for formatting
|
|
27
|
+
* @param options.cwd - If provided, only files within this directory will be
|
|
28
|
+
* formatted. Relative paths are resolved against `process.cwd()`. Defaults to
|
|
29
|
+
* undefined (no filtering; all changed files in the repository are
|
|
30
|
+
* formatted).
|
|
27
31
|
*/
|
|
28
32
|
export declare const formatUncommittedFiles: (options?: Readonly<{
|
|
29
33
|
untracked?: boolean;
|
|
@@ -32,6 +36,7 @@ export declare const formatUncommittedFiles: (options?: Readonly<{
|
|
|
32
36
|
silent?: boolean;
|
|
33
37
|
ignoreUnknown?: boolean;
|
|
34
38
|
ignore?: false | ((filePath: string) => boolean);
|
|
39
|
+
cwd?: string;
|
|
35
40
|
}>) => Promise<Result<undefined, ExecException | Readonly<{
|
|
36
41
|
message: string;
|
|
37
42
|
}> | readonly unknown[]>>;
|
|
@@ -55,6 +60,13 @@ export declare const formatDiffFrom: (base: string, options?: Readonly<{
|
|
|
55
60
|
silent?: boolean;
|
|
56
61
|
ignoreUnknown?: boolean;
|
|
57
62
|
ignore?: false | ((filePath: string) => boolean);
|
|
63
|
+
/**
|
|
64
|
+
* If provided, only files within this directory will be formatted.
|
|
65
|
+
* Relative paths are resolved against `process.cwd()`. Defaults to
|
|
66
|
+
* undefined (no filtering; all changed files in the repository are
|
|
67
|
+
* formatted).
|
|
68
|
+
*/
|
|
69
|
+
cwd?: string;
|
|
58
70
|
}>) => Promise<Result<undefined, ExecException | Readonly<{
|
|
59
71
|
message: string;
|
|
60
72
|
}> | readonly unknown[]>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.mts","sourceRoot":"","sources":["../../src/functions/format.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,EAA6B,MAAM,EAAE,MAAM,eAAe,CAAC;AAWlE;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,MAAM,EAAE,EACxB,UAAU,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC,CAwI/C,CAAC;AA+DF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,UAAU,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CAClD,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAmCpC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"format.d.mts","sourceRoot":"","sources":["../../src/functions/format.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,OAAO,EAA6B,MAAM,EAAE,MAAM,eAAe,CAAC;AAWlE;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,MAAM,EAAE,EACxB,UAAU,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACjD,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC,CAwI/C,CAAC;AA+DF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,UAAU,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;CAClD,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAmCpC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,QAAQ,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACT,aAAa,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,OAAO,EAAE,CACnE,CAgEF,CAAC;AA4BF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,cAAc,GACzB,MAAM,MAAM,EACZ,UAAU,QAAQ,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACjD;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACP,aAAa,GACb,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,GACF,SAAS,OAAO,EAAE,CACrB,CAyFF,CAAC"}
|
|
@@ -193,9 +193,13 @@ const formatFilesGlob = async (pathGlob, options) => {
|
|
|
193
193
|
* Format only files that have been changed (git status)
|
|
194
194
|
*
|
|
195
195
|
* @param options - Options for formatting
|
|
196
|
+
* @param options.cwd - If provided, only files within this directory will be
|
|
197
|
+
* formatted. Relative paths are resolved against `process.cwd()`. Defaults to
|
|
198
|
+
* undefined (no filtering; all changed files in the repository are
|
|
199
|
+
* formatted).
|
|
196
200
|
*/
|
|
197
201
|
const formatUncommittedFiles = async (options) => {
|
|
198
|
-
const { untracked = true, modified = true, staged = true, silent = false, ignoreUnknown = true, ignore, } = options ?? {};
|
|
202
|
+
const { untracked = true, modified = true, staged = true, silent = false, ignoreUnknown = true, ignore, cwd, } = options ?? {};
|
|
199
203
|
const mut_files = [];
|
|
200
204
|
if (untracked) {
|
|
201
205
|
const untrackedFilesResult = await getUntrackedFiles({ silent });
|
|
@@ -227,12 +231,30 @@ const formatUncommittedFiles = async (options) => {
|
|
|
227
231
|
}
|
|
228
232
|
mut_files.push(...stagedFilesResult.value);
|
|
229
233
|
}
|
|
230
|
-
return formatFiles(Arr.uniq(mut_files), {
|
|
234
|
+
return formatFiles(filterFilesByCwd(Arr.uniq(mut_files), cwd), {
|
|
231
235
|
silent,
|
|
232
236
|
ignoreUnknown,
|
|
233
237
|
ignore,
|
|
234
238
|
});
|
|
235
239
|
};
|
|
240
|
+
/**
|
|
241
|
+
* Filter a list of file paths to those inside `cwd`. If `cwd` is undefined,
|
|
242
|
+
* returns the original list unchanged. Relative `cwd` is resolved against
|
|
243
|
+
* `process.cwd()`.
|
|
244
|
+
*/
|
|
245
|
+
const filterFilesByCwd = (files, cwd) => {
|
|
246
|
+
if (cwd === undefined) {
|
|
247
|
+
return files;
|
|
248
|
+
}
|
|
249
|
+
const resolvedCwd = path.resolve(cwd);
|
|
250
|
+
const cwdWithSep = resolvedCwd.endsWith(path.sep)
|
|
251
|
+
? resolvedCwd
|
|
252
|
+
: `${resolvedCwd}${path.sep}`;
|
|
253
|
+
return files.filter((file) => {
|
|
254
|
+
const absFile = path.isAbsolute(file) ? file : path.resolve(file);
|
|
255
|
+
return absFile === resolvedCwd || absFile.startsWith(cwdWithSep);
|
|
256
|
+
});
|
|
257
|
+
};
|
|
236
258
|
/**
|
|
237
259
|
* Format only files that differ from the specified base branch or commit
|
|
238
260
|
*
|
|
@@ -248,7 +270,7 @@ const formatUncommittedFiles = async (options) => {
|
|
|
248
270
|
*/
|
|
249
271
|
const formatDiffFrom = async (base, options) => {
|
|
250
272
|
// const silent = options?.silent ?? false;
|
|
251
|
-
const { silent = false, includeUntracked = true, includeModified = true, includeStaged = true, ignoreUnknown = true, ignore, } = options ?? {};
|
|
273
|
+
const { silent = false, includeUntracked = true, includeModified = true, includeStaged = true, ignoreUnknown = true, ignore, cwd, } = options ?? {};
|
|
252
274
|
const conditionalEcho = silent ? () => { } : console.log;
|
|
253
275
|
// Get files that differ from base branch/commit (excluding deleted files)
|
|
254
276
|
const diffFromBaseResult = await getDiffFrom(base, {
|
|
@@ -282,7 +304,7 @@ const formatDiffFrom = async (base, options) => {
|
|
|
282
304
|
mut_allFiles.push(...files);
|
|
283
305
|
}
|
|
284
306
|
}
|
|
285
|
-
const allFiles = Arr.uniq(mut_allFiles);
|
|
307
|
+
const allFiles = filterFilesByCwd(Arr.uniq(mut_allFiles), cwd);
|
|
286
308
|
if (!silent) {
|
|
287
309
|
const includedFileTypes = [
|
|
288
310
|
includeUntracked ? 'untracked files' : undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.mjs","sources":["../../src/functions/format.mts"],"sourcesContent":[null],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"format.mjs","sources":["../../src/functions/format.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ts-repo-utils",
|
|
3
|
-
"version": "10.0
|
|
3
|
+
"version": "10.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"keywords": [
|
|
6
6
|
"typescript"
|
|
@@ -115,8 +115,8 @@
|
|
|
115
115
|
"cspell": "10.0.0",
|
|
116
116
|
"dedent": "1.7.2",
|
|
117
117
|
"eslint": "9.39.4",
|
|
118
|
-
"eslint-config-typed": "4.9.
|
|
119
|
-
"github-settings-as-code": "1.2.
|
|
118
|
+
"eslint-config-typed": "4.9.8",
|
|
119
|
+
"github-settings-as-code": "1.2.9",
|
|
120
120
|
"jiti": "2.6.1",
|
|
121
121
|
"markdownlint": "0.40.0",
|
|
122
122
|
"markdownlint-cli2": "0.22.1",
|
|
@@ -126,8 +126,8 @@
|
|
|
126
126
|
"prettier-plugin-packagejson": "3.0.2",
|
|
127
127
|
"rollup": "4.60.2",
|
|
128
128
|
"semantic-release": "25.0.3",
|
|
129
|
-
"ts-codemod-lib": "2.1.
|
|
130
|
-
"ts-repo-utils": "10.0.
|
|
129
|
+
"ts-codemod-lib": "2.1.7",
|
|
130
|
+
"ts-repo-utils": "10.0.3",
|
|
131
131
|
"tslib": "2.8.1",
|
|
132
132
|
"typedoc": "0.28.19",
|
|
133
133
|
"typedoc-github-theme": "0.4.0",
|
|
@@ -6,7 +6,7 @@ import { formatDiffFrom } from '../functions/index.mjs';
|
|
|
6
6
|
|
|
7
7
|
const cmdDef = cmd.command({
|
|
8
8
|
name: 'format-diff-from-cli',
|
|
9
|
-
version: '10.0
|
|
9
|
+
version: '10.1.0',
|
|
10
10
|
args: {
|
|
11
11
|
base: cmd.positional({
|
|
12
12
|
type: cmd.string,
|
|
@@ -41,6 +41,12 @@ const cmdDef = cmd.command({
|
|
|
41
41
|
type: cmd.optional(cmd.boolean),
|
|
42
42
|
description: 'If true, suppresses output messages (default: false)',
|
|
43
43
|
}),
|
|
44
|
+
cwd: cmd.option({
|
|
45
|
+
long: 'cwd',
|
|
46
|
+
type: cmd.optional(cmd.string),
|
|
47
|
+
description:
|
|
48
|
+
'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.',
|
|
49
|
+
}),
|
|
44
50
|
},
|
|
45
51
|
handler: (args) => {
|
|
46
52
|
main({
|
|
@@ -50,6 +56,7 @@ const cmdDef = cmd.command({
|
|
|
50
56
|
excludeStaged: args.excludeStaged ?? false,
|
|
51
57
|
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
52
58
|
silent: args.silent ?? false,
|
|
59
|
+
cwd: args.cwd,
|
|
53
60
|
}).catch((error: unknown) => {
|
|
54
61
|
console.error('An error occurred:', error);
|
|
55
62
|
|
|
@@ -66,6 +73,7 @@ const main = async (
|
|
|
66
73
|
excludeStaged: boolean;
|
|
67
74
|
ignoreUnknown: boolean;
|
|
68
75
|
silent: boolean;
|
|
76
|
+
cwd: string | undefined;
|
|
69
77
|
}>,
|
|
70
78
|
): Promise<void> => {
|
|
71
79
|
const result = await formatDiffFrom(args.base, {
|
|
@@ -74,6 +82,7 @@ const main = async (
|
|
|
74
82
|
includeStaged: !args.excludeStaged,
|
|
75
83
|
ignoreUnknown: args.ignoreUnknown,
|
|
76
84
|
silent: args.silent,
|
|
85
|
+
cwd: args.cwd,
|
|
77
86
|
});
|
|
78
87
|
|
|
79
88
|
if (Result.isErr(result)) {
|
|
@@ -6,7 +6,7 @@ import { formatUncommittedFiles } from '../functions/index.mjs';
|
|
|
6
6
|
|
|
7
7
|
const cmdDef = cmd.command({
|
|
8
8
|
name: 'format-uncommitted-cli',
|
|
9
|
-
version: '10.0
|
|
9
|
+
version: '10.1.0',
|
|
10
10
|
args: {
|
|
11
11
|
excludeUntracked: cmd.flag({
|
|
12
12
|
long: 'exclude-untracked',
|
|
@@ -36,6 +36,12 @@ const cmdDef = cmd.command({
|
|
|
36
36
|
type: cmd.optional(cmd.boolean),
|
|
37
37
|
description: 'If true, suppresses output messages (default: false)',
|
|
38
38
|
}),
|
|
39
|
+
cwd: cmd.option({
|
|
40
|
+
long: 'cwd',
|
|
41
|
+
type: cmd.optional(cmd.string),
|
|
42
|
+
description:
|
|
43
|
+
'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.',
|
|
44
|
+
}),
|
|
39
45
|
},
|
|
40
46
|
handler: (args) => {
|
|
41
47
|
main({
|
|
@@ -44,6 +50,7 @@ const cmdDef = cmd.command({
|
|
|
44
50
|
excludeStaged: args.excludeStaged ?? false,
|
|
45
51
|
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
46
52
|
silent: args.silent ?? false,
|
|
53
|
+
cwd: args.cwd,
|
|
47
54
|
}).catch((error: unknown) => {
|
|
48
55
|
console.error('An error occurred:', error);
|
|
49
56
|
|
|
@@ -59,6 +66,7 @@ const main = async (
|
|
|
59
66
|
excludeStaged: boolean;
|
|
60
67
|
ignoreUnknown: boolean;
|
|
61
68
|
silent: boolean;
|
|
69
|
+
cwd: string | undefined;
|
|
62
70
|
}>,
|
|
63
71
|
): Promise<void> => {
|
|
64
72
|
const result = await formatUncommittedFiles({
|
|
@@ -67,6 +75,7 @@ const main = async (
|
|
|
67
75
|
staged: !args.excludeStaged,
|
|
68
76
|
ignoreUnknown: args.ignoreUnknown,
|
|
69
77
|
silent: args.silent,
|
|
78
|
+
cwd: args.cwd,
|
|
70
79
|
});
|
|
71
80
|
|
|
72
81
|
if (Result.isErr(result)) {
|
package/src/cmd/gen-index-ts.mts
CHANGED
package/src/functions/format.mts
CHANGED
|
@@ -277,6 +277,10 @@ export const formatFilesGlob = async (
|
|
|
277
277
|
* Format only files that have been changed (git status)
|
|
278
278
|
*
|
|
279
279
|
* @param options - Options for formatting
|
|
280
|
+
* @param options.cwd - If provided, only files within this directory will be
|
|
281
|
+
* formatted. Relative paths are resolved against `process.cwd()`. Defaults to
|
|
282
|
+
* undefined (no filtering; all changed files in the repository are
|
|
283
|
+
* formatted).
|
|
280
284
|
*/
|
|
281
285
|
export const formatUncommittedFiles = async (
|
|
282
286
|
options?: Readonly<{
|
|
@@ -286,6 +290,7 @@ export const formatUncommittedFiles = async (
|
|
|
286
290
|
silent?: boolean;
|
|
287
291
|
ignoreUnknown?: boolean;
|
|
288
292
|
ignore?: false | ((filePath: string) => boolean);
|
|
293
|
+
cwd?: string;
|
|
289
294
|
}>,
|
|
290
295
|
): Promise<
|
|
291
296
|
Result<
|
|
@@ -300,6 +305,7 @@ export const formatUncommittedFiles = async (
|
|
|
300
305
|
silent = false,
|
|
301
306
|
ignoreUnknown = true,
|
|
302
307
|
ignore,
|
|
308
|
+
cwd,
|
|
303
309
|
} = options ?? {};
|
|
304
310
|
|
|
305
311
|
const mut_files: string[] = [];
|
|
@@ -349,13 +355,39 @@ export const formatUncommittedFiles = async (
|
|
|
349
355
|
mut_files.push(...stagedFilesResult.value);
|
|
350
356
|
}
|
|
351
357
|
|
|
352
|
-
return formatFiles(Arr.uniq(mut_files), {
|
|
358
|
+
return formatFiles(filterFilesByCwd(Arr.uniq(mut_files), cwd), {
|
|
353
359
|
silent,
|
|
354
360
|
ignoreUnknown,
|
|
355
361
|
ignore,
|
|
356
362
|
});
|
|
357
363
|
};
|
|
358
364
|
|
|
365
|
+
/**
|
|
366
|
+
* Filter a list of file paths to those inside `cwd`. If `cwd` is undefined,
|
|
367
|
+
* returns the original list unchanged. Relative `cwd` is resolved against
|
|
368
|
+
* `process.cwd()`.
|
|
369
|
+
*/
|
|
370
|
+
const filterFilesByCwd = (
|
|
371
|
+
files: readonly string[],
|
|
372
|
+
cwd: string | undefined,
|
|
373
|
+
): readonly string[] => {
|
|
374
|
+
if (cwd === undefined) {
|
|
375
|
+
return files;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
const resolvedCwd = path.resolve(cwd);
|
|
379
|
+
|
|
380
|
+
const cwdWithSep = resolvedCwd.endsWith(path.sep)
|
|
381
|
+
? resolvedCwd
|
|
382
|
+
: (`${resolvedCwd}${path.sep}` as const);
|
|
383
|
+
|
|
384
|
+
return files.filter((file) => {
|
|
385
|
+
const absFile = path.isAbsolute(file) ? file : path.resolve(file);
|
|
386
|
+
|
|
387
|
+
return absFile === resolvedCwd || absFile.startsWith(cwdWithSep);
|
|
388
|
+
});
|
|
389
|
+
};
|
|
390
|
+
|
|
359
391
|
/**
|
|
360
392
|
* Format only files that differ from the specified base branch or commit
|
|
361
393
|
*
|
|
@@ -378,6 +410,13 @@ export const formatDiffFrom = async (
|
|
|
378
410
|
silent?: boolean;
|
|
379
411
|
ignoreUnknown?: boolean;
|
|
380
412
|
ignore?: false | ((filePath: string) => boolean);
|
|
413
|
+
/**
|
|
414
|
+
* If provided, only files within this directory will be formatted.
|
|
415
|
+
* Relative paths are resolved against `process.cwd()`. Defaults to
|
|
416
|
+
* undefined (no filtering; all changed files in the repository are
|
|
417
|
+
* formatted).
|
|
418
|
+
*/
|
|
419
|
+
cwd?: string;
|
|
381
420
|
}>,
|
|
382
421
|
): Promise<
|
|
383
422
|
Result<
|
|
@@ -397,6 +436,7 @@ export const formatDiffFrom = async (
|
|
|
397
436
|
includeStaged = true,
|
|
398
437
|
ignoreUnknown = true,
|
|
399
438
|
ignore,
|
|
439
|
+
cwd,
|
|
400
440
|
} = options ?? {};
|
|
401
441
|
|
|
402
442
|
const conditionalEcho = silent ? () => {} : console.log;
|
|
@@ -443,7 +483,7 @@ export const formatDiffFrom = async (
|
|
|
443
483
|
}
|
|
444
484
|
}
|
|
445
485
|
|
|
446
|
-
const allFiles = Arr.uniq(mut_allFiles);
|
|
486
|
+
const allFiles = filterFilesByCwd(Arr.uniq(mut_allFiles), cwd);
|
|
447
487
|
|
|
448
488
|
if (!silent) {
|
|
449
489
|
const includedFileTypes = [
|
|
@@ -538,6 +538,116 @@ describe(formatUncommittedFiles, () => {
|
|
|
538
538
|
}
|
|
539
539
|
});
|
|
540
540
|
|
|
541
|
+
test('should filter files by cwd when option is provided', async () => {
|
|
542
|
+
await setupTest();
|
|
543
|
+
|
|
544
|
+
try {
|
|
545
|
+
// Create files inside and outside the target subdirectory
|
|
546
|
+
const inside1 = path.join(testDir, 'sub', 'inside1.ts');
|
|
547
|
+
|
|
548
|
+
const inside2 = path.join(testDir, 'sub', 'nested', 'inside2.ts');
|
|
549
|
+
|
|
550
|
+
const outside1 = path.join(testDir, 'outside1.ts');
|
|
551
|
+
|
|
552
|
+
const outside2 = path.join(testDir, 'other', 'outside2.ts');
|
|
553
|
+
|
|
554
|
+
await createTestFile(path.join('sub', 'inside1.ts'), 'const a=1');
|
|
555
|
+
|
|
556
|
+
await createTestFile(
|
|
557
|
+
path.join('sub', 'nested', 'inside2.ts'),
|
|
558
|
+
'const b=2',
|
|
559
|
+
);
|
|
560
|
+
|
|
561
|
+
await createTestFile('outside1.ts', 'const c=3');
|
|
562
|
+
|
|
563
|
+
await createTestFile(path.join('other', 'outside2.ts'), 'const d=4');
|
|
564
|
+
|
|
565
|
+
vi.mocked(getUntrackedFiles).mockResolvedValue(Result.ok([inside1]));
|
|
566
|
+
|
|
567
|
+
vi.mocked(getModifiedFiles).mockResolvedValue(Result.ok([outside1]));
|
|
568
|
+
|
|
569
|
+
vi.mocked(getStagedFiles).mockResolvedValue(
|
|
570
|
+
Result.ok([inside2, outside2]),
|
|
571
|
+
);
|
|
572
|
+
|
|
573
|
+
const result = await formatUncommittedFiles({
|
|
574
|
+
silent: true,
|
|
575
|
+
cwd: path.join(testDir, 'sub'),
|
|
576
|
+
});
|
|
577
|
+
|
|
578
|
+
assert.isTrue(Result.isOk(result));
|
|
579
|
+
|
|
580
|
+
// Files inside cwd should be formatted
|
|
581
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
582
|
+
await expect(fs.readFile(inside1, 'utf8')).resolves.toBe(
|
|
583
|
+
'const a = 1;\n',
|
|
584
|
+
);
|
|
585
|
+
|
|
586
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
587
|
+
await expect(fs.readFile(inside2, 'utf8')).resolves.toBe(
|
|
588
|
+
'const b = 2;\n',
|
|
589
|
+
);
|
|
590
|
+
|
|
591
|
+
// Files outside cwd should be untouched
|
|
592
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
593
|
+
await expect(fs.readFile(outside1, 'utf8')).resolves.toBe('const c=3');
|
|
594
|
+
|
|
595
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
596
|
+
await expect(fs.readFile(outside2, 'utf8')).resolves.toBe('const d=4');
|
|
597
|
+
} finally {
|
|
598
|
+
await cleanupTest();
|
|
599
|
+
}
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
test('should resolve relative cwd against process.cwd()', async () => {
|
|
603
|
+
await setupTest();
|
|
604
|
+
|
|
605
|
+
try {
|
|
606
|
+
const inside = path.join(testDir, 'sub', 'inside.ts');
|
|
607
|
+
|
|
608
|
+
const outside = path.join(testDir, 'outside.ts');
|
|
609
|
+
|
|
610
|
+
await createTestFile(path.join('sub', 'inside.ts'), 'const a=1');
|
|
611
|
+
|
|
612
|
+
await createTestFile('outside.ts', 'const b=2');
|
|
613
|
+
|
|
614
|
+
vi.mocked(getUntrackedFiles).mockResolvedValue(
|
|
615
|
+
Result.ok([inside, outside]),
|
|
616
|
+
);
|
|
617
|
+
|
|
618
|
+
vi.mocked(getModifiedFiles).mockResolvedValue(Result.ok([]));
|
|
619
|
+
|
|
620
|
+
vi.mocked(getStagedFiles).mockResolvedValue(Result.ok([]));
|
|
621
|
+
|
|
622
|
+
// Run with relative cwd value, but chdir to testDir first so that
|
|
623
|
+
// process.cwd() based resolution lands inside testDir/sub
|
|
624
|
+
const originalCwd = process.cwd();
|
|
625
|
+
|
|
626
|
+
process.chdir(testDir);
|
|
627
|
+
|
|
628
|
+
try {
|
|
629
|
+
const result = await formatUncommittedFiles({
|
|
630
|
+
silent: true,
|
|
631
|
+
cwd: './sub',
|
|
632
|
+
});
|
|
633
|
+
|
|
634
|
+
assert.isTrue(Result.isOk(result));
|
|
635
|
+
|
|
636
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
637
|
+
await expect(fs.readFile(inside, 'utf8')).resolves.toBe(
|
|
638
|
+
'const a = 1;\n',
|
|
639
|
+
);
|
|
640
|
+
|
|
641
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
642
|
+
await expect(fs.readFile(outside, 'utf8')).resolves.toBe('const b=2');
|
|
643
|
+
} finally {
|
|
644
|
+
process.chdir(originalCwd);
|
|
645
|
+
}
|
|
646
|
+
} finally {
|
|
647
|
+
await cleanupTest();
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
|
|
541
651
|
test('should return error when getUntrackedFiles fails', async () => {
|
|
542
652
|
await setupTest();
|
|
543
653
|
|
|
@@ -1144,4 +1254,53 @@ describe(formatDiffFrom, () => {
|
|
|
1144
1254
|
await fs.rm(testDir, { recursive: true, force: true });
|
|
1145
1255
|
}
|
|
1146
1256
|
});
|
|
1257
|
+
|
|
1258
|
+
test('should filter files by cwd when option is provided', async () => {
|
|
1259
|
+
vi.clearAllMocks();
|
|
1260
|
+
|
|
1261
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename
|
|
1262
|
+
await fs.mkdir(path.join(testDir, 'sub'), { recursive: true });
|
|
1263
|
+
|
|
1264
|
+
try {
|
|
1265
|
+
const inside = await createTestFile(
|
|
1266
|
+
path.join('sub', 'inside.ts'),
|
|
1267
|
+
dedent`
|
|
1268
|
+
const a=1
|
|
1269
|
+
`,
|
|
1270
|
+
);
|
|
1271
|
+
|
|
1272
|
+
const outside = await createTestFile(
|
|
1273
|
+
'outside.ts',
|
|
1274
|
+
dedent`
|
|
1275
|
+
const b=2
|
|
1276
|
+
`,
|
|
1277
|
+
);
|
|
1278
|
+
|
|
1279
|
+
vi.mocked(getDiffFrom).mockResolvedValue(Result.ok([inside, outside]));
|
|
1280
|
+
|
|
1281
|
+
vi.mocked(getUntrackedFiles).mockResolvedValue(Result.ok([]));
|
|
1282
|
+
|
|
1283
|
+
vi.mocked(getModifiedFiles).mockResolvedValue(Result.ok([]));
|
|
1284
|
+
|
|
1285
|
+
vi.mocked(getStagedFiles).mockResolvedValue(Result.ok([]));
|
|
1286
|
+
|
|
1287
|
+
const result = await formatDiffFrom('main', {
|
|
1288
|
+
silent: true,
|
|
1289
|
+
cwd: path.join(testDir, 'sub'),
|
|
1290
|
+
});
|
|
1291
|
+
|
|
1292
|
+
assert.isTrue(Result.isOk(result));
|
|
1293
|
+
|
|
1294
|
+
// Inside cwd should be formatted, outside should be left untouched
|
|
1295
|
+
await expect(readTestFile(inside)).resolves.toBe(
|
|
1296
|
+
`${dedent`
|
|
1297
|
+
const a = 1;
|
|
1298
|
+
`}\n`,
|
|
1299
|
+
);
|
|
1300
|
+
|
|
1301
|
+
await expect(readTestFile(outside)).resolves.toBe('const b=2');
|
|
1302
|
+
} finally {
|
|
1303
|
+
await fs.rm(testDir, { recursive: true, force: true });
|
|
1304
|
+
}
|
|
1305
|
+
});
|
|
1147
1306
|
});
|