Skip to content

Commit 569a0e6

Browse files
committed
refactor(runtime): reuse shared node runtime detection
1 parent 89f7157 commit 569a0e6

4 files changed

Lines changed: 17 additions & 35 deletions

File tree

packages/runtime/src/jspm-module-loader.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
type RuntimeDiagnostic,
44
} from "@renderify/ir";
55
import type { RuntimeModuleLoader } from "./index";
6+
import { isNodeRuntime } from "./runtime-environment";
67
import { RuntimeSourceModuleLoader } from "./runtime-source-module-loader";
78
import { rewriteImportsAsync } from "./runtime-source-utils";
89

@@ -267,7 +268,7 @@ export class JspmModuleLoader implements RuntimeModuleLoader {
267268
}
268269

269270
private shouldMaterializeRemoteModuleInNode(specifier: string): boolean {
270-
return this.isNodeRuntime() && this.isUrl(specifier);
271+
return isNodeRuntime() && this.isUrl(specifier);
271272
}
272273

273274
private getRemoteSourceModuleLoader(): RuntimeSourceModuleLoader {
@@ -311,13 +312,4 @@ export class JspmModuleLoader implements RuntimeModuleLoader {
311312
"Node remote module materialization requires Buffer support",
312313
);
313314
}
314-
315-
private isNodeRuntime(): boolean {
316-
return (
317-
typeof process !== "undefined" &&
318-
typeof process.versions === "object" &&
319-
process.versions !== null &&
320-
typeof process.versions.node === "string"
321-
);
322-
}
323315
}

packages/runtime/src/runtime-component-runtime.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import {
1414
getVmSpecifier,
1515
hasPreactFactory,
1616
hasVmScript,
17+
isNodeRuntime,
1718
type NodeVmModule,
1819
nowMs,
1920
} from "./runtime-environment";
@@ -216,12 +217,7 @@ async function loadPreactModule(): Promise<PreactLikeModule | undefined> {
216217
}
217218

218219
async function loadVmModule(): Promise<NodeVmModule | undefined> {
219-
if (
220-
typeof process === "undefined" ||
221-
typeof process.versions !== "object" ||
222-
process.versions === null ||
223-
typeof process.versions.node !== "string"
224-
) {
220+
if (!isNodeRuntime()) {
225221
return undefined;
226222
}
227223

packages/runtime/src/runtime-environment.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ export function isBrowserRuntime(): boolean {
1717
);
1818
}
1919

20+
export function isNodeRuntime(): boolean {
21+
return (
22+
typeof process !== "undefined" &&
23+
typeof process.versions === "object" &&
24+
process.versions !== null &&
25+
typeof process.versions.node === "string"
26+
);
27+
}
28+
2029
export interface NodeVmScript {
2130
runInNewContext(
2231
contextObject: Record<string, unknown>,

packages/runtime/src/runtime-source-module-loader.ts

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
isJsonModuleResponse,
1414
type RemoteModuleFetchResult,
1515
} from "./module-fetch";
16-
import { isBrowserRuntime } from "./runtime-environment";
16+
import { isBrowserRuntime, isNodeRuntime } from "./runtime-environment";
1717
import { isHttpUrl } from "./runtime-specifier";
1818

1919
export interface RuntimeSourceModuleLoaderOptions {
@@ -582,12 +582,7 @@ export class RuntimeSourceModuleLoader {
582582
}
583583

584584
this.nodeModuleResolverPromise = (async () => {
585-
if (
586-
typeof process === "undefined" ||
587-
typeof process.versions !== "object" ||
588-
process.versions === null ||
589-
typeof process.versions.node !== "string"
590-
) {
585+
if (!isNodeRuntime()) {
591586
return undefined;
592587
}
593588

@@ -618,12 +613,7 @@ export class RuntimeSourceModuleLoader {
618613
}
619614

620615
this.nodePathToFileUrlPromise = (async () => {
621-
if (
622-
typeof process === "undefined" ||
623-
typeof process.versions !== "object" ||
624-
process.versions === null ||
625-
typeof process.versions.node !== "string"
626-
) {
616+
if (!isNodeRuntime()) {
627617
return undefined;
628618
}
629619

@@ -649,12 +639,7 @@ export class RuntimeSourceModuleLoader {
649639
}
650640

651641
this.nodePathModulePromise = (async () => {
652-
if (
653-
typeof process === "undefined" ||
654-
typeof process.versions !== "object" ||
655-
process.versions === null ||
656-
typeof process.versions.node !== "string"
657-
) {
642+
if (!isNodeRuntime()) {
658643
return undefined;
659644
}
660645

0 commit comments

Comments
 (0)