Skip to content

Commit 66a2869

Browse files
committed
fix(plugins): route sdk alias loads through transform
1 parent a000e63 commit 66a2869

3 files changed

Lines changed: 12 additions & 18 deletions

File tree

src/plugins/loader.ts

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -99,15 +99,14 @@ import {
9999
restoreMemoryPluginState,
100100
} from "./memory-state.js";
101101
import { unwrapDefaultModuleExport } from "./module-export.js";
102-
import { tryNativeRequireJavaScriptModule } from "./native-module-require.js";
103102
import {
104103
fingerprintPluginDiscoveryContext,
105104
resolvePluginDiscoveryContext,
106105
} from "./plugin-control-plane-context.js";
107106
import { withProfile } from "./plugin-load-profile.js";
108107
import {
109108
createPluginModuleLoaderCache,
110-
getCachedPluginSourceModuleLoader,
109+
getCachedPluginModuleLoader,
111110
type PluginModuleLoaderCache,
112111
} from "./plugin-module-loader-cache.js";
113112
import type { PluginOrigin } from "./plugin-origin.types.js";
@@ -480,8 +479,8 @@ function runPluginRegisterSync(
480479

481480
function createPluginModuleLoader(options: Pick<PluginLoadOptions, "pluginSdkResolution">) {
482481
const moduleLoaders: PluginModuleLoaderCache = createPluginModuleLoaderCache();
483-
const loadSourceModule = (modulePath: string) => {
484-
return getCachedPluginSourceModuleLoader({
482+
const createLoaderForModule = (modulePath: string) => {
483+
return getCachedPluginModuleLoader({
485484
cache: moduleLoaders,
486485
modulePath,
487486
importerUrl: import.meta.url,
@@ -495,18 +494,8 @@ function createPluginModuleLoader(options: Pick<PluginLoadOptions, "pluginSdkRes
495494
pluginSdkResolution: options.pluginSdkResolution,
496495
});
497496
};
498-
return (modulePath: string): unknown => {
499-
if (shouldPreferNativeModuleLoad(modulePath)) {
500-
const native = tryNativeRequireJavaScriptModule(modulePath, { allowWindows: true });
501-
if (native.ok) {
502-
return native.moduleExport;
503-
}
504-
}
505-
// Source .ts runtime shims import sibling ".js" specifiers that only exist
506-
// after build. Jiti remains the dev/source fallback because it rewrites those
507-
// imports against the source graph and applies SDK aliases.
508-
return loadSourceModule(modulePath)(toSafeImportPath(modulePath));
509-
};
497+
return (modulePath: string): unknown =>
498+
createLoaderForModule(modulePath)(toSafeImportPath(modulePath));
510499
}
511500

512501
function resolveCanonicalDistRuntimeSource(source: string): string {

src/plugins/plugin-module-loader-cache.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,12 +268,16 @@ function createPluginModuleLoader(params: {
268268
// for TS / TSX sources and for the small set of require(esm) /
269269
// async-module fallbacks `tryNativeRequireJavaScriptModule` declines to
270270
// handle.
271+
const getLoadWithAliasTransform = createLazySourceTransformLoader({
272+
...params,
273+
tryNative: false,
274+
});
271275
return ((target: string, ...rest: unknown[]) => {
272276
pluginModuleLoaderStats.calls += 1;
273277
if (shouldForceSourceTransformForPluginSdkAlias({ target, aliasMap: params.aliasMap })) {
274278
pluginModuleLoaderStats.sourceTransformForced += 1;
275279
recordSourceTransformTarget(target);
276-
return (getLoadWithSourceTransform() as (t: string, ...a: unknown[]) => unknown)(
280+
return (getLoadWithAliasTransform() as (t: string, ...a: unknown[]) => unknown)(
277281
target,
278282
...rest,
279283
);

src/plugins/plugin-sdk-dist-alias.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ function writeRuntimeModuleWrapper(sourcePath: string, targetPath: string): void
1010
const relative = `./${path.relative(path.dirname(targetPath), sourcePath).split(path.sep).join("/")}`;
1111
const content = [
1212
`export * from ${JSON.stringify(relative)};`,
13-
`export { default } from ${JSON.stringify(relative)};`,
13+
`import * as moduleExports from ${JSON.stringify(relative)};`,
14+
`export default moduleExports.default ?? moduleExports;`,
1415
"",
1516
].join("\n");
1617
try {

0 commit comments

Comments
 (0)