eslint-plugin-fast-import 1.4.3 → 1.4.4

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.
Files changed (64) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/module/child.d.ts +1 -0
  3. package/dist/module/child.js +13 -0
  4. package/dist/module/child.js.map +1 -0
  5. package/dist/module/computeBaseFileDetails.d.ts +11 -0
  6. package/dist/module/computeBaseFileDetails.js +533 -0
  7. package/dist/module/computeBaseFileDetails.js.map +1 -0
  8. package/dist/module/computeBaseIPC.d.ts +8 -0
  9. package/dist/module/computeBaseIPC.js +35 -0
  10. package/dist/module/computeBaseIPC.js.map +1 -0
  11. package/dist/module/computeBaseInfoIPC.d.ts +11 -0
  12. package/dist/module/computeBaseInfoIPC.js +38 -0
  13. package/dist/module/computeBaseInfoIPC.js.map +1 -0
  14. package/dist/module/computeBaseInfoOrchestrator.d.ts +7 -0
  15. package/dist/module/computeBaseInfoOrchestrator.js +29 -0
  16. package/dist/module/computeBaseInfoOrchestrator.js.map +1 -0
  17. package/dist/module/computeBaseInfoWorker.d.ts +35 -0
  18. package/dist/module/computeBaseInfoWorker.js +85 -0
  19. package/dist/module/computeBaseInfoWorker.js.map +1 -0
  20. package/dist/module/computeFileDetails.d.ts +1 -0
  21. package/dist/module/computeFileDetails.js +511 -0
  22. package/dist/module/computeFileDetails.js.map +1 -0
  23. package/dist/module/computeResolvedInfo.js +9 -7
  24. package/dist/module/computeResolvedInfo.js.map +1 -1
  25. package/dist/module/empty.d.ts +1 -0
  26. package/dist/module/empty.js +3 -0
  27. package/dist/module/empty.js.map +1 -0
  28. package/dist/module/getEntryPointCheck.d.ts +5 -0
  29. package/dist/module/getEntryPointCheck.js +30 -0
  30. package/dist/module/getEntryPointCheck.js.map +1 -0
  31. package/dist/module/module.js +2 -1
  32. package/dist/module/module.js.map +1 -1
  33. package/dist/module/parent.d.ts +1 -0
  34. package/dist/module/parent.js +124 -0
  35. package/dist/module/parent.js.map +1 -0
  36. package/dist/module/util.d.ts +44 -0
  37. package/dist/module/util.js +69 -0
  38. package/dist/module/util.js.map +1 -0
  39. package/dist/rules/circular/circular.d.ts +2 -0
  40. package/dist/rules/circular/circular.js +109 -0
  41. package/dist/rules/circular/circular.js.map +1 -0
  42. package/dist/rules/cycle/cycle.js +15 -4
  43. package/dist/rules/cycle/cycle.js.map +1 -1
  44. package/dist/rules/missing/missing.d.ts +1 -0
  45. package/dist/rules/missing/missing.js +131 -0
  46. package/dist/rules/missing/missing.js.map +1 -0
  47. package/dist/rules/util.js +6 -6
  48. package/dist/rules/util.js.map +1 -1
  49. package/dist/settings/settings.d.ts +2 -1
  50. package/dist/settings/settings.js +83 -32
  51. package/dist/settings/settings.js.map +1 -1
  52. package/dist/settings/user.d.ts +4 -4
  53. package/dist/settings/util.d.ts +1 -0
  54. package/dist/settings/util.js +31 -0
  55. package/dist/settings/util.js.map +1 -0
  56. package/dist/types/range.d.ts +1 -0
  57. package/dist/types/range.js +2 -0
  58. package/dist/types/range.js.map +1 -0
  59. package/dist/util/files.js +22 -22
  60. package/dist/util/files.js.map +1 -1
  61. package/dist/util/test.d.ts +1 -0
  62. package/dist/util/test.js +3 -0
  63. package/dist/util/test.js.map +1 -0
  64. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## 1.4.4 (9/24/2025)
4
+
5
+ - More monorepo bug fixes
6
+
3
7
  ## 1.4.3 (9/11/2025)
4
8
 
