rwsdk 0.3.4 ā 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runtime/entries/worker.d.ts +1 -0
- package/dist/runtime/entries/worker.js +1 -0
- package/dist/runtime/imports/resolveSSRValue.d.ts +1 -0
- package/dist/runtime/imports/resolveSSRValue.js +8 -0
- package/dist/runtime/register/worker.js +1 -0
- package/dist/vite/buildApp.mjs +1 -1
- package/dist/vite/createViteAwareResolver.d.mts +2 -1
- package/dist/vite/createViteAwareResolver.mjs +2 -2
- package/dist/vite/directiveModulesDevPlugin.mjs +1 -1
- package/dist/vite/runDirectivesScan.d.mts +2 -2
- package/dist/vite/runDirectivesScan.mjs +7 -15
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const resolveSSRValue: <Value>(clientReference: Value) => Promise<Value>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ssrGetModuleExport } from "rwsdk/__ssr_bridge";
|
|
2
|
+
export const resolveSSRValue = (clientReference) => {
|
|
3
|
+
const id = clientReference.__rwsdk_clientReferenceId;
|
|
4
|
+
if (!id) {
|
|
5
|
+
throw new Error("RWSDK: Client reference is not a client reference");
|
|
6
|
+
}
|
|
7
|
+
return ssrGetModuleExport(id);
|
|
8
|
+
};
|
|
@@ -13,6 +13,7 @@ export function registerClientReference(id, exportName, value) {
|
|
|
13
13
|
? value
|
|
14
14
|
: () => null;
|
|
15
15
|
const reference = baseRegisterClientReference({}, id, exportName);
|
|
16
|
+
reference.__rwsdk_clientReferenceId = `${id}#${exportName}`;
|
|
16
17
|
const finalDescriptors = Object.getOwnPropertyDescriptors(reference);
|
|
17
18
|
const idDescriptor = finalDescriptors.$$id;
|
|
18
19
|
if (idDescriptor && idDescriptor.hasOwnProperty("value")) {
|
package/dist/vite/buildApp.mjs
CHANGED
|
@@ -13,7 +13,7 @@ export async function buildApp({ builder, clientEntryPoints, clientFiles, server
|
|
|
13
13
|
const workerEnv = builder.environments.worker;
|
|
14
14
|
await runDirectivesScan({
|
|
15
15
|
rootConfig: builder.config,
|
|
16
|
-
|
|
16
|
+
environments: builder.environments,
|
|
17
17
|
clientFiles,
|
|
18
18
|
serverFiles,
|
|
19
19
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import resolve, { ResolveOptions } from "enhanced-resolve";
|
|
2
2
|
import { ResolvedConfig } from "vite";
|
|
3
|
+
import { Environment } from "vite";
|
|
3
4
|
export declare const mapViteResolveToEnhancedResolveOptions: (viteConfig: ResolvedConfig, envName: string) => ResolveOptions;
|
|
4
|
-
export declare const createViteAwareResolver: (viteConfig: ResolvedConfig,
|
|
5
|
+
export declare const createViteAwareResolver: (viteConfig: ResolvedConfig, environment: Environment) => resolve.ResolveFunctionAsync;
|
|
@@ -238,8 +238,8 @@ export const mapViteResolveToEnhancedResolveOptions = (viteConfig, envName) => {
|
|
|
238
238
|
};
|
|
239
239
|
return baseOptions;
|
|
240
240
|
};
|
|
241
|
-
export const createViteAwareResolver = (viteConfig,
|
|
242
|
-
const baseOptions = mapViteResolveToEnhancedResolveOptions(viteConfig,
|
|
241
|
+
export const createViteAwareResolver = (viteConfig, environment) => {
|
|
242
|
+
const baseOptions = mapViteResolveToEnhancedResolveOptions(viteConfig, environment.name);
|
|
243
243
|
// Add Vite plugin resolver if environment is provided
|
|
244
244
|
const plugins = environment
|
|
245
245
|
? [new VitePluginResolverPlugin(environment)]
|
|
@@ -34,7 +34,7 @@ export const directiveModulesDevPlugin = ({ clientFiles, serverFiles, projectRoo
|
|
|
34
34
|
// We don't await it here, allowing Vite to continue its startup.
|
|
35
35
|
scanPromise = runDirectivesScan({
|
|
36
36
|
rootConfig: server.config,
|
|
37
|
-
|
|
37
|
+
environments: server.environments,
|
|
38
38
|
clientFiles,
|
|
39
39
|
serverFiles,
|
|
40
40
|
}).then(() => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Environment, ResolvedConfig } from "vite";
|
|
2
|
-
export declare const runDirectivesScan: ({ rootConfig,
|
|
2
|
+
export declare const runDirectivesScan: ({ rootConfig, environments, clientFiles, serverFiles, }: {
|
|
3
3
|
rootConfig: ResolvedConfig;
|
|
4
|
-
|
|
4
|
+
environments: Record<string, Environment>;
|
|
5
5
|
clientFiles: Set<string>;
|
|
6
6
|
serverFiles: Set<string>;
|
|
7
7
|
}) => Promise<void>;
|
|
@@ -5,8 +5,7 @@ import debug from "debug";
|
|
|
5
5
|
import { getViteEsbuild } from "./getViteEsbuild.mjs";
|
|
6
6
|
import { normalizeModulePath } from "../lib/normalizeModulePath.mjs";
|
|
7
7
|
import { externalModules } from "./constants.mjs";
|
|
8
|
-
import { createViteAwareResolver,
|
|
9
|
-
import resolve from "enhanced-resolve";
|
|
8
|
+
import { createViteAwareResolver, } from "./createViteAwareResolver.mjs";
|
|
10
9
|
const log = debug("rwsdk:vite:run-directives-scan");
|
|
11
10
|
// Copied from Vite's source code.
|
|
12
11
|
// https://github.com/vitejs/vite/blob/main/packages/vite/src/shared/utils.ts
|
|
@@ -15,13 +14,13 @@ const isObject = (value) => Object.prototype.toString.call(value) === "[object O
|
|
|
15
14
|
// https://github.com/vitejs/vite/blob/main/packages/vite/src/node/utils.ts
|
|
16
15
|
const externalRE = /^(https?:)?\/\//;
|
|
17
16
|
const isExternalUrl = (url) => externalRE.test(url);
|
|
18
|
-
export const runDirectivesScan = async ({ rootConfig,
|
|
17
|
+
export const runDirectivesScan = async ({ rootConfig, environments, clientFiles, serverFiles, }) => {
|
|
19
18
|
console.log("\nš Scanning for 'use client' and 'use server' directives...");
|
|
20
19
|
// Set environment variable to indicate scanning is in progress
|
|
21
20
|
process.env.RWSDK_DIRECTIVE_SCAN_ACTIVE = "true";
|
|
22
21
|
try {
|
|
23
22
|
const esbuild = await getViteEsbuild(rootConfig.root);
|
|
24
|
-
const input =
|
|
23
|
+
const input = environments.worker.config.build.rollupOptions?.input;
|
|
25
24
|
let entries;
|
|
26
25
|
if (Array.isArray(input)) {
|
|
27
26
|
entries = input;
|
|
@@ -36,20 +35,13 @@ export const runDirectivesScan = async ({ rootConfig, environment, clientFiles,
|
|
|
36
35
|
entries = [];
|
|
37
36
|
}
|
|
38
37
|
if (entries.length === 0) {
|
|
39
|
-
log("No entries found for directives scan in environment
|
|
38
|
+
log("No entries found for directives scan in worker environment, skipping.");
|
|
40
39
|
return;
|
|
41
40
|
}
|
|
42
41
|
const absoluteEntries = entries.map((entry) => path.resolve(rootConfig.root, entry));
|
|
43
|
-
log("Starting directives scan for environment
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
// Create a client resolver with browser conditions
|
|
47
|
-
// We'll use the mapViteResolveToEnhancedResolveOptions function directly
|
|
48
|
-
// to create a resolver with browser conditions
|
|
49
|
-
const clientResolveOptions = mapViteResolveToEnhancedResolveOptions(rootConfig, environment.name);
|
|
50
|
-
// Override the conditions to use browser conditions for client resolution
|
|
51
|
-
clientResolveOptions.conditionNames = ["browser", "module"];
|
|
52
|
-
const clientResolver = resolve.create(clientResolveOptions);
|
|
42
|
+
log("Starting directives scan for worker environment with entries:", absoluteEntries);
|
|
43
|
+
const workerResolver = createViteAwareResolver(rootConfig, environments.worker);
|
|
44
|
+
const clientResolver = createViteAwareResolver(rootConfig, environments.client);
|
|
53
45
|
const moduleEnvironments = new Map();
|
|
54
46
|
const fileContentCache = new Map();
|
|
55
47
|
const readFileWithCache = async (path) => {
|