ts-repo-utils 10.0.3 → 10.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,7 +14,7 @@ import '@sindresorhus/is';
14
14
 
15
15
  const cmdDef = cmd.command({
16
16
  name: 'assert-repo-is-clean-cli',
17
- version: '10.0.3',
17
+ version: '10.1.1',
18
18
  args: {
19
19
  silent: cmd.flag({
20
20
  long: 'silent',
@@ -14,7 +14,7 @@ import '@sindresorhus/is';
14
14
 
15
15
  const cmdDef = cmd.command({
16
16
  name: 'check-should-run-type-checks-cli',
17
- version: '10.0.3',
17
+ version: '10.1.1',
18
18
  args: {
19
19
  pathsIgnore: cmd.multioption({
20
20
  long: 'paths-ignore',
@@ -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.3',
16
+ version: '10.1.1',
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":"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"}
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.3',
16
+ version: '10.1.1',
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;AAC7B,SAAA,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC1B,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,IAAI,GAAG,OACX,IAME,KACe;AACjB,IAAA,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;AAC1C,QAAA,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB;AACjC,QAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,eAAe;AAC/B,QAAA,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,MAAM,EAAE,IAAI,CAAC,MAAM;AACpB,KAAA,CAAC;AAEF,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;AACF,CAAC;AAED,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
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;AACF,QAAA,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC;AACd,YAAA,IAAI,EAAE,KAAK;YACX,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;AAC9B,YAAA,WAAW,EACT,8KAA8K;SACjL,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;YAC5B,GAAG,EAAE,IAAI,CAAC,GAAG;AACd,SAAA,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,KAAI;AAC1B,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,IAAI,GAAG,OACX,IAOE,KACe;AACjB,IAAA,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;AAC1C,QAAA,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB;AACjC,QAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,eAAe;AAC/B,QAAA,MAAM,EAAE,CAAC,IAAI,CAAC,aAAa;QAC3B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,EAAE,IAAI,CAAC,GAAG;AACd,KAAA,CAAC;AAEF,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;AACF,CAAC;AAED,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
@@ -35,7 +35,7 @@ cmd.array(t), {
35
35
  });
36
36
  const cmdDef = cmd.command({
37
37
  name: 'gen-index-ts-cli',
38
- version: '10.0.3',
38
+ version: '10.1.1',
39
39
  args: {
40
40
  // required args
41
41
  targetDirectory: cmd.positional({
@@ -68,7 +68,15 @@ const cmdResultToFiles = async ({ cmd, cmdOptionToExcludeDeleted, cmdOptionToInc
68
68
  : cmdOptionToIncludeDeleted,
69
69
  ]
70
70
  .filter((s) => s !== '')
71
- .join(' '), { silent: options?.silent ?? false });
71
+ .join(' '), {
72
+ silent: options?.silent ?? false,
73
+ // Run git from the repository root so that `git ls-files` (which
74
+ // defaults to cwd-relative paths) and other commands return paths
75
+ // relative to the repository root, matching the `path.join(gitRoot, …)`
76
+ // computation below regardless of the caller's current working
77
+ // directory.
78
+ cwd: gitRoot,
79
+ });
72
80
  if (Result.isErr(result)) {
73
81
  return result;
74
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"diff.mjs","sources":["../../src/functions/diff.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAKA;;AAEG;MACU,UAAU,GAAG,OACxB,OAAwC,KACkC;AAC1E,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,+BAA+B,EAAE;AACtD,QAAA,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;AACjC,KAAA,CAAC;AAEF,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9C;AAEA;;;AAGG;AACI,MAAM,iBAAiB,GAAG,OAC/B,OAKE,KAIF,gBAAgB,CAAC;AACf,IAAA,GAAG,EAAE,CAAA,wCAAA,CAA0C;AAC/C,IAAA,yBAAyB,EAAE,EAAE;AAC7B,IAAA,yBAAyB,EAAE,WAAW;IACtC,OAAO;AACR,CAAA;AAEH;;;AAGG;AACI,MAAM,gBAAgB,GAAG,OAC9B,OAKE,KAIF,gBAAgB,CAAC;AACf,IAAA,GAAG,EAAE,CAAA,oBAAA,CAAsB;IAC3B,yBAAyB,EAAE,iBAAiB;AAC5C,IAAA,yBAAyB,EAAE,EAAE;IAC7B,OAAO;AACR,CAAA;AAEH;;;AAGG;AACI,MAAM,cAAc,GAAG,OAC5B,OAKE,KAIF,gBAAgB,CAAC;AACf,IAAA,GAAG,EAAE,CAAA,6BAAA,CAA+B;IACpC,yBAAyB,EAAE,iBAAiB;AAC5C,IAAA,yBAAyB,EAAE,EAAE;IAC7B,OAAO;AACR,CAAA;AAEH;;;AAGG;AACI,MAAM,WAAW,GAAG,OACzB,IAAY,EACZ,OAKE,KAIF,gBAAgB,CAAC;IACf,GAAG,EAAE,CAAA,qBAAA,EAAwB,IAAI,CAAA,CAAE;AACnC,IAAA,yBAAyB,EAAE,iBAAiB;AAC5C,IAAA,yBAAyB,EAAE,EAAE;IAC7B,OAAO;AACR,CAAA;AAEH,MAAM,gBAAgB,GAAG,OAAO,EAC9B,GAAG,EACH,yBAAyB,EACzB,yBAAyB,EACzB,OAAO,GAWP,KAEE;;AAEF,IAAA,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC;AAE5E,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;AAC/B,QAAA,OAAO,aAAa;IACtB;AAEA,IAAA,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK;AAEnC,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,CACpB;QACE,GAAG;AACH,QAAA,CAAC,OAAO,EAAE,cAAc,IAAI,IAAI;AAC9B,cAAE;AACF,cAAE,yBAAyB;AAC9B;SACE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE;AACtB,SAAA,IAAI,CAAC,GAAG,CAAC,EACZ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,EAAE,CACrC;AAED,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACxB,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,KAAK;;IAG/B,MAAM,KAAK,GAAG;SACX,KAAK,CAAC,IAAI;SACV,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;SACzB,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,EAAE;AAC5B,SAAA,GAAG,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAE1D,IAAA,OAAO,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;AACzB,CAAC;;;;"}
1
+ {"version":3,"file":"diff.mjs","sources":["../../src/functions/diff.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;;;;GAIG;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;CAClD,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACT,aAAa,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,OAAO,EAAE,CACnE,CA+DF,CAAC;AAEF;;;;;;;;;;;;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;CAClD,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACP,aAAa,GACb,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,GACF,SAAS,OAAO,EAAE,CACrB,CAwFF,CAAC"}
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":";;;;;;;;AAeA;;;;AAIG;AACI,MAAM,WAAW,GAAG,OACzB,KAAwB,EACxB,OAIE,KACgD;AAClD,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK;AAEvC,IAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,MAAM,KAAK,KAAK;AAE1C,IAAA,MAAM,eAAe,GAAG,MAAM,GAAG,MAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG;AAEvD,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,eAAe,CAAC,oBAAoB,CAAC;AAErC,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;IAC7B;AAEA,IAAA,eAAe,CAAC,CAAA,WAAA,EAAc,KAAK,CAAC,MAAM,CAAA,SAAA,CAAW,CAAC;;IAGtD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAExD,IAAA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,KAAK,GAAG,SAAS;;AAG5E,IAAA,MAAM,cAAc,GAAG,CAAC,QAAgB,KAAY;AAClD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,YAAA,OAAO,QAAQ;QACjB;QAEA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;AAErD,QAAA,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,GAAG,YAAY;AAChE,IAAA,CAAC;;AAGD,IAAA,MAAM,OAAO;;AAEX,IAAA,MAAM,OAAO,CAAC,UAAU,CACtB,KAAK,CAAC,GAAG,CAAC,OAAO,QAAQ,KAAI;AAC3B,QAAA,IAAI;;YAEF,IAAI,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE;gBACjC,eAAe,CACb,+BAA+B,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,CAC1D;AAED,gBAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7B;AAEA,YAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,QAAQ,CAAC,EAAE;gBAC/D,eAAe,CACb,0BAA0B,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,CACrD;AAED,gBAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7B;;YAGA,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE;AACpD,gBAAA,UAAU,EAAE,iBAAiB;AAC9B,aAAA,CAAC;AAEF,YAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,OAAO,EAAE;gBACjC,eAAe,CACb,0BAA0B,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,CACrD;AAED,gBAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7B;AAEA,YAAA,IACE,CAAC,QAAQ;AACT,iBAAC,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC;AAChC,gBAAA,QAAQ,CAAC,cAAc,KAAK,IAAI,EAChC;;gBAEA,eAAe,CACb,8BAA8B,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,CACzD;AAED,gBAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;YAC7B;;;YAIA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;;YAGnD,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;;YAG9D,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE;AAC/C,gBAAA,GAAG,eAAe;AAClB,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC;;AAGF,YAAA,IAAI,SAAS,KAAK,OAAO,EAAE;gBACzB,eAAe,CAAC,cAAc,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,CAAC;YAC3D;iBAAO;;gBAEL,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC;gBAE/C,eAAe,CAAC,cAAc,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAE,CAAC;YAC3D;AAEA,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAC7B;QAAE,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,EAAE;AACX,gBAAA,OAAO,CAAC,KAAK,CACX,CAAA,iBAAA,EAAoB,cAAc,CAAC,QAAQ,CAAC,CAAA,CAAA,CAAG,EAC/C,KAAK,CACN;YACH;AAEA,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B;IACF,CAAC,CAAC,CACH;AAEH,IAAA,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,EAAE;AAClD,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;QAE7C,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AAChC,YAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;QAC7B;aAAO;YACL,MAAM,MAAM,GAAuB;AAChC,iBAAA,MAAM,CAAC,MAAM,CAAC,KAAK;iBACnB,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AAEtB,YAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;QAC3B;IACF;SAAO;QACL,MAAM,MAAM,GAAuB;aAChC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,UAAU;aACrC,GAAG,CAAC,CAAC,CAAC,KAAc,CAAC,CAAC,MAAM,CAAC;AAEhC,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;IAC3B;AACF;AAEA,MAAM,eAAe,GAAG,CAAC,QAAgB,KAAa;IACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAExC,IAAA,QACE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzB,QAAA,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;AAC3B,QAAA,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACtD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,KAC9C,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAC7D,CAAC,KAAK;AAEX,CAAC;AAED,MAAM,WAAW,GAAwB,IAAI,GAAG,CAAC;IAC/C,WAAW;IACX,mBAAmB;IACnB,WAAW;IACX,gBAAgB;IAChB,SAAS;IACT,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,QAAQ;IACR,QAAQ;AACT,CAAA,CAAC;AAEF,MAAM,gBAAgB,GAA4B;IAChD,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,cAAc;CACN;AAEV,MAAM,UAAU,GAAsB;IACpC,cAAc;IACd,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,SAAS;IACT,OAAO;IACP,SAAS;CACD;AAEV;;;;AAIG;AACI,MAAM,eAAe,GAAG,OAC7B,QAAgB,EAChB,OAIE,KACqC;AACvC,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,KAAK;AAEvC,IAAA,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI;AAEpD,IAAA,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;AAE9B,IAAA,MAAM,eAAe,GAAG,MAAM,GAAG,MAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG;;AAGvD,IAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE;AACtC,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,MAAM,EAAE,MAAM,KAAK,KAAK,GAAG,EAAE,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC;AACpE,QAAA,GAAG,EAAE,IAAI;AACV,KAAA,CAAC;AAEF,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;AAC5B,QAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK;QAE9B,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC;QAC/C;AAEA,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;IAC1B;AAEA,IAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK;AAE9B,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACtB,QAAA,eAAe,CAAC,kCAAkC,EAAE,QAAQ,CAAC;AAE7D,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;IAC7B;AAEA,IAAA,OAAO,WAAW,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC;AAC9D;AAEA;;;;;;;;AAQG;MACU,sBAAsB,GAAG,OACpC,OAQE,KAMA;AACF,IAAA,MAAM,EACJ,SAAS,GAAG,IAAI,EAChB,QAAQ,GAAG,IAAI,EACf,MAAM,GAAG,IAAI,EACb,MAAM,GAAG,KAAK,EACd,aAAa,GAAG,IAAI,EACpB,MAAM,EACN,GAAG,GACJ,GAAG,OAAO,IAAI,EAAE;IAEjB,MAAM,SAAS,GAAa,EAAE;IAE9B,IAAI,SAAS,EAAE;QACb,MAAM,oBAAoB,GAAG,MAAM,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;AAEhE,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE;YACtC,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,CAAC,KAAK,CACX,8BAA8B,EAC9B,oBAAoB,CAAC,KAAK,CAC3B;YACH;AAEA,YAAA,OAAO,oBAAoB;QAC7B;QAEA,SAAS,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,KAAK,CAAC;IAC/C;IAEA,IAAI,QAAQ,EAAE;QACZ,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;AAE1D,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;YACjC,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,eAAe,CAAC,KAAK,CAAC;YACtE;AAEA,YAAA,OAAO,eAAe;QACxB;QAEA,SAAS,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC;IAC1C;IAEA,IAAI,MAAM,EAAE;QACV,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;AAE1D,QAAA,IAAI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YACnC,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,iBAAiB,CAAC,KAAK,CAAC;YACxE;AAEA,YAAA,OAAO,iBAAiB;QAC1B;QAEA,SAAS,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC;IAC5C;AAEA,IAAA,OAAO,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE;QAC7D,MAAM;QACN,aAAa;QACb,MAAM;AACP,KAAA,CAAC;AACJ;AAEA;;;;AAIG;AACH,MAAM,gBAAgB,GAAG,CACvB,KAAwB,EACxB,GAAuB,KACF;AACrB,IAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AACrB,QAAA,OAAO,KAAK;IACd;IAEA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAErC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG;AAC9C,UAAE;UACC,GAAG,WAAW,CAAA,EAAG,IAAI,CAAC,GAAG,EAAY;AAE1C,IAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QAEjE,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC;AAClE,IAAA,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;AAYG;AACI,MAAM,cAAc,GAAG,OAC5B,IAAY,EACZ,OAcE,KAUA;;AAEF,IAAA,MAAM,EACJ,MAAM,GAAG,KAAK,EACd,gBAAgB,GAAG,IAAI,EACvB,eAAe,GAAG,IAAI,EACtB,aAAa,GAAG,IAAI,EACpB,aAAa,GAAG,IAAI,EACpB,MAAM,EACN,GAAG,GACJ,GAAG,OAAO,IAAI,EAAE;AAEjB,IAAA,MAAM,eAAe,GAAG,MAAM,GAAG,MAAK,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG;;AAGvD,IAAA,MAAM,kBAAkB,GAAG,MAAM,WAAW,CAAC,IAAI,EAAE;QACjD,MAAM;AACP,KAAA,CAAC;AAEF,IAAA,IAAI,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE;QACpC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,kBAAkB,CAAC,KAAK,CAAC;QACzE;AAEA,QAAA,OAAO,kBAAkB;IAC3B;AAEA,IAAA,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAK;AAE1C,IAAA,MAAM,YAAY,GAAa,SAAS,CAAC,KAAK,EAAE;;IAGhD,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI;QAC/B,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,iBAAiB,EAAE;QACpE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE;QACjE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,cAAc,EAAE;AAC5D,KAAA,EAAE;QACD,IAAI,IAAI,EAAE;;YAER,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;AAExC,YAAA,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC7B,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,CAAC,KAAK,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAA,OAAA,CAAS,EAAE,WAAW,CAAC,KAAK,CAAC;gBAClE;AAEA,gBAAA,OAAO,WAAW;YACpB;AAEA,YAAA,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK;;AAG/B,YAAA,YAAY,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;QAC7B;IACF;AAEA,IAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC;IAE9D,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,MAAM,iBAAiB,GAAG;AACxB,YAAA,gBAAgB,GAAG,iBAAiB,GAAG,SAAS;AAChD,YAAA,eAAe,GAAG,gBAAgB,GAAG,SAAS;AAC9C,YAAA,aAAa,GAAG,cAAc,GAAG,SAAS;AAC3C,SAAA,CAAC,MAAM,CAAC,cAAc,CAAC;AAExB,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,CAAA,kCAAA,EAAqC,IAAI,CAAA,CAAE;YAC3C;iBACG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KACR,CAAC,KAAK,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,CAAA,EAAA,EAAK,CAAC,CAAA,CAAE,GAAG,CAAA,KAAA,EAAQ,CAAC,CAAA,CAAE;iBAE5D,IAAI,CAAC,EAAE,CAAC;AACZ,SAAA,CAAC,IAAI,CAAC,EAAE,CAAC;AAEV,QAAA,eAAe,CAAC,CAAA,EAAG,OAAO,GAAG,EAAE,QAAQ,CAAC;IAC1C;AAEA,IAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,eAAe,CAAC,oBAAoB,CAAC;AAErC,QAAA,OAAO,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC;IAC7B;IAEA,OAAO,WAAW,CAAC,QAAQ,EAAE;QAC3B,MAAM;QACN,aAAa;QACb,MAAM;AACP,KAAA,CAAC;AACJ;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-repo-utils",
3
- "version": "10.0.3",
3
+ "version": "10.1.1",
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.7",
119
- "github-settings-as-code": "1.2.8",
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.6",
130
- "ts-repo-utils": "10.0.2",
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",
@@ -5,7 +5,7 @@ import { assertRepoIsClean } from '../functions/index.mjs';
5
5
 
6
6
  const cmdDef = cmd.command({
7
7
  name: 'assert-repo-is-clean-cli',
8
- version: '10.0.3',
8
+ version: '10.1.1',
9
9
  args: {
10
10
  silent: cmd.flag({
11
11
  long: 'silent',
@@ -5,7 +5,7 @@ import { checkShouldRunTypeChecks } from '../functions/index.mjs';
5
5
 
6
6
  const cmdDef = cmd.command({
7
7
  name: 'check-should-run-type-checks-cli',
8
- version: '10.0.3',
8
+ version: '10.1.1',
9
9
  args: {
10
10
  pathsIgnore: cmd.multioption({
11
11
  long: 'paths-ignore',
@@ -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.3',
9
+ version: '10.1.1',
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.3',
9
+ version: '10.1.1',
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)) {
@@ -46,7 +46,7 @@ const nonEmptyArray = <T extends cmd.Type<any, any>>(
46
46
 
47
47
  const cmdDef = cmd.command({
48
48
  name: 'gen-index-ts-cli',
49
- version: '10.0.3',
49
+ version: '10.1.1',
50
50
  args: {
51
51
  // required args
52
52
  targetDirectory: cmd.positional({
@@ -141,7 +141,15 @@ const cmdResultToFiles = async ({
141
141
  ]
142
142
  .filter((s) => s !== '')
143
143
  .join(' '),
144
- { silent: options?.silent ?? false },
144
+ {
145
+ silent: options?.silent ?? false,
146
+ // Run git from the repository root so that `git ls-files` (which
147
+ // defaults to cwd-relative paths) and other commands return paths
148
+ // relative to the repository root, matching the `path.join(gitRoot, …)`
149
+ // computation below regardless of the caller's current working
150
+ // directory.
151
+ cwd: gitRoot,
152
+ },
145
153
  );
146
154
 
147
155
  if (Result.isErr(result)) {
@@ -143,6 +143,48 @@ describe('diff', () => {
143
143
  }
144
144
  });
145
145
 
146
+ test('should resolve paths correctly when invoked from a subdirectory', async () => {
147
+ const { repoPath, cleanup } = await createTempRepo();
148
+
149
+ try {
150
+ // Create a subdirectory and an untracked file inside it
151
+ const subDir = path.join(repoPath, 'sub');
152
+
153
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
154
+ await fs.mkdir(subDir);
155
+
156
+ const testFileName =
157
+ `test-untracked-${crypto.randomUUID()}.tmp` as const;
158
+
159
+ const testFilePath = path.join(subDir, testFileName);
160
+
161
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
162
+ await fs.writeFile(testFilePath, 'test content');
163
+
164
+ // Invoke getUntrackedFiles from the subdirectory (not from repo root).
165
+ // Without the cwd fix, git ls-files would return paths relative to
166
+ // the subdirectory, which would then be incorrectly joined with
167
+ // gitRoot.
168
+ const originalCwd = process.cwd();
169
+
170
+ process.chdir(subDir);
171
+
172
+ try {
173
+ const result = await getUntrackedFiles({ silent: true });
174
+
175
+ assert.isTrue(Result.isOk(result));
176
+
177
+ if (Result.isOk(result)) {
178
+ expect(result.value).toContain(testFilePath);
179
+ }
180
+ } finally {
181
+ process.chdir(originalCwd);
182
+ }
183
+ } finally {
184
+ await cleanup();
185
+ }
186
+ });
187
+
146
188
  test('should detect modified existing files', async () => {
147
189
  const { repoPath, cleanup, execInRepo } = await createTempRepo();
148
190
 
@@ -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
  });