expect(deps && [...deps]).toStrictEqual(Object.keys(files))
})
+ // #8339
+ test('relative, .js import', () => {
+ const files = {
+ '/foo.d.ts':
+ 'import { PP } from "./bar.js"; export type P = { foo: PP }',
+ '/bar.d.ts': 'export type PP = "foo" | "bar"'
+ }
+ const { props, deps } = resolve(
+ `
+ import { P } from './foo'
+ defineProps<P>()
+ `,
+ files
+ )
+ expect(props).toStrictEqual({
+ foo: ['String']
+ })
+ expect(deps && [...deps]).toStrictEqual(Object.keys(files))
+ })
+
test('ts module resolve', () => {
const files = {
'/node_modules/foo/package.json': JSON.stringify({
}
function resolveExt(filename: string, fs: FS) {
+ // #8339 ts may import .js but we should resolve to corresponding ts or d.ts
+ filename = filename.replace(/\.js$/, '')
const tryResolve = (filename: string) => {
if (fs.fileExists(filename)) return filename
}