@farm.js/plugin 0.1.0-beta.20 → 0.1.0-beta.22
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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/rsc/entries/client.d.ts +1 -0
- package/dist/rsc/entries/client.d.ts.map +1 -1
- package/dist/rsc/entries/client.js +33 -3
- package/dist/rsc/entries/rsc.d.ts.map +1 -1
- package/dist/rsc/entries/rsc.js +12 -6
- package/dist/rsc/index.d.ts.map +1 -1
- package/dist/rsc/index.js +3 -4
- package/package.json +3 -3
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EntryContext } from "../types.js";
|
|
2
|
+
export declare const serverFnTransportErrorClientRuntime = "function createFarmServerFnTransportError(value) {\n const message = value && typeof value === 'object' && typeof value.message === 'string'\n ? value.message\n : 'Server function failed';\n const error = new Error(message);\n\n if (\n value &&\n typeof value === 'object' &&\n value.name === 'ServerFnFailure' &&\n typeof value.code === 'string' &&\n Number.isInteger(value.status) &&\n value.status >= 400 &&\n value.status <= 599 &&\n Object.prototype.hasOwnProperty.call(value, 'data')\n ) {\n error.name = 'ServerFnFailure';\n error.code = value.code;\n error.status = value.status;\n error.data = value.data;\n Object.defineProperty(error, Symbol.for('farm.server-fn.failure'), {\n value: true,\n enumerable: false,\n });\n return error;\n }\n\n error.name = 'ServerActionError';\n return error;\n}";
|
|
2
3
|
/**
|
|
3
4
|
* Generates the browser entry file.
|
|
4
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/rsc/entries/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAiR7D"}
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/rsc/entries/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,mCAAmC,62BA6B9C,CAAC;AAEH;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAiR7D"}
|
|
@@ -1,3 +1,33 @@
|
|
|
1
|
+
export const serverFnTransportErrorClientRuntime = `function createFarmServerFnTransportError(value) {
|
|
2
|
+
const message = value && typeof value === 'object' && typeof value.message === 'string'
|
|
3
|
+
? value.message
|
|
4
|
+
: 'Server function failed';
|
|
5
|
+
const error = new Error(message);
|
|
6
|
+
|
|
7
|
+
if (
|
|
8
|
+
value &&
|
|
9
|
+
typeof value === 'object' &&
|
|
10
|
+
value.name === 'ServerFnFailure' &&
|
|
11
|
+
typeof value.code === 'string' &&
|
|
12
|
+
Number.isInteger(value.status) &&
|
|
13
|
+
value.status >= 400 &&
|
|
14
|
+
value.status <= 599 &&
|
|
15
|
+
Object.prototype.hasOwnProperty.call(value, 'data')
|
|
16
|
+
) {
|
|
17
|
+
error.name = 'ServerFnFailure';
|
|
18
|
+
error.code = value.code;
|
|
19
|
+
error.status = value.status;
|
|
20
|
+
error.data = value.data;
|
|
21
|
+
Object.defineProperty(error, Symbol.for('farm.server-fn.failure'), {
|
|
22
|
+
value: true,
|
|
23
|
+
enumerable: false,
|
|
24
|
+
});
|
|
25
|
+
return error;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
error.name = 'ServerActionError';
|
|
29
|
+
return error;
|
|
30
|
+
}`;
|
|
1
31
|
/**
|
|
2
32
|
* Generates the browser entry file.
|
|
3
33
|
*
|
|
@@ -45,6 +75,8 @@ import {
|
|
|
45
75
|
let actionSetup = "";
|
|
46
76
|
if (ctx.actionsEnabled) {
|
|
47
77
|
actionSetup = `
|
|
78
|
+
${serverFnTransportErrorClientRuntime}
|
|
79
|
+
|
|
48
80
|
// Ref for payload setter (used by server action callback and refetch)
|
|
49
81
|
const setPayloadRef = { current: null };
|
|
50
82
|
|
|
@@ -96,9 +128,7 @@ setServerCallback(async (id, args) => {
|
|
|
96
128
|
applyFarmCacheInvalidations(p.returnValue?.invalidations);
|
|
97
129
|
if (!p.returnValue || !p.returnValue.ok) {
|
|
98
130
|
debug('Server action failed:', id);
|
|
99
|
-
|
|
100
|
-
error.name = 'ServerActionError';
|
|
101
|
-
throw error;
|
|
131
|
+
throw createFarmServerFnTransportError(p.returnValue?.data);
|
|
102
132
|
}
|
|
103
133
|
return completeFarmServerQueryAction(serverQueryInvocation, p.returnValue.data);
|
|
104
134
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../../src/rsc/entries/rsc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"rsc.d.ts","sourceRoot":"","sources":["../../../src/rsc/entries/rsc.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAs7B1D"}
|
package/dist/rsc/entries/rsc.js
CHANGED
|
@@ -642,8 +642,11 @@ async function handleFarmRequest(request) {
|
|
|
642
642
|
if (request.signal.aborted) {
|
|
643
643
|
return new Response(null, { status: 499, headers: { 'Cache-Control': 'no-store' } });
|
|
644
644
|
}
|
|
645
|
-
|
|
646
|
-
|
|
645
|
+
const actionError = sanitizeServerActionError(e);
|
|
646
|
+
if (actionError.name === 'ServerActionError') {
|
|
647
|
+
console.error('[Farm.js] Server action failed:', e);
|
|
648
|
+
}
|
|
649
|
+
returnValue = { ok: false, data: actionError };
|
|
647
650
|
debug('Server action failed:', actionId, e);
|
|
648
651
|
}
|
|
649
652
|
} else {
|
|
@@ -674,10 +677,13 @@ async function handleFarmRequest(request) {
|
|
|
674
677
|
if (request.signal.aborted) {
|
|
675
678
|
return new Response(null, { status: 499, headers: { 'Cache-Control': 'no-store' } });
|
|
676
679
|
}
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
680
|
+
const actionError = sanitizeServerActionError(e);
|
|
681
|
+
if (actionError.name === 'ServerActionError') {
|
|
682
|
+
console.error('[Farm.js] Form action failed:', e);
|
|
683
|
+
}
|
|
684
|
+
debug('Form action failed:', actionError);
|
|
685
|
+
return new Response(actionError.message, {
|
|
686
|
+
status: actionError.name === 'ServerFnFailure' ? actionError.status : 500,
|
|
681
687
|
headers: {
|
|
682
688
|
'Cache-Control': 'no-store',
|
|
683
689
|
'Content-Type': 'text/plain; charset=utf-8',
|
package/dist/rsc/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rsc/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAA4B,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA4B9E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExF,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE;QACb;;;WAGG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B;;;WAGG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;;;;;WAOG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,gHAAgH;IAChH,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,aAAkB,GAAG,UAAU,CAiDnE;AA8TD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rsc/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAA4B,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,MAAM,CAAC;AAE9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AACpF,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA4B9E,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExF,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjE,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE;QACb;;;WAGG;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B;;;WAGG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;;;;;WAOG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B,CAAC;IACF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,gHAAgH;IAChH,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,aAAkB,GAAG,UAAU,CAiDnE;AA8TD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAyoC5E"}
|
package/dist/rsc/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import { init as initModuleLexer, parse as parseModuleImports } from "es-module-
|
|
|
26
26
|
import { farmEnvironmentFunctionsPlugin } from "@farm.js/core/environment/vite";
|
|
27
27
|
import { generateRscEntry } from "./entries/rsc.js";
|
|
28
28
|
import { generateSsrEntry } from "./entries/ssr.js";
|
|
29
|
-
import { generateClientEntry } from "./entries/client.js";
|
|
29
|
+
import { generateClientEntry, serverFnTransportErrorClientRuntime } from "./entries/client.js";
|
|
30
30
|
import { transformFarmServerFns } from "./server-fn-transform.js";
|
|
31
31
|
import { transformAutomaticOptimizedBoundaries } from "./automatic-optimized-boundary.js";
|
|
32
32
|
import { resolveRscBuildOutputPath } from "./build-paths.js";
|
|
@@ -848,6 +848,7 @@ import {
|
|
|
848
848
|
createFarmDeploymentRequestHeaders,
|
|
849
849
|
isFarmDeploymentMismatchResponse,
|
|
850
850
|
} from '@farm.js/core/deployment';
|
|
851
|
+
${serverFnTransportErrorClientRuntime}
|
|
851
852
|
const farmDeploymentId = ${JSON.stringify(entryContext.deploymentId)};
|
|
852
853
|
setServerCallback(async (id, args) => {
|
|
853
854
|
const refs = createTemporaryReferenceSet();
|
|
@@ -874,9 +875,7 @@ setServerCallback(async (id, args) => {
|
|
|
874
875
|
if (!res.ok) throw new Error('Server action failed: ' + res.status);
|
|
875
876
|
const p = await createFromReadableStream(res.body, { temporaryReferences: refs });
|
|
876
877
|
if (p?.returnValue?.ok) return p.returnValue.data;
|
|
877
|
-
|
|
878
|
-
error.name = 'ServerActionError';
|
|
879
|
-
throw error;
|
|
878
|
+
throw createFarmServerFnTransportError(p?.returnValue?.data);
|
|
880
879
|
});
|
|
881
880
|
`
|
|
882
881
|
: "";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@farm.js/plugin",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.22",
|
|
4
4
|
"description": "Official plugins for Farm.js framework",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Farm.js Team",
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"nitro": "3.0.1-alpha.0",
|
|
62
62
|
"picocolors": "^1.0.0",
|
|
63
63
|
"rsc-html-stream": "^0.0.4",
|
|
64
|
-
"@farm.js/core": "0.1.0-beta.
|
|
64
|
+
"@farm.js/core": "0.1.0-beta.22"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@types/node": "^20.19.21",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"react-dom": "19.2.8",
|
|
83
83
|
"react-server-dom-webpack": "19.2.8",
|
|
84
84
|
"vite": ">=6.0.0",
|
|
85
|
-
"@farm.js/core": "0.1.0-beta.
|
|
85
|
+
"@farm.js/core": "0.1.0-beta.22"
|
|
86
86
|
},
|
|
87
87
|
"peerDependenciesMeta": {
|
|
88
88
|
"@vitejs/plugin-rsc": {
|