@kubb/core 3.0.0-alpha.6 → 3.0.0-alpha.8

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 (72) hide show
  1. package/dist/{FileManager-wyXRkgIk.d.cts → FileManager-B0GJlthB.d.cts} +30 -16
  2. package/dist/{FileManager-Ceski1W9.d.ts → FileManager-BFycBDqG.d.ts} +30 -16
  3. package/dist/chunk-27CPVXAT.js +945 -0
  4. package/dist/chunk-27CPVXAT.js.map +1 -0
  5. package/dist/{chunk-34BPAXR2.cjs → chunk-5E2I6KH4.cjs} +7 -7
  6. package/dist/{chunk-34BPAXR2.cjs.map → chunk-5E2I6KH4.cjs.map} +1 -1
  7. package/dist/chunk-5IGANEGE.cjs +1564 -0
  8. package/dist/chunk-5IGANEGE.cjs.map +1 -0
  9. package/dist/{chunk-67C6RBGQ.cjs → chunk-A6PCLWEY.cjs} +5 -5
  10. package/dist/{chunk-67C6RBGQ.cjs.map → chunk-A6PCLWEY.cjs.map} +1 -1
  11. package/dist/{chunk-5HN4LW3R.cjs → chunk-DID47EQD.cjs} +3 -3
  12. package/dist/{chunk-5HN4LW3R.cjs.map → chunk-DID47EQD.cjs.map} +1 -1
  13. package/dist/{chunk-25NKJ3DV.js → chunk-HBQM723K.js} +6 -6
  14. package/dist/{chunk-LOLEBOMW.cjs → chunk-IPZQXBA2.cjs} +16 -21
  15. package/dist/chunk-IPZQXBA2.cjs.map +1 -0
  16. package/dist/{chunk-76UEJFFE.js → chunk-SCR3LUXT.js} +9 -16
  17. package/dist/{chunk-76UEJFFE.js.map → chunk-SCR3LUXT.js.map} +1 -1
  18. package/dist/{chunk-XCPFG6DO.cjs → chunk-SEH6NUCX.cjs} +4 -28
  19. package/dist/chunk-SEH6NUCX.cjs.map +1 -0
  20. package/dist/index.cjs +380 -378
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.d.cts +2 -2
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.js +325 -319
  25. package/dist/index.js.map +1 -1
  26. package/dist/logger.cjs +4 -4
  27. package/dist/logger.js +2 -3
  28. package/dist/mocks.cjs +20 -15
  29. package/dist/mocks.cjs.map +1 -1
  30. package/dist/mocks.d.cts +6 -5
  31. package/dist/mocks.d.ts +6 -5
  32. package/dist/mocks.js +15 -11
  33. package/dist/mocks.js.map +1 -1
  34. package/dist/{prompt-6FWP747F.cjs → prompt-DVQN7JTN.cjs} +61 -61
  35. package/dist/{prompt-6FWP747F.cjs.map → prompt-DVQN7JTN.cjs.map} +1 -1
  36. package/dist/{prompt-HK3MWREM.js → prompt-WQQUN22Z.js} +5 -6
  37. package/dist/{prompt-HK3MWREM.js.map → prompt-WQQUN22Z.js.map} +1 -1
  38. package/dist/transformers.cjs +19 -19
  39. package/dist/transformers.js +0 -1
  40. package/dist/transformers.js.map +1 -1
  41. package/dist/utils.cjs +8 -4
  42. package/dist/utils.cjs.map +1 -1
  43. package/dist/utils.d.cts +25 -24
  44. package/dist/utils.d.ts +25 -24
  45. package/dist/utils.js +5 -2
  46. package/package.json +7 -7
  47. package/src/BarrelManager.ts +90 -40
  48. package/src/FileManager.ts +89 -109
  49. package/src/PluginManager.ts +2 -1
  50. package/src/__snapshots__/barrel.json +91 -0
  51. package/src/__snapshots__/grouped.json +114 -0
  52. package/src/__snapshots__/ordered.json +62 -0
  53. package/src/build.ts +60 -23
  54. package/src/plugin.ts +2 -2
  55. package/src/types.ts +22 -2
  56. package/src/utils/TreeNode.ts +43 -1
  57. package/src/utils/index.ts +1 -1
  58. package/src/utils/parser.ts +128 -67
  59. package/dist/chunk-AWAZR3D5.js +0 -360
  60. package/dist/chunk-AWAZR3D5.js.map +0 -1
  61. package/dist/chunk-DCZQYCCO.cjs +0 -1155
  62. package/dist/chunk-DCZQYCCO.cjs.map +0 -1
  63. package/dist/chunk-HMLY7DHA.js +0 -16
  64. package/dist/chunk-HMLY7DHA.js.map +0 -1
  65. package/dist/chunk-L3JJLZ5Q.cjs +0 -371
  66. package/dist/chunk-L3JJLZ5Q.cjs.map +0 -1
  67. package/dist/chunk-LOLEBOMW.cjs.map +0 -1
  68. package/dist/chunk-RIEGCND2.js +0 -525
  69. package/dist/chunk-RIEGCND2.js.map +0 -1
  70. package/dist/chunk-XCPFG6DO.cjs.map +0 -1
  71. package/schema.json +0 -86
  72. /package/dist/{chunk-25NKJ3DV.js.map → chunk-HBQM723K.js.map} +0 -0
