ts-repo-utils 7.0.4 → 7.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.
package/README.md CHANGED
@@ -323,6 +323,52 @@ type Ret = Result<
323
323
  >;
324
324
  ```
325
325
 
326
+ ### Build Optimization Utilities
327
+
328
+ #### `checkShouldRunTypeChecks(options?): Promise<boolean>`
329
+
330
+ Checks if TypeScript type checks should run based on the diff from a base branch. Optimizes CI/CD pipelines by skipping type checks when only non-TypeScript files are changed.
331
+
332
+ ```typescript
333
+ import { checkShouldRunTypeChecks } from 'ts-repo-utils';
334
+
335
+ // Use default settings (compare against origin/main)
336
+ const shouldRun = await checkShouldRunTypeChecks();
337
+
338
+ if (shouldRun) {
339
+ await $('npm run type-check');
340
+ }
341
+
342
+ // Custom ignore patterns and base branch
343
+ const shouldRun = await checkShouldRunTypeChecks({
344
+ pathsIgnore: ['.eslintrc.json', 'docs/', '**.md', 'scripts/'],
345
+ baseBranch: 'origin/develop',
346
+ });
347
+ ```
348
+
349
+ **Options:**
350
+
351
+ - `pathsIgnore?` - Patterns to ignore when checking if type checks should run:
352
+ - Exact file matches: `.cspell.json`
353
+ - Directory prefixes: `docs/` (matches any file in docs directory)
354
+ - File extensions: `**.md` (matches any markdown file)
355
+ - Default: `['LICENSE', '.editorconfig', '.gitignore', '.cspell.json', '.markdownlint-cli2.mjs', '.npmignore', '.prettierignore', '.prettierrc', 'docs/', '**.md', '**.txt']`
356
+ - `baseBranch?` - Base branch to compare against (default: `origin/main`)
357
+
358
+ **GitHub Actions Integration:**
359
+
360
+ When running in GitHub Actions, sets `GITHUB_OUTPUT` with `should_run=true/false`:
361
+
362
+ ```yaml
363
+ - name: Check if type checks should run
364
+ id: check_diff
365
+ run: npx check-should-run-type-checks
366
+
367
+ - name: Run type checks
368
+ if: steps.check_diff.outputs.should_run == 'true'
369
+ run: npm run type-check
370
+ ```
371
+
326
372
  ### Command Execution
327
373
 
328
374
  #### `$(command: string, options?: ExecOptions): Promise<ExecResult>`
@@ -438,6 +484,106 @@ type Ret = Promise<
438
484
  >;
439
485
  ```
440
486
 
487
+ ### Workspace Management Utilities
488
+
489
+ #### `runCmdInStagesAcrossWorkspaces(options): Promise<void>`
490
+
491
+ Executes a npm script command across all workspace packages in dependency order stages. Packages are grouped into stages where each stage contains packages whose dependencies have been completed in previous stages. Uses fail-fast behavior.
492
+
493
+ ```typescript
494
+ import { runCmdInStagesAcrossWorkspaces } from 'ts-repo-utils';
495
+
496
+ // Run build in dependency order
497
+ await runCmdInStagesAcrossWorkspaces({
498
+ rootPackageJsonDir: '.',
499
+ cmd: 'build',
500
+ concurrency: 3,
501
+ filterWorkspacePattern: (name) => !name.includes('deprecated'),
502
+ });
503
+ ```
504
+
505
+ **Options:**
506
+
507
+ - `rootPackageJsonDir` - Directory containing the root package.json file
508
+ - `cmd` - The npm script command to execute in each package
509
+ - `concurrency?` - Maximum packages to process simultaneously within each stage (default: 3)
510
+ - `filterWorkspacePattern?` - Optional function to filter packages by name
511
+
512
+ #### `runCmdInParallelAcrossWorkspaces(options): Promise<void>`
513
+
514
+ Executes a npm script command across all workspace packages in parallel. Uses fail-fast behavior - stops execution immediately when any package fails.
515
+
516
+ ```typescript
517
+ import { runCmdInParallelAcrossWorkspaces } from 'ts-repo-utils';
518
+
519
+ // Run tests in parallel across all packages
520
+ await runCmdInParallelAcrossWorkspaces({
521
+ rootPackageJsonDir: '.',
522
+ cmd: 'test',
523
+ concurrency: 5,
524
+ });
525
+ ```
526
+
527
+ **Options:**
528
+
529
+ - `rootPackageJsonDir` - Directory containing the root package.json file
530
+ - `cmd` - The npm script command to execute in each package
531
+ - `concurrency?` - Maximum packages to process simultaneously (default: 3)
532
+ - `filterWorkspacePattern?` - Optional function to filter packages by name
533
+
534
+ #### `getWorkspacePackages(rootPackageJsonDir): Promise<readonly Package[]>`
535
+
536
+ Retrieves all workspace packages from a monorepo based on the workspace patterns defined in the root package.json file.
537
+
538
+ ```typescript
539
+ import { getWorkspacePackages } from 'ts-repo-utils';
540
+
541
+ const packages = await getWorkspacePackages('.');
542
+ console.log(packages.map((pkg) => pkg.name));
543
+ // ['@myorg/package-a', '@myorg/package-b', ...]
544
+ ```
545
+
546
+ **Return Type:**
547
+
548
+ ```typescript
549
+ type Package = {
550
+ name: string;
551
+ path: string;
552
+ packageJson: JsonValue;
553
+ dependencies: Record<string, string>;
554
+ };
555
+ ```
556
+
557
+ #### `executeParallel(packages, scriptName, concurrency?): Promise<readonly Result[]>`
558
+
559
+ Executes a npm script across multiple packages in parallel with a concurrency limit. Lower-level function used by `runCmdInParallelAcrossWorkspaces`.
560
+
561
+ ```typescript
562
+ import { executeParallel, getWorkspacePackages } from 'ts-repo-utils';
563
+
564
+ const packages = await getWorkspacePackages('.');
565
+ await executeParallel(packages, 'lint', 4);
566
+ ```
567
+
568
+ #### `executeStages(packages, scriptName, concurrency?): Promise<void>`
569
+
570
+ Executes a npm script across packages in dependency order stages. Lower-level function used by `runCmdInStagesAcrossWorkspaces`.
571
+
572
+ ```typescript
573
+ import { executeStages, getWorkspacePackages } from 'ts-repo-utils';
574
+
575
+ const packages = await getWorkspacePackages('.');
576
+ await executeStages(packages, 'build', 3);
577
+ ```
578
+
579
+ **Features:**
580
+
581
+ - Automatic dependency graph construction
582
+ - Topological sorting for correct build order
583
+ - Parallel execution within each stage
584
+ - Fail-fast behavior on errors
585
+ - Circular dependency detection
586
+
441
587
  ### Index File Generation
