ts-repo-utils 7.1.0 → 7.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +176 -3
- 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 +7 -0
- package/dist/functions/format.d.mts.map +1 -1
- package/dist/functions/format.mjs +22 -5
- package/dist/functions/format.mjs.map +1 -1
- package/package.json +1 -1
- package/src/cmd/assert-repo-is-clean.mts +1 -1
- package/src/cmd/check-should-run-type-checks.mts +1 -1
- package/src/cmd/format-diff-from.mts +9 -1
- package/src/cmd/format-uncommitted.mts +9 -1
- package/src/cmd/gen-index-ts.mts +1 -1
- package/src/functions/format.mts +37 -4
package/README.md
CHANGED
|
@@ -90,6 +90,7 @@ npm exec -- format-uncommitted --silent
|
|
|
90
90
|
- `--exclude-modified` - Exclude modified files (default: false)
|
|
91
91
|
- `--exclude-staged` - Exclude staged files (default: false)
|
|
92
92
|
- `--silent` - Suppress output messages (default: false)
|
|
93
|
+
- `--ignore-unknown` - Skip files without a Prettier parser instead of erroring (default: true)
|
|
93
94
|
|
|
94
95
|
### `format-diff-from`
|
|
95
96
|
|
|
@@ -119,6 +120,7 @@ npm exec -- format-diff-from main --silent
|
|
|
119
120
|
- `--exclude-modified` - Exclude modified files (default: false)
|
|
120
121
|
- `--exclude-staged` - Exclude staged files (default: false)
|
|
121
122
|
- `--silent` - Suppress output messages (default: false)
|
|
123
|
+
- `--ignore-unknown` - Skip files without a Prettier parser instead of erroring (default: true)
|
|
122
124
|
|
|
123
125
|
### `check-should-run-type-checks`
|
|
124
126
|
|
|
@@ -323,6 +325,52 @@ type Ret = Result<
|
|
|
323
325
|
>;
|
|
324
326
|
```
|
|
325
327
|
|
|
328
|
+
### Build Optimization Utilities
|
|
329
|
+
|
|
330
|
+
#### `checkShouldRunTypeChecks(options?): Promise<boolean>`
|
|
331
|
+
|
|
332
|
+
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.
|
|
333
|
+
|
|
334
|
+
```typescript
|
|
335
|
+
import { checkShouldRunTypeChecks } from 'ts-repo-utils';
|
|
336
|
+
|
|
337
|
+
// Use default settings (compare against origin/main)
|
|
338
|
+
const shouldRun = await checkShouldRunTypeChecks();
|
|
339
|
+
|
|
340
|
+
if (shouldRun) {
|
|
341
|
+
await $('npm run type-check');
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
// Custom ignore patterns and base branch
|
|
345
|
+
const shouldRun = await checkShouldRunTypeChecks({
|
|
346
|
+
pathsIgnore: ['.eslintrc.json', 'docs/', '**.md', 'scripts/'],
|
|
347
|
+
baseBranch: 'origin/develop',
|
|
348
|
+
});
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Options:**
|
|
352
|
+
|
|
353
|
+
- `pathsIgnore?` - Patterns to ignore when checking if type checks should run:
|
|
354
|
+
- Exact file matches: `.cspell.json`
|
|
355
|
+
- Directory prefixes: `docs/` (matches any file in docs directory)
|
|
356
|
+
- File extensions: `**.md` (matches any markdown file)
|
|
357
|
+
- Default: `['LICENSE', '.editorconfig', '.gitignore', '.cspell.json', '.markdownlint-cli2.mjs', '.npmignore', '.prettierignore', '.prettierrc', 'docs/', '**.md', '**.txt']`
|
|
358
|
+
- `baseBranch?` - Base branch to compare against (default: `origin/main`)
|
|
359
|
+
|
|
360
|
+
**GitHub Actions Integration:**
|
|
361
|
+
|
|
362
|
+
When running in GitHub Actions, sets `GITHUB_OUTPUT` with `should_run=true/false`:
|
|
363
|
+
|
|
364
|
+
```yaml
|
|
365
|
+
- name: Check if type checks should run
|
|
366
|
+
id: check_diff
|
|
367
|
+
run: npx check-should-run-type-checks
|
|
368
|
+
|
|
369
|
+
- name: Run type checks
|
|
370
|
+
if: steps.check_diff.outputs.should_run == 'true'
|
|
371
|
+
run: npm run type-check
|
|
372
|
+
```
|
|
373
|
+
|
|
326
374
|
### Command Execution
|
|
327
375
|
|
|
328
376
|
#### `$(command: string, options?: ExecOptions): Promise<ExecResult>`
|
|
@@ -359,7 +407,7 @@ type Ret = Promise<
|
|
|
359
407
|
|
|
360
408
|
### Code Formatting Utilities
|
|
361
409
|
|
|
362
|
-
#### `formatFilesGlob(pathGlob: string): Promise<Result<undefined, unknown>>`
|
|
410
|
+
#### `formatFilesGlob(pathGlob: string, options?): Promise<Result<undefined, unknown>>`
|
|
363
411
|
|
|
364
412
|
Format files matching a glob pattern using Prettier.
|
|
365
413
|
|
|
@@ -371,13 +419,21 @@ await formatFilesGlob('src/**/*.ts');
|
|
|
371
419
|
|
|
372
420
|
// Format specific files
|
|
373
421
|
await formatFilesGlob('src/{index,utils}.ts');
|
|
422
|
+
|
|
423
|
+
// With custom ignore function
|
|
424
|
+
await formatFilesGlob('src/**/*.ts', {
|
|
425
|
+
ignore: (filePath) => filePath.includes('generated'),
|
|
426
|
+
ignoreUnknown: false, // Error on files without parser
|
|
427
|
+
});
|
|
374
428
|
```
|
|
375
429
|
|
|
376
430
|
**Options:**
|
|
377
431
|
|
|
378
432
|
- `silent?` - Suppress output messages (default: false)
|
|
433
|
+
- `ignoreUnknown?` - Skip files without a Prettier parser instead of erroring (default: true)
|
|
434
|
+
- `ignore?` - Custom function to ignore files (default: built-in ignore list)
|
|
379
435
|
|
|
380
|
-
#### `formatUncommittedFiles(): Promise<Result>`
|
|
436
|
+
#### `formatUncommittedFiles(options?): Promise<Result>`
|
|
381
437
|
|
|
382
438
|
Format only files that have been changed according to git status.
|
|
383
439
|
|
|
@@ -386,6 +442,12 @@ import { formatUncommittedFiles } from 'ts-repo-utils';
|
|
|
386
442
|
|
|
387
443
|
// Format only modified files
|
|
388
444
|
await formatUncommittedFiles();
|
|
445
|
+
|
|
446
|
+
// With custom options
|
|
447
|
+
await formatUncommittedFiles({
|
|
448
|
+
untracked: false, // Skip untracked files
|
|
449
|
+
ignore: (filePath) => filePath.includes('test'),
|
|
450
|
+
});
|
|
389
451
|
```
|
|
390
452
|
|
|
391
453
|
**Options:**
|
|
@@ -394,6 +456,8 @@ await formatUncommittedFiles();
|
|
|
394
456
|
- `modified?` - Format modified files (default: true)
|
|
395
457
|
- `staged?` - Format staged files (default: true)
|
|
396
458
|
- `silent?` - Suppress output messages (default: false)
|
|
459
|
+
- `ignoreUnknown?` - Skip files without a Prettier parser instead of erroring (default: true)
|
|
460
|
+
- `ignore?` - Custom function to ignore files (default: built-in ignore list)
|
|
397
461
|
|
|
398
462
|
**Return Type:**
|
|
399
463
|
|
|
@@ -406,7 +470,7 @@ type Ret = Promise<
|
|
|
406
470
|
>;
|
|
407
471
|
```
|
|
408
472
|
|
|
409
|
-
#### `formatDiffFrom(base: string): Promise<Result>`
|
|
473
|
+
#### `formatDiffFrom(base: string, options?): Promise<Result>`
|
|
410
474
|
|
|
411
475
|
Format only files that differ from the specified base branch or commit.
|
|
412
476
|
|
|
@@ -418,6 +482,13 @@ await formatDiffFrom('main');
|
|
|
418
482
|
|
|
419
483
|
// Format files different from specific commit
|
|
420
484
|
await formatDiffFrom('abc123');
|
|
485
|
+
|
|
486
|
+
// With custom options
|
|
487
|
+
await formatDiffFrom('main', {
|
|
488
|
+
includeUntracked: false,
|
|
489
|
+
ignore: (filePath) => filePath.includes('vendor'),
|
|
490
|
+
ignoreUnknown: false, // Error on files without parser
|
|
491
|
+
});
|
|
421
492
|
```
|
|
422
493
|
|
|
423
494
|
**Options:**
|
|
@@ -426,6 +497,8 @@ await formatDiffFrom('abc123');
|
|
|
426
497
|
- `includeModified?` - Include modified files in addition to diff files (default: true)
|
|
427
498
|
- `includeStaged?` - Include staged files in addition to diff files (default: true)
|
|
428
499
|
- `silent?` - Suppress output messages (default: false)
|
|
500
|
+
- `ignoreUnknown?` - Skip files without a Prettier parser instead of erroring (default: true)
|
|
501
|
+
- `ignore?` - Custom function to ignore files (default: built-in ignore list)
|
|
429
502
|
|
|
430
503
|
**Return Type:**
|
|
431
504
|
|
|
@@ -438,6 +511,106 @@ type Ret = Promise<
|
|
|
438
511
|
>;
|
|
439
512
|
```
|
|
440
513
|
|
|
514
|
+
### Workspace Management Utilities
|
|
515
|
+
|
|
516
|
+
#### `runCmdInStagesAcrossWorkspaces(options): Promise<void>`
|
|
517
|
+
|
|
518
|
+
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.
|
|
519
|
+
|
|
520
|
+
```typescript
|
|
521
|
+
import { runCmdInStagesAcrossWorkspaces } from 'ts-repo-utils';
|
|
522
|
+
|
|
523
|
+
// Run build in dependency order
|
|
524
|
+
await runCmdInStagesAcrossWorkspaces({
|
|
525
|
+
rootPackageJsonDir: '.',
|
|
526
|
+
cmd: 'build',
|
|
527
|
+
concurrency: 3,
|
|
528
|
+
filterWorkspacePattern: (name) => !name.includes('deprecated'),
|
|
529
|
+
});
|
|
530
|
+
```
|
|
531
|
+
|
|
532
|
+
**Options:**
|
|
533
|
+
|
|
534
|
+
- `rootPackageJsonDir` - Directory containing the root package.json file
|
|
535
|
+
- `cmd` - The npm script command to execute in each package
|
|
536
|
+
- `concurrency?` - Maximum packages to process simultaneously within each stage (default: 3)
|
|
537
|
+
- `filterWorkspacePattern?` - Optional function to filter packages by name
|
|
538
|
+
|
|
539
|
+
#### `runCmdInParallelAcrossWorkspaces(options): Promise<void>`
|
|
540
|
+
|
|
541
|
+
Executes a npm script command across all workspace packages in parallel. Uses fail-fast behavior - stops execution immediately when any package fails.
|
|
542
|
+
|
|
543
|
+
```typescript
|
|
544
|
+
import { runCmdInParallelAcrossWorkspaces } from 'ts-repo-utils';
|
|
545
|
+
|
|
546
|
+
// Run tests in parallel across all packages
|
|
547
|
+
await runCmdInParallelAcrossWorkspaces({
|
|
548
|
+
rootPackageJsonDir: '.',
|
|
549
|
+
cmd: 'test',
|
|
550
|
+
concurrency: 5,
|
|
551
|
+
});
|
|
552
|
+
```
|
|
553
|
+
|
|
554
|
+
**Options:**
|
|
555
|
+
|
|
556
|
+
- `rootPackageJsonDir` - Directory containing the root package.json file
|
|
557
|
+
- `cmd` - The npm script command to execute in each package
|
|
558
|
+
- `concurrency?` - Maximum packages to process simultaneously (default: 3)
|
|
559
|
+
- `filterWorkspacePattern?` - Optional function to filter packages by name
|
|
560
|
+
|
|
561
|
+
#### `getWorkspacePackages(rootPackageJsonDir): Promise<readonly Package[]>`
|
|
562
|
+
|
|
563
|
+
Retrieves all workspace packages from a monorepo based on the workspace patterns defined in the root package.json file.
|
|
564
|
+
|
|
565
|
+
```typescript
|
|
566
|
+
import { getWorkspacePackages } from 'ts-repo-utils';
|
|
567
|
+
|
|
568
|
+
const packages = await getWorkspacePackages('.');
|
|
569
|
+
console.log(packages.map((pkg) => pkg.name));
|
|
570
|
+
// ['@myorg/package-a', '@myorg/package-b', ...]
|
|
571
|
+
```
|
|
572
|
+
|
|
573
|
+
**Return Type:**
|
|
574
|
+
|
|
575
|
+
```typescript
|
|
576
|
+
type Package = {
|
|
577
|
+
name: string;
|
|
578
|
+
path: string;
|
|
579
|
+
packageJson: JsonValue;
|
|
580
|
+
dependencies: Record<string, string>;
|
|
581
|
+
};
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
#### `executeParallel(packages, scriptName, concurrency?): Promise<readonly Result[]>`
|
|
585
|
+
|
|
586
|
+
Executes a npm script across multiple packages in parallel with a concurrency limit. Lower-level function used by `runCmdInParallelAcrossWorkspaces`.
|
|
587
|
+
|
|
588
|
+
```typescript
|
|
589
|
+
import { executeParallel, getWorkspacePackages } from 'ts-repo-utils';
|
|
590
|
+
|
|
591
|
+
const packages = await getWorkspacePackages('.');
|
|
592
|
+
await executeParallel(packages, 'lint', 4);
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
#### `executeStages(packages, scriptName, concurrency?): Promise<void>`
|
|
596
|
+
|
|
597
|
+
Executes a npm script across packages in dependency order stages. Lower-level function used by `runCmdInStagesAcrossWorkspaces`.
|
|
598
|
+
|
|
599
|
+
```typescript
|
|
600
|
+
import { executeStages, getWorkspacePackages } from 'ts-repo-utils';
|
|
601
|
+
|
|
602
|
+
const packages = await getWorkspacePackages('.');
|
|
603
|
+
await executeStages(packages, 'build', 3);
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
**Features:**
|
|
607
|
+
|
|
608
|
+
- Automatic dependency graph construction
|
|
609
|
+
- Topological sorting for correct build order
|
|
610
|
+
- Parallel execution within each stage
|
|
611
|
+
- Fail-fast behavior on errors
|
|
612
|
+
- Circular dependency detection
|
|
613
|
+
|
|
441
614
|
### Index File Generation
|
|
442
615
|
|
|
443
616
|
#### `genIndex(config: GenIndexConfig): Promise<Result<undefined, unknown>>`
|
|
@@ -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.
|
|
12
|
+
version: '7.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
base: cmd.positional({
|
|
15
15
|
type: cmd.string,
|
|
@@ -31,6 +31,11 @@ const cmdDef = cmd.command({
|
|
|
31
31
|
type: cmd.optional(cmd.boolean),
|
|
32
32
|
description: 'Exclude staged files in addition to diff files (default: false)',
|
|
33
33
|
}),
|
|
34
|
+
ignoreUnknown: cmd.flag({
|
|
35
|
+
long: 'ignore-unknown',
|
|
36
|
+
type: cmd.optional(cmd.boolean),
|
|
37
|
+
description: 'Ignore unknown files (default: true)',
|
|
38
|
+
}),
|
|
34
39
|
silent: cmd.flag({
|
|
35
40
|
long: 'silent',
|
|
36
41
|
type: cmd.optional(cmd.boolean),
|
|
@@ -43,6 +48,7 @@ const cmdDef = cmd.command({
|
|
|
43
48
|
excludeUntracked: args.excludeUntracked ?? false,
|
|
44
49
|
excludeModified: args.excludeModified ?? false,
|
|
45
50
|
excludeStaged: args.excludeStaged ?? false,
|
|
51
|
+
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
46
52
|
silent: args.silent ?? false,
|
|
47
53
|
}).catch((error) => {
|
|
48
54
|
console.error('An error occurred:', error);
|
|
@@ -55,6 +61,7 @@ const main = async (args) => {
|
|
|
55
61
|
includeUntracked: !args.excludeUntracked,
|
|
56
62
|
includeModified: !args.excludeModified,
|
|
57
63
|
includeStaged: !args.excludeStaged,
|
|
64
|
+
ignoreUnknown: args.ignoreUnknown,
|
|
58
65
|
silent: args.silent,
|
|
59
66
|
});
|
|
60
67
|
if (Result.isErr(result)) {
|
|
@@ -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,OAAO;AAChB,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,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,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,SAAA,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAC1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,IAAI,GAAG,OACX,
|
|
1
|
+
{"version":3,"file":"format-diff-from.mjs","sources":["../../src/cmd/format-diff-from.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import 'child_process';
|
|
|
9
9
|
|
|
10
10
|
const cmdDef = cmd.command({
|
|
11
11
|
name: 'format-uncommitted-cli',
|
|
12
|
-
version: '7.
|
|
12
|
+
version: '7.2.0',
|
|
13
13
|
args: {
|
|
14
14
|
excludeUntracked: cmd.flag({
|
|
15
15
|
long: 'exclude-untracked',
|
|
@@ -26,6 +26,11 @@ const cmdDef = cmd.command({
|
|
|
26
26
|
type: cmd.optional(cmd.boolean),
|
|
27
27
|
description: 'Exclude staged files in addition to diff files (default: false)',
|
|
28
28
|
}),
|
|
29
|
+
ignoreUnknown: cmd.flag({
|
|
30
|
+
long: 'ignore-unknown',
|
|
31
|
+
type: cmd.optional(cmd.boolean),
|
|
32
|
+
description: 'Ignore unknown files (default: true)',
|
|
33
|
+
}),
|
|
29
34
|
silent: cmd.flag({
|
|
30
35
|
long: 'silent',
|
|
31
36
|
type: cmd.optional(cmd.boolean),
|
|
@@ -37,6 +42,7 @@ const cmdDef = cmd.command({
|
|
|
37
42
|
excludeUntracked: args.excludeUntracked ?? false,
|
|
38
43
|
excludeModified: args.excludeModified ?? false,
|
|
39
44
|
excludeStaged: args.excludeStaged ?? false,
|
|
45
|
+
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
40
46
|
silent: args.silent ?? false,
|
|
41
47
|
}).catch((error) => {
|
|
42
48
|
console.error('An error occurred:', error);
|
|
@@ -49,6 +55,7 @@ const main = async (args) => {
|
|
|
49
55
|
untracked: !args.excludeUntracked,
|
|
50
56
|
modified: !args.excludeModified,
|
|
51
57
|
staged: !args.excludeStaged,
|
|
58
|
+
ignoreUnknown: args.ignoreUnknown,
|
|
52
59
|
silent: args.silent,
|
|
53
60
|
});
|
|
54
61
|
if (Result.isErr(result)) {
|
|
@@ -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,OAAO;AAChB,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,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,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;AAC7B,SAAA,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAC1C,YAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,QAAA,CAAC,CAAC;IACJ,CAAC;AACF,CAAA,CAAC;AAEF,MAAM,IAAI,GAAG,OACX,
|
|
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,OAAO;AAChB,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,KAAK,KAAI;AACjB,YAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC;AAC1C,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;AACF,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"}
|
|
@@ -9,6 +9,7 @@ import '../node-global.mjs';
|
|
|
9
9
|
export declare const formatFiles: (files: readonly string[], options?: Readonly<{
|
|
10
10
|
silent?: boolean;
|
|
11
11
|
ignore?: (filePath: string) => boolean;
|
|
12
|
+
ignoreUnknown?: boolean;
|
|
12
13
|
}>) => Promise<Result<undefined, readonly unknown[]>>;
|
|
13
14
|
/**
|
|
14
15
|
* Format files matching the given glob pattern using Prettier
|
|
@@ -17,6 +18,8 @@ export declare const formatFiles: (files: readonly string[], options?: Readonly<
|
|
|
17
18
|
*/
|
|
18
19
|
export declare const formatFilesGlob: (pathGlob: string, options?: Readonly<{
|
|
19
20
|
silent?: boolean;
|
|
21
|
+
ignoreUnknown?: boolean;
|
|
22
|
+
ignore?: (filePath: string) => boolean;
|
|
20
23
|
}>) => Promise<Result<undefined, unknown>>;
|
|
21
24
|
/**
|
|
22
25
|
* Format only files that have been changed (git status)
|
|
@@ -28,6 +31,8 @@ export declare const formatUncommittedFiles: (options?: Readonly<{
|
|
|
28
31
|
modified?: boolean;
|
|
29
32
|
staged?: boolean;
|
|
30
33
|
silent?: boolean;
|
|
34
|
+
ignoreUnknown?: boolean;
|
|
35
|
+
ignore?: (filePath: string) => boolean;
|
|
31
36
|
}>) => Promise<Result<undefined, ExecException | Readonly<{
|
|
32
37
|
message: string;
|
|
33
38
|
}> | readonly unknown[]>>;
|
|
@@ -49,6 +54,8 @@ export declare const formatDiffFrom: (base: string, options?: Readonly<{
|
|
|
49
54
|
includeModified?: boolean;
|
|
50
55
|
includeStaged?: boolean;
|
|
51
56
|
silent?: boolean;
|
|
57
|
+
ignoreUnknown?: boolean;
|
|
58
|
+
ignore?: (filePath: string) => boolean;
|
|
52
59
|
}>) => Promise<Result<undefined, ExecException | Readonly<{
|
|
53
60
|
message: string;
|
|
54
61
|
}> | 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;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;
|
|
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;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC,CAiG/C,CAAC;AAuDF;;;;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,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,CAAC,KACD,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CA0BpC,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,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACT,aAAa,GAAG,QAAQ,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,OAAO,EAAE,CACnE,CA4DF,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,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACxC,CAAC,KACD,OAAO,CACR,MAAM,CACJ,SAAS,EACP,aAAa,GACb,QAAQ,CAAC;IACP,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,GACF,SAAS,OAAO,EAAE,CACrB,CAoFF,CAAC"}
|
|
@@ -43,6 +43,12 @@ const formatFiles = async (files, options) => {
|
|
|
43
43
|
conditionalEcho(`Skipping ignored file: ${filePath}`);
|
|
44
44
|
return Result.ok(undefined);
|
|
45
45
|
}
|
|
46
|
+
if ((options?.ignoreUnknown ?? true) &&
|
|
47
|
+
fileInfo.inferredParser === null) {
|
|
48
|
+
// Silently skip files with no parser
|
|
49
|
+
conditionalEcho(`Skipping file (no parser): ${filePath}`);
|
|
50
|
+
return Result.ok(undefined);
|
|
51
|
+
}
|
|
46
52
|
// Format the content
|
|
47
53
|
const formatted = await prettier.format(content, {
|
|
48
54
|
...prettierOptions,
|
|
@@ -98,6 +104,7 @@ const ignoreFiles = new Set([
|
|
|
98
104
|
'.prettierignore',
|
|
99
105
|
'.editorconfig',
|
|
100
106
|
'.gitignore',
|
|
107
|
+
'.npmignore',
|
|
101
108
|
]);
|
|
102
109
|
const ignoreExtensions = [
|
|
103
110
|
'.svg',
|
|
@@ -136,6 +143,8 @@ const ignoreDirs = [
|
|
|
136
143
|
*/
|
|
137
144
|
const formatFilesGlob = async (pathGlob, options) => {
|
|
138
145
|
const silent = options?.silent ?? false;
|
|
146
|
+
const ignoreUnknown = options?.ignoreUnknown ?? true;
|
|
147
|
+
const ignore = options?.ignore;
|
|
139
148
|
const conditionalEcho = silent ? () => { } : echo;
|
|
140
149
|
try {
|
|
141
150
|
// Find all files matching the glob
|
|
@@ -148,7 +157,7 @@ const formatFilesGlob = async (pathGlob, options) => {
|
|
|
148
157
|
conditionalEcho('No files found matching pattern:', pathGlob);
|
|
149
158
|
return Result.ok(undefined);
|
|
150
159
|
}
|
|
151
|
-
return await formatFiles(files, { silent });
|
|
160
|
+
return await formatFiles(files, { silent, ignoreUnknown, ignore });
|
|
152
161
|
}
|
|
153
162
|
catch (error) {
|
|
154
163
|
if (!silent) {
|
|
@@ -163,7 +172,7 @@ const formatFilesGlob = async (pathGlob, options) => {
|
|
|
163
172
|
* @param options - Options for formatting
|
|
164
173
|
*/
|
|
165
174
|
const formatUncommittedFiles = async (options) => {
|
|
166
|
-
const { untracked = true, modified = true, staged = true, silent = false, } = options ?? {};
|
|
175
|
+
const { untracked = true, modified = true, staged = true, silent = false, ignoreUnknown = true, ignore, } = options ?? {};
|
|
167
176
|
const mut_files = [];
|
|
168
177
|
if (untracked) {
|
|
169
178
|
const untrackedFilesResult = await getUntrackedFiles({ silent });
|
|
@@ -195,7 +204,11 @@ const formatUncommittedFiles = async (options) => {
|
|
|
195
204
|
}
|
|
196
205
|
mut_files.push(...stagedFilesResult.value);
|
|
197
206
|
}
|
|
198
|
-
return formatFiles(Arr.uniq(mut_files), {
|
|
207
|
+
return formatFiles(Arr.uniq(mut_files), {
|
|
208
|
+
silent,
|
|
209
|
+
ignoreUnknown,
|
|
210
|
+
ignore,
|
|
211
|
+
});
|
|
199
212
|
};
|
|
200
213
|
/**
|
|
201
214
|
* Format only files that differ from the specified base branch or commit
|
|
@@ -212,7 +225,7 @@ const formatUncommittedFiles = async (options) => {
|
|
|
212
225
|
*/
|
|
213
226
|
const formatDiffFrom = async (base, options) => {
|
|
214
227
|
// const silent = options?.silent ?? false;
|
|
215
|
-
const { silent = false, includeUntracked = true, includeModified = true, includeStaged = true, } = options ?? {};
|
|
228
|
+
const { silent = false, includeUntracked = true, includeModified = true, includeStaged = true, ignoreUnknown = true, ignore, } = options ?? {};
|
|
216
229
|
const conditionalEcho = silent ? () => { } : echo;
|
|
217
230
|
// Get files that differ from base branch/commit (excluding deleted files)
|
|
218
231
|
const diffFromBaseResult = await getDiffFrom(base, {
|
|
@@ -265,7 +278,11 @@ const formatDiffFrom = async (base, options) => {
|
|
|
265
278
|
conditionalEcho('No files to format');
|
|
266
279
|
return Result.ok(undefined);
|
|
267
280
|
}
|
|
268
|
-
return formatFiles(allFiles, {
|
|
281
|
+
return formatFiles(allFiles, {
|
|
282
|
+
silent,
|
|
283
|
+
ignoreUnknown,
|
|
284
|
+
ignore,
|
|
285
|
+
});
|
|
269
286
|
};
|
|
270
287
|
|
|
271
288
|
export { formatDiffFrom, formatFiles, formatFilesGlob, formatUncommittedFiles };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.mjs","sources":["../../src/functions/format.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAWA;;;;AAIG;AACI,MAAM,WAAW,GAAG,OACzB,KAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"format.mjs","sources":["../../src/functions/format.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -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.
|
|
9
|
+
version: '7.2.0',
|
|
10
10
|
args: {
|
|
11
11
|
base: cmd.positional({
|
|
12
12
|
type: cmd.string,
|
|
@@ -31,6 +31,11 @@ const cmdDef = cmd.command({
|
|
|
31
31
|
description:
|
|
32
32
|
'Exclude staged files in addition to diff files (default: false)',
|
|
33
33
|
}),
|
|
34
|
+
ignoreUnknown: cmd.flag({
|
|
35
|
+
long: 'ignore-unknown',
|
|
36
|
+
type: cmd.optional(cmd.boolean),
|
|
37
|
+
description: 'Ignore unknown files (default: true)',
|
|
38
|
+
}),
|
|
34
39
|
silent: cmd.flag({
|
|
35
40
|
long: 'silent',
|
|
36
41
|
type: cmd.optional(cmd.boolean),
|
|
@@ -43,6 +48,7 @@ const cmdDef = cmd.command({
|
|
|
43
48
|
excludeUntracked: args.excludeUntracked ?? false,
|
|
44
49
|
excludeModified: args.excludeModified ?? false,
|
|
45
50
|
excludeStaged: args.excludeStaged ?? false,
|
|
51
|
+
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
46
52
|
silent: args.silent ?? false,
|
|
47
53
|
}).catch((error) => {
|
|
48
54
|
console.error('An error occurred:', error);
|
|
@@ -57,6 +63,7 @@ const main = async (
|
|
|
57
63
|
excludeUntracked: boolean;
|
|
58
64
|
excludeModified: boolean;
|
|
59
65
|
excludeStaged: boolean;
|
|
66
|
+
ignoreUnknown: boolean;
|
|
60
67
|
silent: boolean;
|
|
61
68
|
}>,
|
|
62
69
|
): Promise<void> => {
|
|
@@ -64,6 +71,7 @@ const main = async (
|
|
|
64
71
|
includeUntracked: !args.excludeUntracked,
|
|
65
72
|
includeModified: !args.excludeModified,
|
|
66
73
|
includeStaged: !args.excludeStaged,
|
|
74
|
+
ignoreUnknown: args.ignoreUnknown,
|
|
67
75
|
silent: args.silent,
|
|
68
76
|
});
|
|
69
77
|
|
|
@@ -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.
|
|
9
|
+
version: '7.2.0',
|
|
10
10
|
args: {
|
|
11
11
|
excludeUntracked: cmd.flag({
|
|
12
12
|
long: 'exclude-untracked',
|
|
@@ -26,6 +26,11 @@ const cmdDef = cmd.command({
|
|
|
26
26
|
description:
|
|
27
27
|
'Exclude staged files in addition to diff files (default: false)',
|
|
28
28
|
}),
|
|
29
|
+
ignoreUnknown: cmd.flag({
|
|
30
|
+
long: 'ignore-unknown',
|
|
31
|
+
type: cmd.optional(cmd.boolean),
|
|
32
|
+
description: 'Ignore unknown files (default: true)',
|
|
33
|
+
}),
|
|
29
34
|
silent: cmd.flag({
|
|
30
35
|
long: 'silent',
|
|
31
36
|
type: cmd.optional(cmd.boolean),
|
|
@@ -37,6 +42,7 @@ const cmdDef = cmd.command({
|
|
|
37
42
|
excludeUntracked: args.excludeUntracked ?? false,
|
|
38
43
|
excludeModified: args.excludeModified ?? false,
|
|
39
44
|
excludeStaged: args.excludeStaged ?? false,
|
|
45
|
+
ignoreUnknown: args.ignoreUnknown ?? true,
|
|
40
46
|
silent: args.silent ?? false,
|
|
41
47
|
}).catch((error) => {
|
|
42
48
|
console.error('An error occurred:', error);
|
|
@@ -50,6 +56,7 @@ const main = async (
|
|
|
50
56
|
excludeUntracked: boolean;
|
|
51
57
|
excludeModified: boolean;
|
|
52
58
|
excludeStaged: boolean;
|
|
59
|
+
ignoreUnknown: boolean;
|
|
53
60
|
silent: boolean;
|
|
54
61
|
}>,
|
|
55
62
|
): Promise<void> => {
|
|
@@ -57,6 +64,7 @@ const main = async (
|
|
|
57
64
|
untracked: !args.excludeUntracked,
|
|
58
65
|
modified: !args.excludeModified,
|
|
59
66
|
staged: !args.excludeStaged,
|
|
67
|
+
ignoreUnknown: args.ignoreUnknown,
|
|
60
68
|
silent: args.silent,
|
|
61
69
|
});
|
|
62
70
|
if (Result.isErr(result)) {
|
package/src/cmd/gen-index-ts.mts
CHANGED
package/src/functions/format.mts
CHANGED
|
@@ -19,6 +19,7 @@ export const formatFiles = async (
|
|
|
19
19
|
options?: Readonly<{
|
|
20
20
|
silent?: boolean;
|
|
21
21
|
ignore?: (filePath: string) => boolean;
|
|
22
|
+
ignoreUnknown?: boolean;
|
|
22
23
|
}>,
|
|
23
24
|
): Promise<Result<undefined, readonly unknown[]>> => {
|
|
24
25
|
const silent = options?.silent ?? false;
|
|
@@ -66,6 +67,15 @@ export const formatFiles = async (
|
|
|
66
67
|
return Result.ok(undefined);
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
if (
|
|
71
|
+
(options?.ignoreUnknown ?? true) &&
|
|
72
|
+
fileInfo.inferredParser === null
|
|
73
|
+
) {
|
|
74
|
+
// Silently skip files with no parser
|
|
75
|
+
conditionalEcho(`Skipping file (no parser): ${filePath}`);
|
|
76
|
+
return Result.ok(undefined);
|
|
77
|
+
}
|
|
78
|
+
|
|
69
79
|
// Format the content
|
|
70
80
|
const formatted = await prettier.format(content, {
|
|
71
81
|
...prettierOptions,
|
|
@@ -128,6 +138,7 @@ const ignoreFiles: ReadonlySet<string> = new Set([
|
|
|
128
138
|
'.prettierignore',
|
|
129
139
|
'.editorconfig',
|
|
130
140
|
'.gitignore',
|
|
141
|
+
'.npmignore',
|
|
131
142
|
]);
|
|
132
143
|
|
|
133
144
|
const ignoreExtensions: readonly string[] = [
|
|
@@ -169,9 +180,15 @@ const ignoreDirs: readonly string[] = [
|
|
|
169
180
|
*/
|
|
170
181
|
export const formatFilesGlob = async (
|
|
171
182
|
pathGlob: string,
|
|
172
|
-
options?: Readonly<{
|
|
183
|
+
options?: Readonly<{
|
|
184
|
+
silent?: boolean;
|
|
185
|
+
ignoreUnknown?: boolean;
|
|
186
|
+
ignore?: (filePath: string) => boolean;
|
|
187
|
+
}>,
|
|
173
188
|
): Promise<Result<undefined, unknown>> => {
|
|
174
189
|
const silent = options?.silent ?? false;
|
|
190
|
+
const ignoreUnknown = options?.ignoreUnknown ?? true;
|
|
191
|
+
const ignore = options?.ignore;
|
|
175
192
|
const conditionalEcho = silent ? () => {} : echo;
|
|
176
193
|
|
|
177
194
|
try {
|
|
@@ -187,7 +204,7 @@ export const formatFilesGlob = async (
|
|
|
187
204
|
return Result.ok(undefined);
|
|
188
205
|
}
|
|
189
206
|
|
|
190
|
-
return await formatFiles(files, { silent });
|
|
207
|
+
return await formatFiles(files, { silent, ignoreUnknown, ignore });
|
|
191
208
|
} catch (error) {
|
|
192
209
|
if (!silent) {
|
|
193
210
|
console.error('Error in formatFiles:', error);
|
|
@@ -207,6 +224,8 @@ export const formatUncommittedFiles = async (
|
|
|
207
224
|
modified?: boolean;
|
|
208
225
|
staged?: boolean;
|
|
209
226
|
silent?: boolean;
|
|
227
|
+
ignoreUnknown?: boolean;
|
|
228
|
+
ignore?: (filePath: string) => boolean;
|
|
210
229
|
}>,
|
|
211
230
|
): Promise<
|
|
212
231
|
Result<
|
|
@@ -219,6 +238,8 @@ export const formatUncommittedFiles = async (
|
|
|
219
238
|
modified = true,
|
|
220
239
|
staged = true,
|
|
221
240
|
silent = false,
|
|
241
|
+
ignoreUnknown = true,
|
|
242
|
+
ignore,
|
|
222
243
|
} = options ?? {};
|
|
223
244
|
|
|
224
245
|
const mut_files: string[] = [];
|
|
@@ -265,7 +286,11 @@ export const formatUncommittedFiles = async (
|
|
|
265
286
|
mut_files.push(...stagedFilesResult.value);
|
|
266
287
|
}
|
|
267
288
|
|
|
268
|
-
return formatFiles(Arr.uniq(mut_files), {
|
|
289
|
+
return formatFiles(Arr.uniq(mut_files), {
|
|
290
|
+
silent,
|
|
291
|
+
ignoreUnknown,
|
|
292
|
+
ignore,
|
|
293
|
+
});
|
|
269
294
|
};
|
|
270
295
|
|
|
271
296
|
/**
|
|
@@ -288,6 +313,8 @@ export const formatDiffFrom = async (
|
|
|
288
313
|
includeModified?: boolean;
|
|
289
314
|
includeStaged?: boolean;
|
|
290
315
|
silent?: boolean;
|
|
316
|
+
ignoreUnknown?: boolean;
|
|
317
|
+
ignore?: (filePath: string) => boolean;
|
|
291
318
|
}>,
|
|
292
319
|
): Promise<
|
|
293
320
|
Result<
|
|
@@ -305,6 +332,8 @@ export const formatDiffFrom = async (
|
|
|
305
332
|
includeUntracked = true,
|
|
306
333
|
includeModified = true,
|
|
307
334
|
includeStaged = true,
|
|
335
|
+
ignoreUnknown = true,
|
|
336
|
+
ignore,
|
|
308
337
|
} = options ?? {};
|
|
309
338
|
|
|
310
339
|
const conditionalEcho = silent ? () => {} : echo;
|
|
@@ -374,5 +403,9 @@ export const formatDiffFrom = async (
|
|
|
374
403
|
return Result.ok(undefined);
|
|
375
404
|
}
|
|
376
405
|
|
|
377
|
-
return formatFiles(allFiles, {
|
|
406
|
+
return formatFiles(allFiles, {
|
|
407
|
+
silent,
|
|
408
|
+
ignoreUnknown,
|
|
409
|
+
ignore,
|
|
410
|
+
});
|
|
378
411
|
};
|