@christiango/unbarrel 0.12.11 → 0.12.12
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
|
@@ -14,7 +14,10 @@ npm install -g @christiango/unbarrel
|
|
|
14
14
|
|
|
15
15
|
#### `unbarrel fix <barrelFile>`
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
Fixes problematic patterns in a barrel file. By default, all fixes are applied:
|
|
18
|
+
|
|
19
|
+
1. **Flatten `export *`** — Converts `export * from '...'` statements into explicit named exports.
|
|
20
|
+
2. **Fix barrel references** — Resolves re-exports that go through intermediate barrel files to point directly to the true source module.
|
|
18
21
|
|
|
19
22
|
```bash
|
|
20
23
|
unbarrel fix ./src/index.ts
|
|
@@ -24,17 +27,37 @@ unbarrel fix ./src/index.ts
|
|
|
24
27
|
|
|
25
28
|
```typescript
|
|
26
29
|
export * from './utils';
|
|
27
|
-
export
|
|
30
|
+
export { Button } from './components'; // ./components/index.ts is a barrel file
|
|
28
31
|
```
|
|
29
32
|
|
|
30
33
|
**After:**
|
|
31
34
|
|
|
32
35
|
```typescript
|
|
33
36
|
export { helper, formatDate } from './utils';
|
|
34
|
-
export { Button
|
|
37
|
+
export { Button } from './components/Button'; // points to the true source
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
##### Options
|
|
41
|
+
|
|
42
|
+
| Option | Description |
|
|
43
|
+
| ------------------------- | --------------------------------------------------------------------------- |
|
|
44
|
+
| `--flatten-export-star` | Only flatten `export *` statements into explicit named exports. |
|
|
45
|
+
| `--fix-barrel-references` | Only resolve re-exports through barrel files to point to their true source. |
|
|
46
|
+
|
|
47
|
+
When neither option is passed, all fixes are applied. Pass one or both to selectively enable specific fixes.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
# Only flatten export * statements
|
|
51
|
+
unbarrel fix --flatten-export-star ./src/index.ts
|
|
52
|
+
|
|
53
|
+
# Only resolve barrel file re-exports
|
|
54
|
+
unbarrel fix --fix-barrel-references ./src/index.ts
|
|
55
|
+
|
|
56
|
+
# Both (equivalent to no flags)
|
|
57
|
+
unbarrel fix --flatten-export-star --fix-barrel-references ./src/index.ts
|
|
35
58
|
```
|
|
36
59
|
|
|
37
|
-
This improves tree-shaking and reduces the performance overhead caused by wildcard re-exports.
|
|
60
|
+
This improves tree-shaking and reduces the performance overhead caused by wildcard re-exports and nested barrel files.
|
|
38
61
|
|
|
39
62
|
### Ignoring exports
|
|
40
63
|
|
package/lib/cli.js
CHANGED
|
@@ -43,11 +43,21 @@ program
|
|
|
43
43
|
.command('fix')
|
|
44
44
|
.description('Convert all export * from ... statements in a barrel file to explicit exports')
|
|
45
45
|
.argument('<barrelFile>', 'Path to the barrel file to process')
|
|
46
|
-
.
|
|
46
|
+
.option('--flatten-export-star', 'Flatten export * statements into explicit named exports')
|
|
47
|
+
.option('--fix-barrel-references', 'Resolve re-exports through barrel files to point to their true source')
|
|
48
|
+
.action((barrelFile, options) => {
|
|
47
49
|
try {
|
|
48
50
|
const absolutePath = path.resolve(barrelFile);
|
|
49
51
|
console.log(`Processing barrel file: ${absolutePath}`);
|
|
50
|
-
|
|
52
|
+
const hasExplicitFixes = options.flattenExportStar || options.fixBarrelReferences;
|
|
53
|
+
(0, fixIssuesInBarrelFile_1.fixIssuesInBarrelFile)(absolutePath, hasExplicitFixes
|
|
54
|
+
? {
|
|
55
|
+
enabledFixes: {
|
|
56
|
+
flattenExportStar: options.flattenExportStar,
|
|
57
|
+
fixBarrelReferences: options.fixBarrelReferences,
|
|
58
|
+
},
|
|
59
|
+
}
|
|
60
|
+
: {});
|
|
51
61
|
console.log('Successfully fixed barrel file');
|
|
52
62
|
}
|
|
53
63
|
catch (error) {
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,mEAAgE;AAEhE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjG,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+EAA+E,CAAC;KAC5F,QAAQ,CAAC,cAAc,EAAE,oCAAoC,CAAC;KAC9D,MAAM,CAAC,CAAC,UAAkB,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,2CAA6B;AAC7B,mEAAgE;AAEhE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,yCAAyC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAEjG,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,+EAA+E,CAAC;KAC5F,QAAQ,CAAC,cAAc,EAAE,oCAAoC,CAAC;KAC9D,MAAM,CAAC,uBAAuB,EAAE,yDAAyD,CAAC;KAC1F,MAAM,CAAC,yBAAyB,EAAE,uEAAuE,CAAC;KAC1G,MAAM,CAAC,CAAC,UAAkB,EAAE,OAAuE,EAAE,EAAE;IACtG,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QAEvD,MAAM,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,IAAI,OAAO,CAAC,mBAAmB,CAAC;QAClF,IAAA,6CAAqB,EACnB,YAAY,EACZ,gBAAgB;YACd,CAAC,CAAC;gBACE,YAAY,EAAE;oBACZ,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;oBAC5C,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;iBACjD;aACF;YACH,CAAC,CAAC,EAAE,CACP,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
|
+
export interface EnabledFixes {
|
|
2
|
+
/** Flatten `export *` statements into explicit named exports. */
|
|
3
|
+
flattenExportStar?: boolean;
|
|
4
|
+
/** Resolve re-exports that reference other barrel files to point directly to their true source modules. */
|
|
5
|
+
fixBarrelReferences?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export interface FixIssuesInBarrelFileOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Specifies which fixes to apply. If not set, all fixes are enabled.
|
|
10
|
+
* When set, only the fixes explicitly set to `true` will run.
|
|
11
|
+
*/
|
|
12
|
+
enabledFixes?: EnabledFixes;
|
|
13
|
+
}
|
|
1
14
|
/**
|
|
2
15
|
* Fixes any issues in the specified barrel file.
|
|
3
16
|
* This includes flattening `export *` statements into explicit named exports
|
|
4
17
|
* and resolving exports that reference other barrel files to point directly
|
|
5
18
|
* to their true source modules. The file is modified in place.
|
|
6
19
|
* @param absoluteFilePath - the absolute path of the barrel file to fix
|
|
20
|
+
* @param options - optional configuration for the fix behavior
|
|
7
21
|
*/
|
|
8
|
-
export declare function fixIssuesInBarrelFile(absoluteFilePath: string): void;
|
|
22
|
+
export declare function fixIssuesInBarrelFile(absoluteFilePath: string, options?: FixIssuesInBarrelFileOptions): void;
|
|
9
23
|
//# sourceMappingURL=fixIssuesInBarrelFile.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixIssuesInBarrelFile.d.ts","sourceRoot":"","sources":["../src/fixIssuesInBarrelFile.ts"],"names":[],"mappings":"AAgGA
|
|
1
|
+
{"version":3,"file":"fixIssuesInBarrelFile.d.ts","sourceRoot":"","sources":["../src/fixIssuesInBarrelFile.ts"],"names":[],"mappings":"AAgGA,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,2GAA2G;IAC3G,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,GAAE,4BAAiC,QA8GzG"}
|
|
@@ -117,8 +117,12 @@ function cleanupExportsInAST(ast) {
|
|
|
117
117
|
* and resolving exports that reference other barrel files to point directly
|
|
118
118
|
* to their true source modules. The file is modified in place.
|
|
119
119
|
* @param absoluteFilePath - the absolute path of the barrel file to fix
|
|
120
|
+
* @param options - optional configuration for the fix behavior
|
|
120
121
|
*/
|
|
121
|
-
function fixIssuesInBarrelFile(absoluteFilePath) {
|
|
122
|
+
function fixIssuesInBarrelFile(absoluteFilePath, options = {}) {
|
|
123
|
+
const allFixesEnabled = options.enabledFixes === undefined;
|
|
124
|
+
const shouldFlattenExportStar = allFixesEnabled || options.enabledFixes?.flattenExportStar === true;
|
|
125
|
+
const shouldFixBarrelReferences = allFixesEnabled || options.enabledFixes?.fixBarrelReferences === true;
|
|
122
126
|
const ast = (0, parseUtils_1.parseTypescriptFile)(absoluteFilePath);
|
|
123
127
|
const exportStatements = [];
|
|
124
128
|
let astModified = false;
|
|
@@ -143,7 +147,7 @@ function fixIssuesInBarrelFile(absoluteFilePath) {
|
|
|
143
147
|
if (!(0, importUtils_1.isInternalModule)(exportStatement.sourcePath)) {
|
|
144
148
|
continue;
|
|
145
149
|
}
|
|
146
|
-
if (exportStatement.type === 'exportStar') {
|
|
150
|
+
if (exportStatement.type === 'exportStar' && shouldFlattenExportStar) {
|
|
147
151
|
const flattened = (0, flattenExportStar_1.flattenExportStar)(absoluteFilePath, exportStatement.nodePath.node.source.value);
|
|
148
152
|
const exportNamedDeclarations = [];
|
|
149
153
|
const isTypeOnlyExportStar = exportStatement.nodePath.node.exportKind === 'type';
|
|
@@ -158,7 +162,7 @@ function fixIssuesInBarrelFile(absoluteFilePath) {
|
|
|
158
162
|
exportStatement.nodePath.replaceWithMultiple(exportNamedDeclarations);
|
|
159
163
|
astModified = true;
|
|
160
164
|
}
|
|
161
|
-
else {
|
|
165
|
+
else if (exportStatement.type === 'exportNamedDeclaration' && shouldFixBarrelReferences) {
|
|
162
166
|
for (const specifier of exportStatement.nodePath.node.specifiers) {
|
|
163
167
|
if (specifier.type === 'ExportSpecifier' && specifier.exported.type === 'Identifier') {
|
|
164
168
|
const exportedName = specifier.exported.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixIssuesInBarrelFile.js","sourceRoot":"","sources":["../src/fixIssuesInBarrelFile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"fixIssuesInBarrelFile.js","sourceRoot":"","sources":["../src/fixIssuesInBarrelFile.ts"],"names":[],"mappings":"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"}
|