Skip to content

Commit f3e3126

Browse files
authored
fix: resolve aliases before transpiling for rewriteRelativeImportExtensions (#14673)
This swaps the order of TypeScript transpilation and alias resolution in `@sveltejs/package` to fix #13044. TypeScript sees aliases like `$lib/` as bare imports and does not apply `rewriteRelativeImportExtensions`, and resolving aliases first seems like the correct fix. For more see microsoft/TypeScript#61991 (comment)
1 parent 4d3abcd commit f3e3126

File tree

12 files changed

+51
-1
lines changed

12 files changed

+51
-1
lines changed

.changeset/slick-queens-laugh.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@sveltejs/package': patch
3+
---
4+
5+
fix: resolve aliases before transpiling for `rewriteRelativeImportExtensions`

packages/package/src/index.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,14 @@ async function process_file(input, output, file, preprocessor, aliases, tsconfig
224224
}
225225
}
226226

227+
// _before_ transpilining TS, that way TS will apply rewriteRelativeImportExtensions
228+
// to these now-resolved path aliases, too
229+
contents = resolve_aliases(input, file.name, contents, aliases);
230+
227231
if (file.name.endsWith('.ts') && !file.name.endsWith('.d.ts')) {
228232
contents = await transpile_ts(tsconfig, filename, contents);
229233
}
230234

231-
contents = resolve_aliases(input, file.name, contents, aliases);
232235
analyse_code(file.name, contents);
233236
write(dest, contents);
234237
} else {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export declare const helper: () => string;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const helper = () => '';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import { helper } from "./helper.ts";
2+
export { helper };
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import { helper } from "./helper.js";
2+
export { helper };
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "typescript-alias-rewrites",
3+
"private": true,
4+
"version": "1.0.0",
5+
"description": "typescript package with extension rewrites to aliased import paths",
6+
"type": "module",
7+
"peerDependencies": {
8+
"svelte": "^5.0.0"
9+
},
10+
"exports": {
11+
".": {
12+
"types": "./dist/index.d.ts",
13+
"svelte": "./dist/index.js"
14+
}
15+
}
16+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const helper = () => '';
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
import { helper } from '$lib/helper.ts';
2+
export { helper };
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import preprocess from 'svelte-preprocess';
2+
3+
export default {
4+
preprocess: preprocess()
5+
};

0 commit comments

Comments
 (0)