5
9
  - Fixed a bug with the recent bug fix
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import { parseFile } from './util.js';
2
+ const codeFilesToParse = JSON.parse(process.argv[2]);
3
+ const start = Date.now();
4
+ for (const codeFileToParse of codeFilesToParse) {
5
+ try {
6
+ parseFile(codeFileToParse);
7
+ }
8
+ catch {
9
+ //
10
+ }
11
+ }
12
+ console.log(Date.now() - start);
13
+ //# sourceMappingURL=child.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"child.js","sourceRoot":"","sources":["../../src/module/child.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAa,CAAC;AAEjE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AACzB,KAAK,MAAM,eAAe,IAAI,gBAAgB,EAAE,CAAC;IAC/C,IAAI,CAAC;QACH,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,EAAE;IACJ,CAAC;AACH,CAAC;AACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { TSESTree } from '@typescript-eslint/typescript-estree';
2
+ import type { BaseCodeFileDetails } from '../types/base.js';
3
+ type IsEntryPointCheck = (filePath: string, symbolName: string) => boolean;
4
+ type ComputeFileDetailsOptions = {
5
+ filePath: string;
6
+ fileContents: string;
7
+ ast: TSESTree.Program;
8
+ isEntryPointCheck: IsEntryPointCheck;
9
+ };
10
+ export declare function computeFileDetails({ filePath, fileContents, ast, isEntryPointCheck, }: ComputeFileDetailsOptions): BaseCodeFileDetails;
11
+ export {};
@@ -0,0 +1,533 @@
1
+ import { TSESTree } from '@typescript-eslint/typescript-estree';
2
+ import { InternalError } from '../util/error.js';
3
+ import { traverse } from './util.js';
4
+ // Exports are almost always identifiers, but on rare occasions they can
5
+ // actually be strings, such as in:
6
+ //
7
+ // const x = 10;
8
+ // export { x as 'some string' };
9
+ //
10
+ // We actually don't care if the name is an identifier or string though, so this
11
+ // function normalizes the value
12
+ function getIdentifierOrStringValue(node) {
13
+ return node.type === TSESTree.AST_NODE_TYPES.Identifier
14
+ ? node.name
15
+ : node.value;
16
+ }
17
+ function isDefault(statementNode) {
18
+ return (statementNode.type === TSESTree.AST_NODE_TYPES.ExportDefaultDeclaration);
19
+ }
20
+ /* istanbul ignore next */
21
+ class UnknownNodeTypeError extends InternalError {
22
+ constructor(filePath, fileContents, node) {
23
+ super(
24
+ // eslint-disable-next-line @typescript-eslint/restrict-template-expressions, @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access
25
+ `unknown AST node type ${node.type}`, {
26
+ filePath,
27
+ fileContents,
28
+ range: node.range,
29
+ });
30
+ }
31
+ }
32
+ function getRangeOfDefaultToken(node, tokens, filePath) {
33
+ /* istanbul ignore if */
34
+ if (!tokens) {
35
+ throw new InternalError(`tokens is unexpectedly undefined`);
36
+ }
37
+ for (const token of tokens) {
38
+ if (token.range[0] < node.range[0] || token.range[1] > node.range[1]) {
39
+ continue;
40
+ }
41
+ if (token.type === TSESTree.AST_TOKEN_TYPES.Keyword &&
42
+ token.value === 'default') {
43
+ return token.range;
44
+ }
45
+ }
46
+ /* istanbul ignore next */
47
+ throw new InternalError('Could not get report nore', {
48
+ filePath,
49
+ range: node.range,
50
+ });
51
+ }
52
+ // This helper walks export destructure, which is by far the most complicated
53
+ // part of parsing exports because destructures can be destructured recursively,
54
+ // e.g. `export const [ [ { something } ] ] = [ [ { something: 10 } ] ]`
55
+ function walkExportDestructure(filePath, fileContents, fileDetails, statementNode, node, isEntryPointCheck) {
56
+ switch (node.type) {
57
+ // export const [ foo, bar ] = []
58
+ case TSESTree.AST_NODE_TYPES.ArrayPattern: {
59
+ for (const elementNode of node.elements) {
60
+ // Check if this is an array hole, e.g. `[a, , b]`, and if so skip
61
+ if (elementNode) {
62
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, elementNode, isEntryPointCheck);
63
+ }
64
+ }
65
+ break;
66
+ }
67
+ // export const { ... } = {}
68
+ case TSESTree.AST_NODE_TYPES.ObjectPattern: {
69
+ for (const propertyNode of node.properties) {
70
+ // First check if this is a spread, in which case we directly recurse
71
+ if (propertyNode.type === TSESTree.AST_NODE_TYPES.RestElement) {
72
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, propertyNode, isEntryPointCheck);
73
+ continue;
74
+ }
75
+ // Otherwise, we need to introspect on what's going on here
76
+ switch (propertyNode.value.type) {
77
+ // export const { foo } = {}
78
+ case TSESTree.AST_NODE_TYPES.Identifier: {
79
+ fileDetails.exports.push({
80
+ type: 'export',
81
+ statementNodeRange: statementNode.range,
82
+ reportNodeRange: propertyNode.value.range,
83
+ exportName: propertyNode.value.name,
84
+ isTypeExport: statementNode.exportKind === 'type',
85
+ isEntryPoint: isEntryPointCheck(filePath, propertyNode.value.name),
86
+ });
87
+ break;
88
+ }
89
+ // Cases where we need to recurse
90
+ case TSESTree.AST_NODE_TYPES.ArrayPattern:
91
+ case TSESTree.AST_NODE_TYPES.ObjectPattern: {
92
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, propertyNode.value, isEntryPointCheck);
93
+ break;
94
+ }
95
+ /* istanbul ignore next */
96
+ default: {
97
+ // We don't use UnknownNodeTypeError here because this is typed as a
98
+ // general property definition, which includes a bunch of statements
99
+ // that actual exports don't support (and would be a syntax error),
100
+ // such as: `export const { foo: doThing() }`
101
+ throw new InternalError(`unsupported declaration type ${propertyNode.value.type}`, {
102
+ filePath,
103
+ fileContents,
104
+ range: propertyNode.value.range,
105
+ });
106
+ }
107
+ }
108
+ }
109
+ break;
110
+ }
111
+ // export const [ foo = 10 ] = [ 10 ]
112
+ case TSESTree.AST_NODE_TYPES.AssignmentPattern: {
113
+ if (node.left.type === TSESTree.AST_NODE_TYPES.Identifier) {
114
+ fileDetails.exports.push({
115
+ type: 'export',
116
+ statementNodeRange: statementNode.range,
117
+ reportNodeRange: node.left.range,
118
+ exportName: node.left.name,
119
+ isTypeExport: statementNode.exportKind === 'type',
120
+ isEntryPoint: isEntryPointCheck(filePath, node.left.name),
121
+ });
122
+ }
123
+ // It's possible to do `export const [ { foo } = {} ]`
124
+ else {
125
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, node.left, isEntryPointCheck);
126
+ }
127
+ break;
128
+ }
129
+ // export const [ foo ] = [ 10 ]
130
+ case TSESTree.AST_NODE_TYPES.Identifier: {
131
+ fileDetails.exports.push({
132
+ type: 'export',
133
+ statementNodeRange: statementNode.range,
134
+ reportNodeRange: node.range,
135
+ exportName: node.name,
136
+ isTypeExport: statementNode.exportKind === 'type',
137
+ isEntryPoint: isEntryPointCheck(filePath, node.name),
138
+ });
139
+ break;
140
+ }
141
+ // AFAICT this isn't actually valid, since it would imply
142
+ // `export const { foo.bar }`, but I'm not 100% certain.
143
+ // See: https://github.com/estree/estree/issues/162
144
+ /* istanbul ignore next */
145
+ case TSESTree.AST_NODE_TYPES.MemberExpression: {
146
+ throw new InternalError(`unexpected member expression in array destructure`, { filePath, fileContents, range: node.range });
147
+ }
148
+ // export const [ ... ]
149
+ case TSESTree.AST_NODE_TYPES.RestElement: {
150
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, node.argument, isEntryPointCheck);
151
+ break;
152
+ }
153
+ default: {
154
+ throw new UnknownNodeTypeError(filePath, fileContents, node);
155
+ }
156
+ }
157
+ }
158
+ export function computeFileDetails({ filePath, fileContents, ast, isEntryPointCheck, }) {
159
+ const fileDetails = {
160
+ fileType: 'code',
161
+ lastUpdatedAt: Date.now(),
162
+ hasEntryPoints: false,
163
+ exports: [],
164
+ singleImports: [],
165
+ barrelImports: [],
166
+ dynamicImports: [],
167
+ singleReexports: [],
168
+ barrelReexports: [],
169
+ };
170
+ traverse({
171
+ filePath,
172
+ fileContents,
173
+ ast,
174
+ importDeclaration(statementNode) {
175
+ // First, get the module specifier, if present. It might be missing in the
176
+ // case of a dynamic import where the sourcefile value is computed, e.g.
177
+ // `await import('foo' + 'bar' + computeThing())`.
178
+ const moduleSpecifier = statementNode.source.type === TSESTree.AST_NODE_TYPES.Literal
179
+ ? (statementNode.source.value ?? undefined)
180
+ : undefined;
181
+ /* istanbul ignore if */
182
+ if (typeof moduleSpecifier !== 'string' &&
183
+ typeof moduleSpecifier !== 'undefined') {
184
+ throw new InternalError(`Import source ${String(moduleSpecifier)} is not a string or undefined`, {
185
+ filePath,
186
+ fileContents,
187
+ range: statementNode.source.range,
188
+ });
189
+ }
190
+ // We check if this is a dynamic import first, since it's the only type of
191
+ // import that may not have a string module specifier.
192
+ if (statementNode.type === TSESTree.AST_NODE_TYPES.ImportExpression) {
193
+ fileDetails.dynamicImports.push({
194
+ type: 'dynamicImport',
195
+ statementNodeRange: statementNode.range,
196
+ reportNodeRange: statementNode.range,
197
+ moduleSpecifier,
198
+ });
199
+ return;
200
+ }
201
+ // Now that we know this isn't a dynamic import, we can enforce that the
202
+ // module specifier is a string. In practice this should always be a
203
+ // string at this point, but we check to make TypeScript happy and just in
204
+ // case there's some edge case we missed.
205
+ /* istanbul ignore if */
206
+ if (typeof moduleSpecifier !== 'string') {
207
+ throw new InternalError(`import source ${String(moduleSpecifier)} is not a string`, {
208
+ filePath,
209
+ fileContents,
210
+ range: statementNode.source.range,
211
+ });
212
+ }
213
+ // Now loop through each specifier in the import statement and parse it.
214
+ // The specifier is `foo` in: `import { foo } from './bar'`
215
+ for (const specifierNode of statementNode.specifiers) {
216
+ switch (specifierNode.type) {
217
+ // import * as foo from 'bar';
218
+ case TSESTree.AST_NODE_TYPES.ImportNamespaceSpecifier: {
219
+ fileDetails.barrelImports.push({
220
+ type: 'barrelImport',
221
+ statementNodeRange: statementNode.range,
222
+ reportNodeRange: specifierNode.range,
223
+ moduleSpecifier,
224
+ importAlias: specifierNode.local.name,
225
+ });
226
+ break;
227
+ }
228
+ // import foo from 'bar';
229
+ case TSESTree.AST_NODE_TYPES.ImportDefaultSpecifier: {
230
+ fileDetails.singleImports.push({
231
+ type: 'singleImport',
232
+ statementNodeRange: statementNode.range,
233
+ reportNodeRange: specifierNode.range,
234
+ moduleSpecifier,
235
+ importName: 'default',
236
+ importAlias: specifierNode.local.name,
237
+ isTypeImport: statementNode.importKind === 'type',
238
+ });
239
+ break;
240
+ }
241
+ // import { foo } from 'bar';
242
+ case TSESTree.AST_NODE_TYPES.ImportSpecifier: {
243
+ const importName = getIdentifierOrStringValue(specifierNode.imported);
244
+ fileDetails.singleImports.push({
245
+ type: 'singleImport',
246
+ statementNodeRange: statementNode.range,
247
+ reportNodeRange: specifierNode.range,
248
+ moduleSpecifier,
249
+ importName,
250
+ importAlias: specifierNode.local.name,
251
+ isTypeImport: statementNode.importKind === 'type',
252
+ });
253
+ break;
254
+ }
255
+ // This shouldn't happen, but is here just in case
256
+ default: {
257
+ throw new UnknownNodeTypeError(filePath, fileContents, specifierNode);
258
+ }
259
+ }
260
+ }
261
+ },
262
+ exportDeclaration(statementNode, parentNode) {
263
+ // If we're inside of a module declaration, don't continue on since we
264
+ // don't analyze namespaces
265
+ if (parentNode &&
266
+ (parentNode.type === TSESTree.AST_NODE_TYPES.TSModuleDeclaration ||
267
+ parentNode.type === TSESTree.AST_NODE_TYPES.TSModuleBlock)) {
268
+ return;
269
+ }
270
+ // Check if this is export { foo }, which parses very different
271
+ if ('specifiers' in statementNode && statementNode.specifiers.length) {
272
+ for (const specifierNode of statementNode.specifiers) {
273
+ const exportName = getIdentifierOrStringValue(specifierNode.exported);
274
+ fileDetails.exports.push({
275
+ type: 'export',
276
+ statementNodeRange: statementNode.range,
277
+ reportNodeRange: specifierNode.exported.range,
278
+ exportName,
279
+ isTypeExport: statementNode.exportKind === 'type',
280
+ isEntryPoint: isEntryPointCheck(filePath, exportName),
281
+ });
282
+ }
283
+ return;
284
+ }
285
+ // This happens when we do `export {}`
286
+ if (!statementNode.declaration) {
287
+ return;
288
+ }
289
+ // If we got here we have a single export where we have to introspect the
290
+ // declaration type to figure out what the name is. Note: we still want to
291
+ // find the name in the case of default exports so that we can set
292
+ // `specifierNode` to the name. Otherwise, when we highlight a lint error,
293
+ // we would highlight entire classes/functions, which hurts readability
294
+ switch (statementNode.declaration.type) {
295
+ // export const ...
296
+ // Note: const exports can't be default
297
+ case TSESTree.AST_NODE_TYPES.VariableDeclaration: {
298
+ for (const declarationNode of statementNode.declaration
299
+ .declarations) {
300
+ switch (declarationNode.id.type) {
301
+ // export const foo = 10;
302
+ case TSESTree.AST_NODE_TYPES.Identifier: {
303
+ fileDetails.exports.push({
304
+ type: 'export',
305
+ statementNodeRange: statementNode.range,
306
+ reportNodeRange: declarationNode.id.range,
307
+ exportName: declarationNode.id.name,
308
+ isTypeExport: statementNode.exportKind === 'type',
309
+ isEntryPoint: isEntryPointCheck(filePath, declarationNode.id.name),
310
+ });
311
+ break;
312
+ }
313
+ // export const [foo, bar] = [10, 10]
314
+ case TSESTree.AST_NODE_TYPES.ArrayPattern: {
315
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, declarationNode.id, isEntryPointCheck);
316
+ break;
317
+ }
318
+ // export const { foo, bar } = { foo: 10, bar: 10 }
319
+ case TSESTree.AST_NODE_TYPES.ObjectPattern: {
320
+ walkExportDestructure(filePath, fileContents, fileDetails, statementNode, declarationNode.id, isEntryPointCheck);
321
+ break;
322
+ }
323
+ default: {
324
+ throw new UnknownNodeTypeError(filePath, fileContents, declarationNode.id);
325
+ }
326
+ }
327
+ }
328
+ break;
329
+ }
330
+ // export interface Foo {} or export type Foo = string
331
+ case TSESTree.AST_NODE_TYPES.TSInterfaceDeclaration:
332
+ case TSESTree.AST_NODE_TYPES.TSEnumDeclaration:
333
+ case TSESTree.AST_NODE_TYPES.TSTypeAliasDeclaration: {
334
+ const exportName = isDefault(statementNode)
335
+ ? 'default'
336
+ : statementNode.declaration.id.name;
337
+ fileDetails.exports.push({
338
+ type: 'export',
339
+ statementNodeRange: statementNode.range,
340
+ reportNodeRange: statementNode.declaration.id.range,
341
+ exportName,
342
+ isTypeExport: true,
343
+ isEntryPoint: isEntryPointCheck(filePath, exportName),
344
+ });
345
+ break;
346
+ }
347
+ // export function foo() {}
348
+ case TSESTree.AST_NODE_TYPES.TSDeclareFunction:
349
+ case TSESTree.AST_NODE_TYPES.FunctionDeclaration: {
350
+ if (isDefault(statementNode)) {
351
+ fileDetails.exports.push({
352
+ type: 'export',
353
+ statementNodeRange: statementNode.range,
354
+ reportNodeRange: statementNode.declaration.id
355
+ ? statementNode.declaration.id.range
356
+ : statementNode.range,
357
+ exportName: 'default',
358
+ isTypeExport: false, // functions can never be types
359
+ isEntryPoint: isEntryPointCheck(filePath, 'default'),
360
+ });
361
+ }
362
+ else {
363
+ // TODO: I'm pretty certain that declaration id missing means that
364
+ // this is a function expression, aka `export function () {}` which
365
+ // isn't allowed in an export statement
366
+ /* istanbul ignore if */
367
+ if (!statementNode.declaration.id) {
368
+ throw new InternalError(`function id is unexpectedly missing`, {
369
+ filePath,
370
+ fileContents,
371
+ range: statementNode.declaration.range,
372
+ });
373
+ }
374
+ fileDetails.exports.push({
375
+ type: 'export',
376
+ statementNodeRange: statementNode.range,
377
+ reportNodeRange: statementNode.declaration.id.range,
378
+ exportName: statementNode.declaration.id.name,
379
+ isTypeExport: statementNode.exportKind === 'type',
380
+ isEntryPoint: isEntryPointCheck(filePath, statementNode.declaration.id.name),
381
+ });
382
+ }
383
+ break;
384
+ }
385
+ // export class Foo {}
386
+ case TSESTree.AST_NODE_TYPES.ClassDeclaration: {
387
+ if (isDefault(statementNode)) {
388
+ fileDetails.exports.push({
389
+ type: 'export',
390
+ statementNodeRange: statementNode.range,
391
+ reportNodeRange: statementNode.declaration.id
392
+ ? statementNode.declaration.id.range
393
+ : statementNode.range,
394
+ exportName: 'default',
395
+ isTypeExport: false, // Classes can never be types
396
+ isEntryPoint: isEntryPointCheck(filePath, 'default'),
397
+ });
398
+ }
399
+ else {
400
+ if (!statementNode.declaration.id) {
401
+ throw new Error('Exporting non-default unnamed classes is not supported (e.g. `export class {}`)');
402
+ }
403
+ fileDetails.exports.push({
404
+ type: 'export',
405
+ statementNodeRange: statementNode.range,
406
+ reportNodeRange: statementNode.declaration.id.range,
407
+ exportName: statementNode.declaration.id.name,
408
+ isTypeExport: statementNode.exportKind === 'type',
409
+ isEntryPoint: isEntryPointCheck(filePath, statementNode.declaration.id.name),
410
+ });
411
+ }
412
+ break;
413
+ }
414
+ // export default foo
415
+ case TSESTree.AST_NODE_TYPES.Identifier: {
416
+ const { name } = statementNode.declaration;
417
+ const isNodeDefault = isDefault(statementNode);
418
+ const exportName = isNodeDefault ? 'default' : name;
419
+ fileDetails.exports.push({
420
+ type: 'export',
421
+ statementNodeRange: statementNode.range,
422
+ reportNodeRange: statementNode.declaration.range,
423
+ exportName,
424
+ isTypeExport: statementNode.exportKind === 'type',
425
+ isEntryPoint: isEntryPointCheck(filePath, exportName),
426
+ });
427
+ break;
428
+ }
429
+ // export namespace {}
430
+ // export module {}
431
+ case TSESTree.AST_NODE_TYPES.TSModuleDeclaration: {
432
+ let exportName;
433
+ const { id } = statementNode.declaration;
434
+ switch (id.type) {
435
+ // export namespace {}
436
+ case TSESTree.AST_NODE_TYPES.Identifier: {
437
+ exportName = id.name;
438
+ break;
439
+ }
440
+ // export module {}
441
+ case TSESTree.AST_NODE_TYPES.Literal: {
442
+ exportName = id.value;
443
+ break;
444
+ }
445
+ case TSESTree.AST_NODE_TYPES.TSQualifiedName: {
446
+ throw new InternalError(`Unsupported module declaration identifier ${id.type}`);
447
+ }
448
+ }
449
+ fileDetails.exports.push({
450
+ type: 'export',
451
+ statementNodeRange: statementNode.range,
452
+ reportNodeRange: statementNode.declaration.range,
453
+ exportName,
454
+ isTypeExport: true,
455
+ isEntryPoint: isEntryPointCheck(filePath, exportName),
456
+ });
457
+ break;
458
+ }
459
+ // export import Foo = Bar;
460
+ case TSESTree.AST_NODE_TYPES.TSImportEqualsDeclaration: {
461
+ const exportName = statementNode.declaration.id.name;
462
+ fileDetails.exports.push({
463
+ type: 'export',
464
+ statementNodeRange: statementNode.range,
465
+ reportNodeRange: statementNode.declaration.range,
466
+ exportName,
467
+ isTypeExport: statementNode.exportKind === 'type',
468
+ isEntryPoint: isEntryPointCheck(filePath, exportName),
469
+ });
470
+ break;
471
+ }
472
+ default: {
473
+ // First we check if this is a default export, since we can still
474
+ // process it, even if we can't select a particularly useful specifier
475
+ // node
476
+ if (isDefault(statementNode)) {
477
+ fileDetails.exports.push({
478
+ type: 'export',
479
+ statementNodeRange: statementNode.range,
480
+ reportNodeRange: getRangeOfDefaultToken(statementNode, ast.tokens, filePath),
481
+ exportName: 'default',
482
+ isTypeExport: false, // For some reason
483
+ isEntryPoint: isEntryPointCheck(filePath, 'default'),
484
+ });
485
+ break;
486
+ }
487
+ throw new UnknownNodeTypeError(filePath, fileContents, statementNode.declaration);
488
+ }
489
+ }
490
+ },
491
+ reexportDeclaration(statementNode, parentNode) {
492
+ // If we're inside of a module declaration, don't continue on since we
493
+ // don't analyze namespaces
494
+ if (parentNode &&
495
+ parentNode.type === TSESTree.AST_NODE_TYPES.TSModuleDeclaration) {
496
+ return;
497
+ }
498
+ const moduleSpecifier = statementNode.source.value;
499
+ // Check if this is a barrel reexport
500
+ if (statementNode.type === TSESTree.AST_NODE_TYPES.ExportAllDeclaration) {
501
+ const exportName = statementNode.exported?.name;
502
+ fileDetails.barrelReexports.push({
503
+ type: 'barrelReexport',
504
+ statementNodeRange: statementNode.range,
505
+ reportNodeRange: statementNode.range,
506
+ moduleSpecifier,
507
+ exportName,
508
+ isEntryPoint: exportName
509
+ ? isEntryPointCheck(filePath, exportName)
510
+ : false,
511
+ });
512
+ return;
513
+ }
514
+ // Otherwise this is a single reexport, so we iterate through each specifier
515
+ for (const specifierNode of statementNode.specifiers) {
516
+ const exportName = getIdentifierOrStringValue(specifierNode.exported);
517
+ fileDetails.singleReexports.push({
518
+ type: 'singleReexport',
519
+ statementNodeRange: statementNode.range,
520
+ reportNodeRange: specifierNode.range,
521
+ moduleSpecifier,
522
+ importName: getIdentifierOrStringValue(specifierNode.local),
523
+ exportName,
524
+ isTypeReexport: statementNode.exportKind === 'type',
525
+ isEntryPoint: isEntryPointCheck(filePath, exportName),
526
+ });
527
+ }
528
+ },
529
+ });
530
+ fileDetails.hasEntryPoints = fileDetails.exports.some((exportEntry) => exportEntry.isEntryPoint);
531
+ return fileDetails;
532
+ }
533
+ //# sourceMappingURL=computeBaseFileDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeBaseFileDetails.js","sourceRoot":"","sources":["../../src/module/computeBaseFileDetails.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { ParsedSettings } from '../settings/settings.js';
2
+ import type { BaseProjectInfo } from '../types/base.js';
3
+ type IsEntryPointCheck = (filePath: string, symbolName: string) => boolean;
4
+ type ComputeBaseInfoOptions = Pick<ParsedSettings, 'rootDir' | 'fixedAliases' | 'wildcardAliases' | 'ignorePatterns'> & {
5
+ isEntryPointCheck?: IsEntryPointCheck;
6
+ };
7
+ export declare function computeBaseInfoIPC({ rootDir, fixedAliases, wildcardAliases, ignorePatterns, }: ComputeBaseInfoOptions): BaseProjectInfo;
8
+ export {};
@@ -0,0 +1,35 @@
1
+ import { spawnSync } from 'node:child_process';
2
+ import { getDirname, getFilename } from 'cross-dirname';
3
+ import { computeBaseInfo } from './computeBaseInfo.js';
4
+ export function computeBaseInfoIPC({ rootDir, fixedAliases, wildcardAliases, ignorePatterns, }) {
5
+ const options = {
6
+ rootDir,
7
+ fixedAliases,
8
+ wildcardAliases,
9
+ ignorePatterns,
10
+ };
11
+ const { stdout } = spawnSync('node', [getFilename(), '--computeBaseInfoInBackground', JSON.stringify(options)], {
12
+ encoding: 'utf8',
13
+ cwd: getDirname(),
14
+ });
15
+ const parsedData = JSON.parse(stdout);
16
+ return {
17
+ ...parsedData,
18
+ files: new Map(parsedData.files),
19
+ availableThirdPartyDependencies: new Map(parsedData.availableThirdPartyDependencies),
20
+ };
21
+ }
22
+ if (process.argv[2] === '--computeBaseInfoInBackground') {
23
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
24
+ const data = JSON.parse(process.argv[3]);
25
+ const baseProjectInfo = computeBaseInfo({
26
+ ...data,
27
+ isEntryPointCheck: () => false,
28
+ });
29
+ process.stdout.write(JSON.stringify({
30
+ ...baseProjectInfo,
31
+ files: Array.from(baseProjectInfo.files),
32
+ availableThirdPartyDependencies: Array.from(baseProjectInfo.availableThirdPartyDependencies),
33
+ }), (err) => process.exit(err ? -1 : 0));
34
+ }
35
+ //# sourceMappingURL=computeBaseIPC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeBaseIPC.js","sourceRoot":"","sources":["../../src/module/computeBaseIPC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAWvD,MAAM,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,YAAY,EACZ,eAAe,EACf,cAAc,GACS;IACvB,MAAM,OAAO,GAAG;QACd,OAAO;QACP,YAAY;QACZ,eAAe;QACf,cAAc;KACf,CAAC;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAC1B,MAAM,EACN,CAAC,WAAW,EAAE,EAAE,+BAA+B,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACzE;QACE,QAAQ,EAAE,MAAM;QAChB,GAAG,EAAE,UAAU,EAAE;KAClB,CACF,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO;QACL,GAAG,UAAU;QACb,KAAK,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;QAChC,+BAA+B,EAAE,IAAI,GAAG,CACtC,UAAU,CAAC,+BAA+B,CAC3C;KACiB,CAAC;AACvB,CAAC;AAED,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,+BAA+B,EAAE,CAAC;IACxD,mEAAmE;IACnE,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,eAAe,CAAC;QACtC,GAAG,IAAI;QACP,iBAAiB,EAAE,GAAG,EAAE,CAAC,KAAK;KACL,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,IAAI,CAAC,SAAS,CAAC;QACb,GAAG,eAAe;QAClB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QACxC,+BAA+B,EAAE,KAAK,CAAC,IAAI,CACzC,eAAe,CAAC,+BAA+B,CAChD;KACF,CAAC,EACF,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC;AACJ,CAAC"}