@farm.js/core 0.1.0-beta.50 → 0.1.0-beta.52
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/{chunk-HSHA3H3U.mjs → chunk-3E2WRUR2.mjs} +15 -1
- package/dist/chunk-3E2WRUR2.mjs.map +1 -0
- package/dist/{chunk-6YIZDTX7.mjs → chunk-BTFOMBWK.mjs} +43 -5
- package/dist/chunk-BTFOMBWK.mjs.map +1 -0
- package/dist/{chunk-GM43ZLTS.mjs → chunk-JK6YAQ3E.mjs} +52 -9
- package/dist/chunk-JK6YAQ3E.mjs.map +1 -0
- package/dist/{chunk-ZAW3D2TI.mjs → chunk-M2DI67UZ.mjs} +2 -2
- package/dist/{chunk-DDE3BBDN.mjs → chunk-TW74WBSB.mjs} +2 -2
- package/dist/{chunk-DDE3BBDN.mjs.map → chunk-TW74WBSB.mjs.map} +1 -1
- package/dist/{chunk-QTAJIJJJ.mjs → chunk-XMUPYG2D.mjs} +2 -2
- package/dist/client/lifecycle.mjs +2 -2
- package/dist/client-plugins.cjs +1 -1
- package/dist/client-plugins.cjs.map +1 -1
- package/dist/client-plugins.mjs +2 -2
- package/dist/client.cjs +15 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.mjs +4 -4
- package/dist/index.cjs +113 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +6 -6
- package/dist/internal/build-runtime.cjs +99 -11
- package/dist/internal/build-runtime.cjs.map +1 -1
- package/dist/internal/build-runtime.mjs +3 -3
- package/dist/internal/client-runtime.cjs +1 -1
- package/dist/internal/client-runtime.cjs.map +1 -1
- package/dist/internal/client-runtime.mjs +2 -2
- package/dist/plugin.cjs +51 -8
- package/dist/plugin.cjs.map +1 -1
- package/dist/plugin.mjs +2 -2
- package/dist/renderer-client.cjs +14 -0
- package/dist/renderer-client.cjs.map +1 -1
- package/dist/renderer-client.mjs +1 -1
- package/dist/server-query-client.cjs +14 -0
- package/dist/server-query-client.cjs.map +1 -1
- package/dist/server-query-client.mjs +2 -2
- package/dist/server.cjs +51 -8
- package/dist/server.cjs.map +1 -1
- package/dist/server.mjs +2 -2
- package/dist/version.cjs +1 -1
- package/dist/version.cjs.map +1 -1
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +51 -8
- package/dist/vite.cjs.map +1 -1
- package/dist/vite.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-6YIZDTX7.mjs.map +0 -1
- package/dist/chunk-GM43ZLTS.mjs.map +0 -1
- package/dist/chunk-HSHA3H3U.mjs.map +0 -1
- /package/dist/{chunk-ZAW3D2TI.mjs.map → chunk-M2DI67UZ.mjs.map} +0 -0
- /package/dist/{chunk-QTAJIJJJ.mjs.map → chunk-XMUPYG2D.mjs.map} +0 -0
|
@@ -19,6 +19,19 @@ var serverQueryClientState = serverQueryClientGlobal[FARM_SERVER_QUERY_CLIENT_ST
|
|
|
19
19
|
nextFunctionId: 0,
|
|
20
20
|
active: []
|
|
21
21
|
});
|
|
22
|
+
var RAW_SERVER_QUERY_SYMBOL = /* @__PURE__ */ Symbol.for("farm.server-query");
|
|
23
|
+
function assertNotRawServerQueryInBrowser(query) {
|
|
24
|
+
if (typeof window === "undefined" || typeof document === "undefined") return;
|
|
25
|
+
if (!query?.[RAW_SERVER_QUERY_SYMBOL]) return;
|
|
26
|
+
throw new Error(
|
|
27
|
+
[
|
|
28
|
+
"useServerQuery received a raw server query implementation in the browser.",
|
|
29
|
+
"Server query handlers run only on the server. Enable the server-function transform (add @farm.js/plugin/rsc and set experimental.serverActions: true in farm.config.ts) so client imports become server references,",
|
|
30
|
+
"or call the query from server code / an API route (createAPIClient) instead."
|
|
31
|
+
].join("\n")
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
__name(assertNotRawServerQueryInBrowser, "assertNotRawServerQueryInBrowser");
|
|
22
35
|
function beginFarmServerQueryAction(actionId, args) {
|
|
23
36
|
const active = serverQueryClientState.active.at(-1);
|
|
24
37
|
return {
|
|
@@ -75,6 +88,7 @@ function prefetchServerQuery(query, input, options = {}) {
|
|
|
75
88
|
}
|
|
76
89
|
__name(prefetchServerQuery, "prefetchServerQuery");
|
|
77
90
|
async function executeServerQuery(query, input, provisionalKey, options) {
|
|
91
|
+
assertNotRawServerQueryInBrowser(query);
|
|
78
92
|
const cache = getFarmClientDataCache();
|
|
79
93
|
const inflight = cache.getInflight(provisionalKey);
|
|
80
94
|
if (inflight) return inflight;
|
|
@@ -149,4 +163,4 @@ export {
|
|
|
149
163
|
fetchServerQuery,
|
|
150
164
|
prefetchServerQuery
|
|
151
165
|
};
|
|
152
|
-
//# sourceMappingURL=chunk-
|
|
166
|
+
//# sourceMappingURL=chunk-3E2WRUR2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server-query-runtime.ts"],"sourcesContent":["\"use client\";\n\nimport { createFarmCacheKey } from \"./cache\";\nimport { getFarmClientDataCache } from \"./client-cache\";\nimport type { ServerQuery } from \"./server-query\";\nimport { isFarmServerQueryResult, type FarmServerQueryResult } from \"./server-query-protocol\";\n\nexport type ServerQueryFetchOptions = {\n /** Used only when a non-Farm transport returns plain data. Farm transports use the declaration. */\n staleTime?: number | false;\n /** Return stale data immediately while refreshing it in the background. Default true. */\n swr?: boolean;\n /** Always wait for a new result. */\n force?: boolean;\n};\n\nexport type FarmServerQueryActionInvocation = {\n actionId: string;\n args: readonly unknown[];\n provisionalKey?: string;\n};\n\ntype ActiveServerQueryInvocation = {\n provisionalKey: string;\n};\n\ntype ServerQueryClientState = {\n functionIds: WeakMap<Function, number>;\n nextFunctionId: number;\n active: ActiveServerQueryInvocation[];\n};\n\nconst FARM_SERVER_QUERY_CLIENT_STATE = Symbol.for(\"farm.serverQueryClientState\");\nconst serverQueryClientGlobal = globalThis as typeof globalThis & {\n [FARM_SERVER_QUERY_CLIENT_STATE]?: ServerQueryClientState;\n};\nconst serverQueryClientState = (serverQueryClientGlobal[FARM_SERVER_QUERY_CLIENT_STATE] ??= {\n functionIds: new WeakMap(),\n nextFunctionId: 0,\n active: [],\n});\n\n// Global symbol registry key set on raw server query implementations by\n// createServerQuery. Referenced via Symbol.for instead of importing\n// server-query.ts, which would pull the server handler pipeline into the\n// client bundle.\nconst RAW_SERVER_QUERY_SYMBOL = Symbol.for(\"farm.server-query\");\n\n/**\n * A query reaching the browser should be a transformed server reference. The\n * raw implementation carries the server query symbol; executing it here would\n * run the server handler in the browser (#408). During SSR the raw\n * implementation is expected and runs directly.\n */\nfunction assertNotRawServerQueryInBrowser(query: unknown): void {\n if (typeof window === \"undefined\" || typeof document === \"undefined\") return;\n if (!(query as Record<symbol, unknown> | null)?.[RAW_SERVER_QUERY_SYMBOL]) return;\n throw new Error(\n [\n \"useServerQuery received a raw server query implementation in the browser.\",\n \"Server query handlers run only on the server. Enable the server-function transform (add @farm.js/plugin/rsc and set experimental.serverActions: true in farm.config.ts) so client imports become server references,\",\n \"or call the query from server code / an API route (createAPIClient) instead.\",\n ].join(\"\\n\"),\n );\n}\n\nexport function beginFarmServerQueryAction(\n actionId: string,\n args: readonly unknown[],\n): FarmServerQueryActionInvocation {\n const active = serverQueryClientState.active.at(-1);\n return {\n actionId,\n args,\n provisionalKey: active?.provisionalKey,\n };\n}\n\nexport function completeFarmServerQueryAction<TData>(\n invocation: FarmServerQueryActionInvocation,\n value: TData | FarmServerQueryResult<TData>,\n): TData {\n if (!isFarmServerQueryResult(value)) return value as TData;\n\n const cache = getFarmClientDataCache();\n const metadata = value.__farmServerQuery;\n if (invocation.provisionalKey) {\n cache.alias(invocation.provisionalKey, metadata.key);\n }\n\n cache.set(metadata.key, {\n data: value.data,\n updatedAt: metadata.updatedAt,\n staleAt:\n metadata.staleTime === false\n ? Number.POSITIVE_INFINITY\n : metadata.updatedAt + metadata.staleTime,\n status: \"success\",\n error: null,\n fetching: false,\n });\n\n return value.data as TData;\n}\n\nexport function createServerQueryCallKey<TInput, TData>(\n query: ServerQuery<TInput, TData>,\n input: TInput,\n): string {\n let id = serverQueryClientState.functionIds.get(query);\n if (!id) {\n id = ++serverQueryClientState.nextFunctionId;\n serverQueryClientState.functionIds.set(query, id);\n }\n return createFarmCacheKey([\"server-query-call\", id, input]);\n}\n\nexport async function fetchServerQuery<TInput, TData>(\n query: ServerQuery<TInput, TData>,\n input: TInput,\n options: ServerQueryFetchOptions = {},\n): Promise<TData> {\n const cache = getFarmClientDataCache();\n const provisionalKey = createServerQueryCallKey(query, input);\n const entry = cache.get<TData>(provisionalKey);\n const stale = cache.isStale(provisionalKey);\n const inflight = cache.getInflight<TData>(provisionalKey);\n\n if (inflight) return inflight;\n if (!options.force && entry && !stale && entry.status !== \"error\") return entry.data;\n\n if (\n !options.force &&\n entry &&\n stale &&\n entry.status !== \"pending\" &&\n entry.status !== \"error\" &&\n (options.swr ?? true)\n ) {\n void executeServerQuery(query, input, provisionalKey, options).catch(() => undefined);\n return entry.data;\n }\n\n return executeServerQuery(query, input, provisionalKey, options);\n}\n\nexport function prefetchServerQuery<TInput, TData>(\n query: ServerQuery<TInput, TData>,\n input: TInput,\n options: Omit<ServerQueryFetchOptions, \"force\"> = {},\n): Promise<TData> {\n return fetchServerQuery(query, input, options);\n}\n\nasync function executeServerQuery<TInput, TData>(\n query: ServerQuery<TInput, TData>,\n input: TInput,\n provisionalKey: string,\n options: ServerQueryFetchOptions,\n): Promise<TData> {\n assertNotRawServerQueryInBrowser(query);\n const cache = getFarmClientDataCache();\n const inflight = cache.getInflight<TData>(provisionalKey);\n if (inflight) return inflight;\n\n const previous = cache.get<TData>(provisionalKey);\n cache.set(provisionalKey, {\n data: previous?.data as TData,\n updatedAt: previous?.updatedAt ?? 0,\n staleAt: previous?.staleAt ?? 0,\n gcAt: previous?.gcAt,\n invalidatedAt: previous?.invalidatedAt,\n status: \"pending\",\n error: null,\n fetching: true,\n });\n\n const promise = (async () => {\n try {\n serverQueryClientState.active.push({ provisionalKey });\n let pending: Promise<TData>;\n try {\n pending = query(input);\n } finally {\n serverQueryClientState.active.pop();\n }\n\n const data = await pending;\n const transported = cache.get<TData>(provisionalKey);\n if (!transported || transported.fetching) {\n const updatedAt = Date.now();\n cache.set(provisionalKey, {\n data,\n updatedAt,\n staleAt:\n options.staleTime === false\n ? Number.POSITIVE_INFINITY\n : updatedAt + (options.staleTime ?? 0),\n status: \"success\",\n error: null,\n fetching: false,\n });\n }\n return data;\n } catch (cause) {\n const error = normalizeServerQueryError(cause);\n const current = cache.get<TData>(provisionalKey);\n cache.set(provisionalKey, {\n data: current?.data as TData,\n updatedAt: current?.updatedAt ?? 0,\n staleAt: current?.staleAt ?? 0,\n gcAt: current?.gcAt,\n invalidatedAt: current?.invalidatedAt,\n status: \"error\",\n error,\n fetching: false,\n });\n throw error;\n } finally {\n cache.deleteInflight(provisionalKey);\n }\n })();\n\n cache.setInflight(provisionalKey, promise);\n return promise;\n}\n\nfunction normalizeServerQueryError(cause: unknown): Error {\n if (cause instanceof Error) return cause;\n const error = new Error(typeof cause === \"string\" ? cause : \"Server query failed\");\n (error as Error & { cause?: unknown }).cause = cause;\n return error;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -37,7 +37,7 @@ import {
|
|
|
37
37
|
mergeFarmFontCss,
|
|
38
38
|
mergeFarmViteConfig,
|
|
39
39
|
resolveRouteRenderingConfigFromFile
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-JK6YAQ3E.mjs";
|
|
41
41
|
import {
|
|
42
42
|
farmEnvironmentFunctionsPlugin
|
|
43
43
|
} from "./chunk-V6WE6JSZ.mjs";
|
|
@@ -655,16 +655,45 @@ var FARM_SSR_PACKAGE_IMPORT = "#farm-ssr-entry";
|
|
|
655
655
|
var FARM_SSR_OUTPUT_DIR = "farm-ssr";
|
|
656
656
|
var FARM_CLIENT_BUILD_TARGET = ["es2020", "edge88", "firefox78", "chrome87", "safari14"];
|
|
657
657
|
function resolveNitroRuntimeDependency(root, specifier) {
|
|
658
|
+
return createRequire(resolveNitroPackageEntry(root)).resolve(specifier).split(path4.sep).join("/");
|
|
659
|
+
}
|
|
660
|
+
__name(resolveNitroRuntimeDependency, "resolveNitroRuntimeDependency");
|
|
661
|
+
function createPrerenderRuntimeResolverPlugin(root, resolveNitroEntry = resolveNitroPackageEntry) {
|
|
662
|
+
let nitroEntry;
|
|
663
|
+
return {
|
|
664
|
+
name: "farm-prerender-runtime-resolver",
|
|
665
|
+
async resolveId(id, _importer, options) {
|
|
666
|
+
if (options.custom?.farmPrerenderRuntimeResolve) return null;
|
|
667
|
+
if (id.startsWith("\0") || id.startsWith(".") || id.startsWith("#") || id.startsWith("virtual:") || path4.isAbsolute(id) || NODE_BUILTIN_MODULES.has(id)) {
|
|
668
|
+
return null;
|
|
669
|
+
}
|
|
670
|
+
if (nitroEntry === void 0) {
|
|
671
|
+
try {
|
|
672
|
+
nitroEntry = resolveNitroEntry(root);
|
|
673
|
+
} catch {
|
|
674
|
+
nitroEntry = null;
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
if (!nitroEntry) return null;
|
|
678
|
+
return this.resolve(id, nitroEntry, {
|
|
679
|
+
...options,
|
|
680
|
+
skipSelf: true,
|
|
681
|
+
custom: { ...options.custom, farmPrerenderRuntimeResolve: true }
|
|
682
|
+
});
|
|
683
|
+
}
|
|
684
|
+
};
|
|
685
|
+
}
|
|
686
|
+
__name(createPrerenderRuntimeResolverPlugin, "createPrerenderRuntimeResolverPlugin");
|
|
687
|
+
function resolveNitroPackageEntry(root) {
|
|
658
688
|
const projectRequire = createRequire(path4.join(root, "package.json"));
|
|
659
689
|
let runtimeRequire = projectRequire;
|
|
660
690
|
try {
|
|
661
691
|
runtimeRequire = createRequire(projectRequire.resolve("@farm.js/core"));
|
|
662
692
|
} catch {
|
|
663
693
|
}
|
|
664
|
-
|
|
665
|
-
return createRequire(nitroEntry).resolve(specifier).split(path4.sep).join("/");
|
|
694
|
+
return runtimeRequire.resolve("nitro");
|
|
666
695
|
}
|
|
667
|
-
__name(
|
|
696
|
+
__name(resolveNitroPackageEntry, "resolveNitroPackageEntry");
|
|
668
697
|
function cloneConfigValue(value, seen = /* @__PURE__ */ new WeakMap()) {
|
|
669
698
|
if (value === null || typeof value !== "object") return value;
|
|
670
699
|
if (seen.has(value)) return seen.get(value);
|
|
@@ -6930,6 +6959,15 @@ export default async function farmNitroEventHandler(event) {
|
|
|
6930
6959
|
delete prerendererConfig.entry;
|
|
6931
6960
|
});
|
|
6932
6961
|
}
|
|
6962
|
+
nitroInstance.hooks.hook("prerender:init", (prerenderer) => {
|
|
6963
|
+
prerenderer.hooks.hook("rollup:before", (_prerenderNitro, rollupConfig) => {
|
|
6964
|
+
const configuredPlugins = rollupConfig.plugins;
|
|
6965
|
+
rollupConfig.plugins = [
|
|
6966
|
+
...Array.isArray(configuredPlugins) ? configuredPlugins : configuredPlugins ? [configuredPlugins] : [],
|
|
6967
|
+
createPrerenderRuntimeResolverPlugin(config.root)
|
|
6968
|
+
];
|
|
6969
|
+
});
|
|
6970
|
+
});
|
|
6933
6971
|
await nitro.prepare(nitroInstance);
|
|
6934
6972
|
await nitro.copyPublicAssets(nitroInstance);
|
|
6935
6973
|
if (prerenderRoutes.length > 0 && canReusePrebuiltSSR) {
|
|
@@ -7681,4 +7719,4 @@ __name(buildNitro, "buildNitro");
|
|
|
7681
7719
|
export {
|
|
7682
7720
|
build
|
|
7683
7721
|
};
|
|
7684
|
-
//# sourceMappingURL=chunk-
|
|
7722
|
+
//# sourceMappingURL=chunk-BTFOMBWK.mjs.map
|