@@ -1,9 +1,9 @@
1
- import { extname, relative, resolve } from 'node:path'
1
+ import { extname, join, relative } from 'node:path'
2
2
 
3
3
  import { orderBy } from 'natural-orderby'
4
4
  import { isDeepEqual } from 'remeda'
5
5
 
6
- import { getRelativePath, read, write } from '@kubb/fs'
6
+ import { read, write } from '@kubb/fs'
7
7
  import { BarrelManager } from './BarrelManager.ts'
8
8
 
9
9
  import type * as KubbFile from '@kubb/fs/types'
@@ -12,7 +12,6 @@ import { trimExtName } from '@kubb/fs'
12
12
  import type { ResolvedFile } from '@kubb/fs/types'
13
13
  import type { GreaterThan } from '@kubb/types'
14
14
  import PQueue from 'p-queue'
15
- import type { BarrelManagerOptions } from './BarrelManager.ts'
16
15
  import type { Logger } from './logger.ts'
17
16
  import type { Config, Plugin } from './types.ts'
18
17
  import { createFile, getFileParser } from './utils'
@@ -29,23 +28,23 @@ type AddIndexesProps = {
29
28
  * Root based on root and output.path specified in the config
30
29
  */
31
30
  root: string
31
+ files: KubbFile.File[]
32
32
  /**
33
33
  * Output for plugin
34
34
  */
35
35
  output: {
36
36
  path: string
37
+ extName?: KubbFile.Extname
37
38
  exportAs?: string
38
- extName?: string
39
39
  exportType?: 'barrel' | 'barrelNamed' | false
40
40
  }
41
41
  group?: {
42
42
  output: string
43
43
  exportAs: string
44
44
  }
45
- logger: Logger
46
- files: KubbFile.File[]
47
- options?: BarrelManagerOptions
48
- plugin: Plugin
45
+ logger?: Logger
46
+
47
+ meta?: FileMetaBase
49
48
  }
50
49
 
