@@ -264,81 +264,85 @@ describe('resolveType', () => {
264
264
} )
265
265
266
266
describe ( 'external type imports' , ( ) => {
267
+ const files = {
268
+ '/foo.ts' : 'export type P = { foo: number }' ,
269
+ '/bar.d.ts' : 'type X = { bar: string }; export { X as Y }'
270
+ }
267
271
test ( 'relative ts' , ( ) => {
268
- expect (
269
- resolve (
270
- `
272
+ const { props, deps } = resolve (
273
+ `
271
274
import { P } from './foo'
272
275
import { Y as PP } from './bar'
273
276
defineProps<P & PP>()
274
- ` ,
275
- {
276
- '/foo.ts' : 'export type P = { foo: number }' ,
277
- '/bar.d.ts' : 'type X = { bar: string }; export { X as Y }'
278
- }
279
- ) . props
280
- ) . toStrictEqual ( {
277
+ ` ,
278
+ files
279
+ )
280
+ expect ( props ) . toStrictEqual ( {
281
281
foo : [ 'Number' ] ,
282
282
bar : [ 'String' ]
283
283
} )
284
+ expect ( deps && [ ...deps ] ) . toStrictEqual ( Object . keys ( files ) )
284
285
} )
285
286
286
287
test ( 'relative vue' , ( ) => {
287
- expect (
288
- resolve (
289
- `
288
+ const files = {
289
+ '/foo.vue' :
290
+ '<script lang="ts">export type P = { foo: number }</script>' ,
291
+ '/bar.vue' :
292
+ '<script setup lang="tsx">export type P = { bar: string }</script>'
293
+ }
294
+ const { props, deps } = resolve (
295
+ `
290
296
import { P } from './foo.vue'
291
297
import { P as PP } from './bar.vue'
292
298
defineProps<P & PP>()
293
- ` ,
294
- {
295
- '/foo.vue' :
296
- '<script lang="ts">export type P = { foo: number }</script>' ,
297
- '/bar.vue' :
298
- '<script setup lang="tsx">export type P = { bar: string }</script>'
299
- }
300
- ) . props
301
- ) . toStrictEqual ( {
299
+ ` ,
300
+ files
301
+ )
302
+ expect ( props ) . toStrictEqual ( {
302
303
foo : [ 'Number' ] ,
303
304
bar : [ 'String' ]
304
305
} )
306
+ expect ( deps && [ ...deps ] ) . toStrictEqual ( Object . keys ( files ) )
305
307
} )
306
308
307
309
test ( 'relative (chained)' , ( ) => {
308
- expect (
309
- resolve (
310
- `
310
+ const files = {
311
+ '/foo.ts' : `import type { P as PP } from './nested/bar.vue'
312
+ export type P = { foo: number } & PP` ,
313
+ '/nested/bar.vue' :
314
+ '<script setup lang="ts">export type P = { bar: string }</script>'
315
+ }
316
+ const { props, deps } = resolve (
317
+ `
311
318
import { P } from './foo'
312
319
defineProps<P>()
313
- ` ,
314
- {
315
- '/foo.ts' : `import type { P as PP } from './nested/bar.vue'
316
- export type P = { foo: number } & PP` ,
317
- '/nested/bar.vue' :
318
- '<script setup lang="ts">export type P = { bar: string }</script>'
319
- }
320
- ) . props
321
- ) . toStrictEqual ( {
320
+ ` ,
321
+ files
322
+ )
323
+ expect ( props ) . toStrictEqual ( {
322
324
foo : [ 'Number' ] ,
323
325
bar : [ 'String' ]
324
326
} )
327
+ expect ( deps && [ ...deps ] ) . toStrictEqual ( Object . keys ( files ) )
325
328
} )
326
329
327
330
test ( 'relative (chained, re-export)' , ( ) => {
328
- expect (
329
- resolve (
330
- `
331
+ const files = {
332
+ '/foo.ts' : `export { P as PP } from './bar'` ,
333
+ '/bar.ts' : 'export type P = { bar: string }'
334
+ }
335
+ const { props, deps } = resolve (
336
+ `
331
337
import { PP as P } from './foo'
332
338
defineProps<P>()
333
- ` ,
334
- {
335
- '/foo.ts' : `export { P as PP } from './bar'` ,
336
- '/bar.ts' : 'export type P = { bar: string }'
337
- }
338
- ) . props
339
- ) . toStrictEqual ( {
339
+ ` ,
340
+ files
341
+ )
342
+ expect ( props ) . toStrictEqual ( {
340
343
bar : [ 'String' ]
341
344
} )
345
+ expect ( deps && [ ...deps ] ) . toStrictEqual ( Object . keys ( files ) )
342
346
} )
343
347
344
348
test ( 'ts module resolve' , ( ) => {
@@ -357,7 +361,7 @@ describe('resolveType', () => {
357
361
'/pp.ts' : 'export type PP = { bar: string }'
358
362
}
359
363
360
- const { props } = resolve (
364
+ const { props, deps } = resolve (
361
365
`
362
366
import { P } from 'foo'
363
367
import { PP } from 'bar'
@@ -370,6 +374,10 @@ describe('resolveType', () => {
370
374
foo : [ 'Number' ] ,
371
375
bar : [ 'String' ]
372
376
} )
377
+ expect ( deps && [ ...deps ] ) . toStrictEqual ( [
378
+ '/node_modules/foo/index.d.ts' ,
379
+ '/pp.ts'
380
+ ] )
373
381
} )
374
382
} )
375
383
@@ -447,6 +455,6 @@ function resolve(code: string, files: Record<string, string> = {}) {
447
455
return {
448
456
props,
449
457
calls : raw . calls ,
450
- raw
458
+ deps : ctx . deps
451
459
}
452
460
}
0 commit comments