442
588
 
443
589
  #### `genIndex(config: GenIndexConfig): Promise<Result<undefined, unknown>>`
@@ -10,7 +10,7 @@ import 'child_process';
10
10
 
11
11
  const cmdDef = cmd.command({
12
12
  name: 'assert-repo-is-clean-cli',
13
- version: '7.0.4',
13
+ version: '7.1.1',
14
14
  args: {
15
15
  silent: cmd.flag({
16
16
  long: 'silent',
@@ -10,7 +10,7 @@ import 'child_process';
10
10
 
11
11
  const cmdDef = cmd.command({
12
12
  name: 'check-should-run-type-checks-cli',
13
- version: '7.0.4',
13
+ version: '7.1.1',
14
14
  args: {
15
15
  pathsIgnore: cmd.multioption({
16
16
  long: 'paths-ignore',
@@ -9,7 +9,7 @@ import 'child_process';
9
9
 
10
10
  const cmdDef = cmd.command({
11
11
  name: 'format-diff-from-cli',
12
- version: '7.0.4',
12
+ version: '7.1.1',
13
13
  args: {
14
14
  base: cmd.positional({
15
15
  type: cmd.string,
@@ -9,7 +9,7 @@ import 'child_process';
9
9
 
10
10
  const cmdDef = cmd.command({
11
11
  name: 'format-uncommitted-cli',
12
- version: '7.0.4',
12
+ version: '7.1.1',
13
13
  args: {
14
14
  excludeUntracked: cmd.flag({
15
15
  long: 'exclude-untracked',
@@ -28,7 +28,7 @@ const nonEmptyArray = (t, commandName) => cmd.extendType(cmd.array(t), {
28
28
  });
29
29
  const cmdDef = cmd.command({
30
30
  name: 'gen-index-ts-cli',
31
- version: '7.0.4',
31
+ version: '7.1.1',
32
32
  args: {
33
33
  // required args
34
34
  targetDirectory: cmd.positional({
@@ -8,6 +8,7 @@ import '../node-global.mjs';
8
8
  */
9
9
  export declare const formatFiles: (files: readonly string[], options?: Readonly<{
10
10
  silent?: boolean;
11
+ ignore?: (filePath: string) => boolean;
11
12
  }>) => Promise<Result<undefined, readonly unknown[]>>;
12
13
  /**
13
14
  * Format files matching the given glob pattern using Prettier
@@ -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;AAExD,OAAO,EAAuB,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,oBAAoB,CAAC;AAQ5B;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,MAAM,EAAE,EACxB,UAAU,QAAQ,CAAC;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC,CAqF/C,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,UAAU,QAAQ,CAAC;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAwBpC,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;CAClB,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACT,aAAa,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,OAAO,EAAE,CACnE,CAsDF,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;CAClB,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACP,aAAa,GACb,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,GACF,SAAS,OAAO,EAAE,CACrB,CA8EF,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;AAExD,OAAO,EAAuB,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,oBAAoB,CAAC;AAQ5B;;;;GAIG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,SAAS,MAAM,EAAE,EACxB,UAAU,QAAQ,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC,CAwF/C,CAAC;AAuDF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,MAAM,EAChB,UAAU,QAAQ,CAAC;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,KACvC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAwBpC,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;CAClB,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACT,aAAa,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,OAAO,EAAE,CACnE,CAsDF,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;CAClB,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACP,aAAa,GACb,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,GACF,SAAS,OAAO,EAAE,CACrB,CA8EF,CAAC"}
@@ -38,7 +38,8 @@ const formatFiles = async (files, options) => {
38
38
  const fileInfo = await prettier.getFileInfo(filePath, {
39
39
  ignorePath: '.prettierignore',
40
40
  });
41
- if (fileInfo.ignored) {
41
+ if (fileInfo.ignored ||
42
+ (options?.ignore ?? defaultIgnoreFn)(filePath)) {
42
43
  conditionalEcho(`Skipping ignored file: ${filePath}`);
43
44
  return Result.ok(undefined);
44
45
  }
@@ -83,6 +84,52 @@ const formatFiles = async (files, options) => {
83
84
  return Result.err(errors);
84
85
  }
85
86
  };
87
+ const defaultIgnoreFn = (filePath) => {
88
+ const filename = path.basename(filePath);
89
+ return (ignoreFiles.has(filename) ||
90
+ filename.startsWith('.env') ||
91
+ ignoreExtensions.some((ext) => filePath.endsWith(ext)) ||
92
+ ignoreDirs.some((dir) => filename.startsWith(dir)));
93
+ };
94
+ const ignoreFiles = new Set([
95
+ '.DS_Store',
96
+ 'package-lock.json',
97
+ 'LICENSE',
98
+ '.prettierignore',
99
+ '.editorconfig',
100
+ '.gitignore',
101
+ '.npmignore',
102
+ ]);
103
+ const ignoreExtensions = [
104
+ '.svg',
105
+ '.png',
106
+ '.jpg',
107
+ '.jpeg',
108
+ '.gif',
109
+ '.bmp',
110
+ '.tiff',
111
+ '.bak',
112
+ '.log',
113
+ '.zip',
114
+ '.tar',
115
+ '.gz',
116
+ '.7z',
117
+ '.mp3',
118
+ '.mp4',
119
+ '.avi',
120
+ '.mkv',
121
+ '.tsbuildinfo',
122
+ ];
123
+ const ignoreDirs = [
124
+ 'node_modules',
125
+ '.git',
126
+ 'dist',
127
+ 'build',
128
+ 'out',
129
+ '.cache',
130
+ '.vscode',
131
+ '.yarn',
132
+ ];
86
133
  /**
87
134
  * Format files matching the given glob pattern using Prettier
88
135
  *
@@ -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": "7.0.4",
3
+ "version": "7.1.1",
4
4
  "private": false,
5
5
  "keywords": [
6
6
  "typescript"
@@ -81,14 +81,14 @@
81
81
  "@semantic-release/git": "^10.0.1",
82
82
  "@semantic-release/github": "^11.0.5",
83
83
  "@semantic-release/npm": "^12.0.2",
84
- "@semantic-release/release-notes-generator": "^14.0.3",
84
+ "@semantic-release/release-notes-generator": "^14.1.0",
85
85
  "@types/node": "^24.3.0",
86
86
  "@vitest/coverage-v8": "^3.2.4",
87
87
  "@vitest/ui": "^3.2.4",
88
88
  "conventional-changelog-conventionalcommits": "^9.1.0",
89
89
  "cspell": "^9.2.0",
90
90
  "dedent": "^1.6.0",
91
- "eslint": "^9.34.0",
91
+ "eslint": "^9.35.0",
92
92
  "eslint-import-resolver-typescript": "4.4.4",
93
93
  "eslint-plugin-array-func": "5.0.2",
94
94
  "eslint-plugin-functional": "9.0.2",
@@ -96,7 +96,7 @@
96
96
  "eslint-plugin-prefer-arrow-functions": "3.6.2",
97
97
  "eslint-plugin-promise": "7.2.1",
98
98
  "eslint-plugin-security": "3.0.1",
99
- "eslint-plugin-unicorn": "60.0.0",
99
+ "eslint-plugin-unicorn": "61.0.1",
100
100
  "eslint-plugin-vitest": "0.5.4",
101
101
  "markdownlint-cli2": "^0.18.1",
102
102
  "npm-run-all2": "^8.0.4",
@@ -104,14 +104,14 @@
104
104
  "prettier-plugin-jsdoc": "^1.3.3",
105
105
  "prettier-plugin-organize-imports": "^4.2.0",
106
106
  "prettier-plugin-packagejson": "^2.5.19",
107
- "rollup": "^4.48.0",
107
+ "rollup": "^4.49.0",
108
108
  "semantic-release": "^24.2.7",
109
109
  "ts-type-forge": "^2.1.1",
110
110
  "tslib": "^2.8.1",
111
- "typedoc": "^0.28.11",
111
+ "typedoc": "^0.28.12",
112
112
  "typedoc-plugin-markdown": "^4.8.1",
113
113
  "typescript": "^5.9.2",
114
- "typescript-eslint": "^8.40.0",
114
+ "typescript-eslint": "^8.42.0",
115
115
  "vitest": "^3.2.4"
116
116
  },
117
117
  "peerDependencies": {
@@ -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: '7.0.4',
8
+ version: '7.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: '7.0.4',
8
+ version: '7.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: '7.0.4',
9
+ version: '7.1.1',
10
10
  args: {
11
11
  base: cmd.positional({
12
12
  type: cmd.string,
@@ -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: '7.0.4',
9
+ version: '7.1.1',
10
10
  args: {
11
11
  excludeUntracked: cmd.flag({
12
12
  long: 'exclude-untracked',
@@ -38,7 +38,7 @@ const nonEmptyArray = <T extends cmd.Type<any, any>>(
38
38
 
39
39
  const cmdDef = cmd.command({
40
40
  name: 'gen-index-ts-cli',
41
- version: '7.0.4',
41
+ version: '7.1.1',
42
42
  args: {
43
43
  // required args
44
44
  targetDirectory: cmd.positional({
@@ -16,7 +16,10 @@ import {
16
16
  */
17
17
  export const formatFiles = async (
18
18
  files: readonly string[],
19
- options?: Readonly<{ silent?: boolean }>,
19
+ options?: Readonly<{
20
+ silent?: boolean;
21
+ ignore?: (filePath: string) => boolean;
22
+ }>,
20
23
  ): Promise<Result<undefined, readonly unknown[]>> => {
21
24
  const silent = options?.silent ?? false;
22
25
 
@@ -55,7 +58,10 @@ export const formatFiles = async (
55
58
  ignorePath: '.prettierignore',
56
59
  });
57
60
 
58
- if (fileInfo.ignored) {
61
+ if (
62
+ fileInfo.ignored ||
63
+ (options?.ignore ?? defaultIgnoreFn)(filePath)
64
+ ) {
59
65
  conditionalEcho(`Skipping ignored file: ${filePath}`);
60
66
  return Result.ok(undefined);
61
67
  }
@@ -104,6 +110,59 @@ export const formatFiles = async (
104
110
  }
105
111
  };
106
112
 
113
+ const defaultIgnoreFn = (filePath: string): boolean => {
114
+ const filename = path.basename(filePath);
115
+
116
+ return (
117
+ ignoreFiles.has(filename) ||
118
+ filename.startsWith('.env') ||
119
+ ignoreExtensions.some((ext) => filePath.endsWith(ext)) ||
120
+ ignoreDirs.some((dir) => filename.startsWith(dir))
121
+ );
122
+ };
123
+
124
+ const ignoreFiles: ReadonlySet<string> = new Set([
125
+ '.DS_Store',
126
+ 'package-lock.json',
127
+ 'LICENSE',
128
+ '.prettierignore',
129
+ '.editorconfig',
130
+ '.gitignore',
131
+ '.npmignore',
132
+ ]);
133
+
134
+ const ignoreExtensions: readonly string[] = [
135
+ '.svg',
136
+ '.png',
137
+ '.jpg',
138
+ '.jpeg',
139
+ '.gif',
140
+ '.bmp',
141
+ '.tiff',
142
+ '.bak',
143
+ '.log',
144
+ '.zip',
145
+ '.tar',
146
+ '.gz',
147
+ '.7z',
148
+ '.mp3',
149
+ '.mp4',
150
+ '.avi',
151
+ '.mkv',
152
+ '.tsbuildinfo',
153
+ ] as const;
154
+
155
+ const ignoreDirs: readonly string[] = [
156
+ 'node_modules',
157
+ '.git',
158
+ 'dist',
159
+ 'build',
160
+ 'out',
161
+ '.cache',
162
+ '.vscode',
163
+ '.yarn',
164
+ ] as const;
165
+
107
166
  /**
108
167
  * Format files matching the given glob pattern using Prettier
109
168
  *