51
50
  export class FileManager {
@@ -61,6 +60,7 @@ export class FileManager {
61
60
 
62
61
  get orderedFiles(): Array<KubbFile.ResolvedFile> {
63
62
  return orderBy(Array.from(this.#files), [
63
+ (v) => v?.meta && 'pluginKey' in v.meta && !v.meta.pluginKey,
64
64
  (v) => v.path.length,
65
65
  (v) => trimExtName(v.path).endsWith('index'),
66
66
  (v) => trimExtName(v.baseName),
@@ -103,6 +103,11 @@ export class FileManager {
103
103
  return resolvedFile
104
104
  }
105
105
 
106
+ clear() {
107
+ this.#filesByPath.clear()
108
+ this.#files.clear()
109
+ }
110
+
106
111
  async #addOrAppend(file: KubbFile.File): Promise<ResolvedFile> {
107
112
  const previousFile = this.#filesByPath.get(file.path)
108
113
 
@@ -110,12 +115,7 @@ export class FileManager {
110
115
  this.#filesByPath.delete(previousFile.path)
111
116
  this.#files.delete(previousFile)
112
117
 
113
- return this.#add({
114
- ...file,
115
- sources: [...(previousFile.sources || []), ...(file.sources || [])],
116
- imports: [...(previousFile.imports || []), ...(file.imports || [])],
117
- exports: [...(previousFile.exports || []), ...(file.exports || [])],
118
- })
118
+ return this.#add(mergeFile(previousFile, file))
119
119
  }
120
120
  return this.#add(file)
121
121
  }
@@ -145,54 +145,26 @@ export class FileManager {
145
145
  this.#files.delete(cacheItem)
146
146
  }
147
147
 
148
- async getIndexFiles({ files, plugin, root, output, logger, options = {} }: AddIndexesProps): Promise<KubbFile.File[]> {
149
- const { exportType = 'barrel' } = output
148
+ async getBarrelFiles({ files, meta, root, output, logger }: AddIndexesProps): Promise<KubbFile.File[]> {
149
+ const { exportType = 'barrelNamed' } = output
150
+ const barrelManager = new BarrelManager({ logger })
151
+
150
152
  if (exportType === false) {
151
153
  return []
152
154
  }
153
155
 
154
- const pathToBuildFrom = resolve(root, output.path)
156
+ const pathToBuildFrom = join(root, output.path)
155
157
 
156
158
  if (trimExtName(pathToBuildFrom).endsWith('index')) {
157
- logger.emit('warning', 'Output has the same fileName as the barrelFiles, please disable barrel generation')
158
- return []
159
- }
160
-
161
- const exportPath = output.path.startsWith('./') ? output.path : `./${output.path}`
162
- const mode = FileManager.getMode(output.path)
163
- const barrelManager = new BarrelManager({ ...options, extName: output.extName })
164
-
165
- let indexFiles = barrelManager.getIndexes(files, pathToBuildFrom)
159
+ logger?.emit('warning', 'Output has the same fileName as the barrelFiles, please disable barrel generation')
166
160
 
167
- if (!indexFiles) {
168
161
  return []
169
162
  }
170
163
 
171
- const rootPath = mode === 'split' ? `${exportPath}/index${output.extName || ''}` : `${exportPath}${output.extName || ''}`
172
- const rootFile: KubbFile.File = {
173
- path: resolve(root, 'index.ts'),
174
- baseName: 'index.ts',
175
- exports: [
176
- output.exportAs
177
- ? {
178
- name: output.exportAs,
179
- asAlias: true,
180
- path: rootPath,
181
- isTypeOnly: options.isTypeOnly,
182
- }
183
- : {
184
- path: rootPath,
185
- isTypeOnly: options.isTypeOnly,
186
- },
187
- ],
188
- sources: [],
189
- meta: {
190
- pluginKey: plugin.key,
191
- },
192
- }
164
+ const barrelFiles = barrelManager.getFiles(files, pathToBuildFrom)
193
165
 
194
166
  if (exportType === 'barrel') {
195
- indexFiles = indexFiles.map((file) => {
167
+ return barrelFiles.map((file) => {
196
168
  return {
197
169
  ...file,
198
170
  exports: file.exports?.map((exportItem) => {
@@ -203,26 +175,14 @@ export class FileManager {
203
175
  }),
204
176
  }
205
177
  })
206
-
207
- rootFile.exports = rootFile.exports?.map((item) => {
208
- return {
209
- ...item,
210
- name: undefined,
211
- }
212
- })
213
178
  }
214
179
 
215
- return [
216
- ...indexFiles.map((indexFile) => {
217
- return {
218
- ...indexFile,
219
- meta: {
220
- pluginKey: plugin.key,
221
- },
222
- }
223
- }),
224
- rootFile,
225
- ]
180
+ return barrelFiles.map((indexFile) => {
181
+ return {
182
+ ...indexFile,
183
+ meta,
184
+ }
185
+ })
226
186
  }
227
187
 
228
188
  async write(...params: Parameters<typeof write>): ReturnType<typeof write> {
@@ -242,51 +202,53 @@ export class FileManager {
242
202
  }
243
203
  }
244
204
 
245
- export async function getSource<TMeta extends FileMetaBase = FileMetaBase>(file: KubbFile.File<TMeta> | ResolvedFile<TMeta>): Promise<string> {
205
+ type GetSourceOptions = {
206
+ logger?: Logger
207
+ }
208
+
209
+ export async function getSource<TMeta extends FileMetaBase = FileMetaBase>(file: ResolvedFile<TMeta>, { logger }: GetSourceOptions = {}): Promise<string> {
246
210
  const parser = await getFileParser(file.extName)
247
211
 
248
- const source = file.sources.map((item) => item.value).join('\n\n')
249
- const exports = file.exports ? combineExports(file.exports) : []
250
- // imports should be defined and source should contain code or we have imports without them being used
251
- const imports = file.imports && source ? combineImports(file.imports, exports, source) : []
212
+ return parser.print(file, { logger })
213
+ }
252
214
 
253
- const importNodes = imports
254
- .filter((item) => {
255
- const path = item.root ? getRelativePath(item.root, item.path) : item.path
256
- // trim extName
257
- return path !== trimExtName(file.path)
258
- })
259
- .map((item) => {
260
- const path = item.root ? getRelativePath(item.root, item.path) : item.path
215
+ export function mergeFile<TMeta extends FileMetaBase = FileMetaBase>(a: KubbFile.File<TMeta>, b: KubbFile.File<TMeta>): KubbFile.File<TMeta> {
216
+ return {
217
+ ...a,
218
+ sources: [...(a.sources || []), ...(b.sources || [])],
219
+ imports: [...(a.imports || []), ...(b.imports || [])],
220
+ exports: [...(a.exports || []), ...(b.exports || [])],
221
+ }
222
+ }
261
223
 
262
- return parser.createImport({
263
- name: item.name,
264
- path: item.extName ? `${path}${item.extName}` : path,
265
- isTypeOnly: item.isTypeOnly,
266
- })
267
- })
268
- const exportNodes = exports
269
- .map((item) => {
270
- if (item.path) {
271
- return parser.createExport({
272
- name: item.name,
273
- path: item.extName ? `${item.path}${item.extName}` : item.path,
274
- isTypeOnly: item.isTypeOnly,
275
- asAlias: item.asAlias,
276
- })
224
+ export function combineSources(sources: Array<KubbFile.Source>): Array<KubbFile.Source> {
225
+ return sources.reduce(
226
+ (prev, curr) => {
227
+ const prevByName = prev.findLast((imp) => imp.name === curr.name)
228
+ const prevByPathAndIsExportable = prev.findLast((imp) => imp.name === curr.name && imp.isExportable)
229
+
230
+ if (prevByPathAndIsExportable) {
231
+ // we already have an export that has the same name but uses `isExportable` (export type ...)
232
+ return [...prev, curr]
277
233
  }
278
- })
279
- .filter(Boolean)
280
234
 
281
- return parser.print({
282
- imports: importNodes,
283
- exports: exportNodes,
284
- source,
285
- })
235
+ if (prevByName) {
236
+ prevByName.value = curr.value
237
+ prevByName.isExportable = curr.isExportable
238
+ prevByName.isTypeOnly = curr.isTypeOnly
239
+ prevByName.isIndexable = curr.isIndexable
240
+
241
+ return prev
242
+ }
243
+
244
+ return [...prev, curr]
245
+ },
246
+ [] as Array<KubbFile.Source>,
247
+ )
286
248
  }
287
249
 
288
250
  export function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.Export> {
289
- const combinedExports = orderBy(exports, [(v) => !v.isTypeOnly], ['asc']).reduce(
251
+ const combinedExports = exports.reduce(
290
252
  (prev, curr) => {
291
253
  const name = curr.name
292
254
  const prevByPath = prev.findLast((imp) => imp.path === curr.path)
@@ -301,6 +263,7 @@ export function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.
301
263
  (imp) => imp.path === curr.path && isDeepEqual(imp.name, name) && imp.isTypeOnly === curr.isTypeOnly && imp.asAlias === curr.asAlias,
302
264
  )
303
265
 
266
+ // we already have an item that was unique enough or name field is empty or prev asAlias is set but current has no changes
304
267
  if (uniquePrev || (Array.isArray(name) && !name.length) || (prevByPath?.asAlias && !curr.asAlias)) {
305
268
  return prev
306
269
  }
@@ -315,6 +278,7 @@ export function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.
315
278
  ]
316
279
  }
317
280
 
281
+ // merge all names when prev and current both have the same isTypeOnly set
318
282
  if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(curr.name) && prevByPath.isTypeOnly === curr.isTypeOnly) {
319
283
  prevByPath.name = [...new Set([...prevByPath.name, ...curr.name])]
320
284
 
@@ -326,11 +290,17 @@ export function combineExports(exports: Array<KubbFile.Export>): Array<KubbFile.
326
290
  [] as Array<KubbFile.Export>,
327
291
  )
328
292
 
329
- return orderBy(combinedExports, [(v) => !v.isTypeOnly, (v) => v.asAlias])
293
+ return orderBy(combinedExports, [
294
+ (v) => !!Array.isArray(v.name),
295
+ (v) => !v.isTypeOnly,
296
+ (v) => v.path,
297
+ (v) => !!v.name,
298
+ (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),
299
+ ])
330
300
  }
331
301
 
332
302
  export function combineImports(imports: Array<KubbFile.Import>, exports: Array<KubbFile.Export>, source?: string): Array<KubbFile.Import> {
333
- const combinedImports = orderBy(imports, [(v) => !v.isTypeOnly], ['asc']).reduce(
303
+ const combinedImports = imports.reduce(
334
304
  (prev, curr) => {
335
305
  let name = Array.isArray(curr.name) ? [...new Set(curr.name)] : curr.name
336
306
 
@@ -349,6 +319,7 @@ export function combineImports(imports: Array<KubbFile.Import>, exports: Array<K
349
319
  return prev
350
320
  }
351
321
 
322
+ // merge all names and check if the importName is being used in the generated source and if not filter those imports out
352
323
  if (Array.isArray(name)) {
353
324
  name = name.filter((item) => (typeof item === 'string' ? hasImportInSource(item) : hasImportInSource(item.propertyName)))
354
325
  }
@@ -362,10 +333,12 @@ export function combineImports(imports: Array<KubbFile.Import>, exports: Array<K
362
333
  return prev
363
334
  }
364
335
 
336
+ // already unique enough or name is empty
365
337
  if (uniquePrev || (Array.isArray(name) && !name.length)) {
366
338
  return prev
367
339
  }
368
340
 
341
+ // new item, append name
369
342
  if (!prevByPath) {
370
343
  return [
371
344
  ...prev,
@@ -376,12 +349,14 @@ export function combineImports(imports: Array<KubbFile.Import>, exports: Array<K
376
349
  ]
377
350
  }
378
351
 
352
+ // merge all names when prev and current both have the same isTypeOnly set
379
353
  if (prevByPath && Array.isArray(prevByPath.name) && Array.isArray(name) && prevByPath.isTypeOnly === curr.isTypeOnly) {
380
354
  prevByPath.name = [...new Set([...prevByPath.name, ...name])]
381
355
 
382
356
  return prev
383
357
  }
384
358
 
359
+ // no import was found in the source, ignore import
385
360
  if (!Array.isArray(name) && name && !hasImportInSource(name)) {
386
361
  return prev
387
362
  }
@@ -391,9 +366,14 @@ export function combineImports(imports: Array<KubbFile.Import>, exports: Array<K
391
366
  [] as Array<KubbFile.Import>,
392
367
  )
393
368
 
394
- return orderBy(combinedImports, [(v) => !v.isTypeOnly])
369
+ return orderBy(combinedImports, [
370
+ (v) => !!Array.isArray(v.name),
371
+ (v) => !v.isTypeOnly,
372
+ (v) => v.path,
373
+ (v) => !!v.name,
374
+ (v) => (Array.isArray(v.name) ? orderBy(v.name) : v.name),
375
+ ])
395
376
  }
396
-
397
377
  type WriteFilesProps = {
398
378
  config: Config
399
379
  files: Array<KubbFile.ResolvedFile>
@@ -424,7 +404,7 @@ export async function processFiles({ dryRun, config, logger, files }: WriteFiles
424
404
  logger.emit('progress_start', { id: 'files', size })
425
405
  const promises = orderedFiles.map(async (file) => {
426
406
  await queue.add(async () => {
427
- const source = await getSource(file)
407
+ const source = await getSource(file, { logger })
428
408
 
429
409
  await write(file.path, source, { sanity: false })
430
410
 
@@ -160,6 +160,7 @@ export class PluginManager {
160
160
  parameters: [params.baseName, params.mode, params.options as object],
161
161
  }).result
162
162
  }
163
+ //TODO refactor by using the order of plugins and the cache of the fileManager instead of guessing and recreating the name/path
163
164
  resolveName = (params: ResolveNameParams): string => {
164
165
  if (params.pluginKey) {
165
166
  const names = this.hookForPluginSync({
@@ -508,7 +509,7 @@ export class PluginManager {
508
509
  this.events.emit('executed', executer)
509
510
  this.executed.push(executer)
510
511
 
511
- this.logger.emit('progress', { id: executer.hookName, data: `${executer.plugin.name}` })
512
+ this.logger.emit('progress', { id: executer.hookName, data: `${executer.plugin.name} ${executer.parameters?.join(', ') || ''}` })
512
513
  }
513
514
  }
514
515
 
@@ -0,0 +1,91 @@
1
+ [
2
+ {
3
+ "path": "src/index.ts",
4
+ "baseName": "index.ts",
5
+ "exports": [
6
+ {
7
+ "name": [
8
+ "hello"
9
+ ],
10
+ "path": "./sub/hello.ts",
11
+ "extName": ".ts"
12
+ },
13
+ {
14
+ "name": [
15
+ "world"
16
+ ],
17
+ "path": "./sub/world.ts",
18
+ "extName": ".ts"
19
+ },
20
+ {
21
+ "name": [
22
+ "test"
23
+ ],
24
+ "path": "./test.ts",
25
+ "extName": ".ts"
26
+ }
27
+ ],
28
+ "sources": [
29
+ {
30
+ "name": "test",
31
+ "value": "",
32
+ "isExportable": false,
33
+ "isIndexable": false
34
+ },
35
+ {
36
+ "name": "hello",
37
+ "value": "",
38
+ "isExportable": false,
39
+ "isIndexable": false
40
+ },
41
+ {
42
+ "name": "world",
43
+ "value": "",
44
+ "isExportable": false,
45
+ "isIndexable": false
46
+ }
47
+ ],
48
+ "id": "feabc02536bd6630458e734990f7e2a21a55c469",
49
+ "name": "index",
50
+ "extName": ".ts",
51
+ "imports": []
52
+ },
53
+ {
54
+ "path": "src/sub/index.ts",
55
+ "baseName": "index.ts",
56
+ "exports": [
57
+ {
58
+ "name": [
59
+ "hello"
60
+ ],
61
+ "path": "./hello.ts",
62
+ "extName": ".ts"
63
+ },
64
+ {
65
+ "name": [
66
+ "world"
67
+ ],
68
+ "path": "./world.ts",
69
+ "extName": ".ts"
70
+ }
71
+ ],
72
+ "sources": [
73
+ {
74
+ "name": "hello",
75
+ "value": "",
76
+ "isExportable": false,
77
+ "isIndexable": false
78
+ },
79
+ {
80
+ "name": "world",
81
+ "value": "",
82
+ "isExportable": false,
83
+ "isIndexable": false
84
+ }
85
+ ],
86
+ "id": "c67967bd2363dd9637437671f6fe1ed146debdbf",
87
+ "name": "index",
88
+ "extName": ".ts",
89
+ "imports": []
90
+ }
91
+ ]
@@ -0,0 +1,114 @@
1
+ {
2
+ "name": "",
3
+ "path": "",
4
+ "children": [
5
+ {
6
+ "name": "src",
7
+ "path": "src",
8
+ "children": [
9
+ {
10
+ "name": "axios",
11
+ "path": "src/axios",
12
+ "children": [
13
+ {
14
+ "name": "file2.ts",
15
+ "file": {
16
+ "path": "src/axios/file2.ts",
17
+ "baseName": "file2.ts",
18
+ "sources": [],
19
+ "id": "6af477de6b602aafbb2e1ce0011b1f411a7ab3a5",
20
+ "name": "file2",
21
+ "extName": ".ts",
22
+ "imports": [],
23
+ "exports": []
24
+ },
25
+ "path": "src/axios/file2.ts"
26
+ },
27
+ {
28
+ "name": "file1.ts",
29
+ "file": {
30
+ "path": "src/axios/file1.ts",
31
+ "baseName": "file2.ts",
32
+ "sources": [],
33
+ "id": "a9679944d24c174b2f2fd5b1f19c9861f1d35d0e",
34
+ "name": "file2",
35
+ "extName": ".ts",
36
+ "imports": [],
37
+ "exports": []
38
+ },
39
+ "path": "src/axios/file1.ts"
40
+ },
41
+ {
42
+ "name": "controller",
43
+ "path": "src/axios/controller",
44
+ "children": [
45
+ {
46
+ "name": "pet.ts",
47
+ "file": {
48
+ "path": "src/axios/controller/pet.ts",
49
+ "baseName": "pet.ts",
50
+ "sources": [],
51
+ "id": "8beaaf5e1b1a6b89a11589c2e3dc5fd7f5eb5e8c",
52
+ "name": "pet",
53
+ "extName": ".ts",
54
+ "imports": [],
55
+ "exports": []
56
+ },
57
+ "path": "src/axios/controller/pet.ts"
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "name": "index.ts",
63
+ "file": {
64
+ "path": "src/axios/index.ts",
65
+ "baseName": "index.ts",
66
+ "sources": [],
67
+ "id": "b077038b83c1ef4050649be406937a73c1f41ad3",
68
+ "name": "index",
69
+ "extName": ".ts",
70
+ "imports": [],
71
+ "exports": []
72
+ },
73
+ "path": "src/axios/index.ts"
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "name": "controller",
79
+ "path": "src/controller",
80
+ "children": [
81
+ {
82
+ "name": "test.ts",
83
+ "file": {
84
+ "path": "src/controller/test.ts",
85
+ "baseName": "test.ts",
86
+ "sources": [],
87
+ "id": "a2d277093a81a74c56c0d094071195302d6bb484",
88
+ "name": "test",
89
+ "extName": ".ts",
90
+ "imports": [],
91
+ "exports": []
92
+ },
93
+ "path": "src/controller/test.ts"
94
+ }
95
+ ]
96
+ },
97
+ {
98
+ "name": "test.ts",
99
+ "file": {
100
+ "path": "src/test.ts",
101
+ "baseName": "test.ts",
102
+ "sources": [],
103
+ "id": "f8e2d98f76d6e33f21aa686d674544b5c7d6fa3e",
104
+ "name": "test",
105
+ "extName": ".ts",
106
+ "imports": [],
107
+ "exports": []
108
+ },
109
+ "path": "src/test.ts"
110
+ }
111
+ ]
112
+ }
113
+ ]
114
+ }
@@ -0,0 +1,62 @@
1
+ [
2
+ {
3
+ "path": "src/test.ts",
4
+ "baseName": "test.ts",
5
+ "sources": [],
6
+ "id": "f8e2d98f76d6e33f21aa686d674544b5c7d6fa3e",
7
+ "name": "test",
8
+ "extName": ".ts",
9
+ "imports": [],
10
+ "exports": []
11
+ },
12
+ {
13
+ "path": "src/axios/file2.ts",
14
+ "baseName": "file2.ts",
15
+ "sources": [],
16
+ "id": "6af477de6b602aafbb2e1ce0011b1f411a7ab3a5",
17
+ "name": "file2",
18
+ "extName": ".ts",
19
+ "imports": [],
20
+ "exports": []
21
+ },
22
+ {
23
+ "path": "src/axios/file1.ts",
24
+ "baseName": "file2.ts",
25
+ "sources": [],
26
+ "id": "a9679944d24c174b2f2fd5b1f19c9861f1d35d0e",
27
+ "name": "file2",
28
+ "extName": ".ts",
29
+ "imports": [],
30
+ "exports": []
31
+ },
32
+ {
33
+ "path": "src/axios/index.ts",
34
+ "baseName": "index.ts",
35
+ "sources": [],
36
+ "id": "b077038b83c1ef4050649be406937a73c1f41ad3",
37
+ "name": "index",
38
+ "extName": ".ts",
39
+ "imports": [],
40
+ "exports": []
41
+ },
42
+ {
43
+ "path": "src/controller/test.ts",
44
+ "baseName": "test.ts",
45
+ "sources": [],
46
+ "id": "a2d277093a81a74c56c0d094071195302d6bb484",
47
+ "name": "test",
48
+ "extName": ".ts",
49
+ "imports": [],
50
+ "exports": []
51
+ },
52
+ {
53
+ "path": "src/axios/controller/pet.ts",
54
+ "baseName": "pet.ts",
55
+ "sources": [],
56
+ "id": "8beaaf5e1b1a6b89a11589c2e3dc5fd7f5eb5e8c",
57
+ "name": "pet",
58
+ "extName": ".ts",
59
+ "imports": [],
60
+ "exports": []
61
+ }
62
+ ]