@timber-js/app 0.2.0-alpha.180 → 0.2.0-alpha.182
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/client/browser-entry/post-hydration.d.ts.map +1 -1
- package/dist/client/internal.js +54 -2
- package/dist/client/internal.js.map +1 -1
- package/dist/client/router.d.ts.map +1 -1
- package/dist/client/rsc-fetch.d.ts +14 -0
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/client/segment-cache.d.ts +4 -0
- package/dist/client/segment-cache.d.ts.map +1 -1
- package/dist/index.js +28 -4
- package/dist/index.js.map +1 -1
- package/dist/plugins/request-dep.d.ts +11 -0
- package/dist/plugins/request-dep.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/client/browser-entry/index.ts +0 -7
- package/src/client/browser-entry/post-hydration.ts +16 -5
- package/src/client/router.ts +27 -4
- package/src/client/rsc-fetch.ts +40 -0
- package/src/client/segment-cache.ts +14 -0
- package/src/plugins/request-dep.ts +47 -6
package/dist/index.js
CHANGED
|
@@ -106,7 +106,7 @@ function timberContent(ctx) {
|
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
//#endregion
|
|
109
|
-
//#region ../../node_modules/.pnpm/srvx@0.
|
|
109
|
+
//#region ../../node_modules/.pnpm/srvx@0.12.0/node_modules/srvx/dist/adapters/node.mjs
|
|
110
110
|
function sendNodeResponse(nodeRes, webRes) {
|
|
111
111
|
try {
|
|
112
112
|
return _sendNodeResponse(nodeRes, webRes, false) || Promise.resolve();
|
|
@@ -183,9 +183,13 @@ function pipeBody(stream, nodeRes, status, statusText, headers) {
|
|
|
183
183
|
}
|
|
184
184
|
function streamBody(stream, nodeRes) {
|
|
185
185
|
if (nodeRes.destroyed) {
|
|
186
|
-
stream.cancel();
|
|
186
|
+
stream.cancel().catch(() => {});
|
|
187
187
|
return;
|
|
188
188
|
}
|
|
189
|
+
if (nodeRes.req?.method === "HEAD") {
|
|
190
|
+
stream.cancel().catch(() => {});
|
|
191
|
+
return endNodeResponse(nodeRes);
|
|
192
|
+
}
|
|
189
193
|
const reader = stream.getReader();
|
|
190
194
|
function streamCancel(error) {
|
|
191
195
|
reader.cancel(error).catch(() => {});
|
|
@@ -7777,6 +7781,9 @@ var ACCESSOR_NAMES = /* @__PURE__ */ new Set([
|
|
|
7777
7781
|
]);
|
|
7778
7782
|
var DEFINITION_FACTORY_SOURCES = /* @__PURE__ */ new Set(["@timber-js/app/search-params", "@timber-js/app/cookies"]);
|
|
7779
7783
|
var DEFINITION_FACTORY_NAMES = /* @__PURE__ */ new Set(["defineSearchParams", "defineCookie"]);
|
|
7784
|
+
function isFrameworkModule(id) {
|
|
7785
|
+
return /[\\/]node_modules[\\/]@timber-js[\\/]app[\\/]/.test(id) || /[\\/]packages[\\/]timber-app[\\/]src[\\/]/.test(id);
|
|
7786
|
+
}
|
|
7780
7787
|
var ACCESSOR_TOKENS = [
|
|
7781
7788
|
"getHeaders",
|
|
7782
7789
|
"getHeader",
|
|
@@ -7864,13 +7871,29 @@ function walkForCall(node, named, namespaces, importedName) {
|
|
|
7864
7871
|
}
|
|
7865
7872
|
return false;
|
|
7866
7873
|
}
|
|
7867
|
-
/**
|
|
7874
|
+
/**
|
|
7875
|
+
* Check if the object chain of a `.get()` call contains `localName`.
|
|
7876
|
+
* Walks through MemberExpression objects and CallExpression callees
|
|
7877
|
+
* to handle chained patterns like `getFilterCookie(key).get()` or
|
|
7878
|
+
* `cookies.theme.get()`.
|
|
7879
|
+
*/
|
|
7880
|
+
function objectChainContains(node, name) {
|
|
7881
|
+
if (node.type === "Identifier" && node.name === name) return true;
|
|
7882
|
+
if (node.type === "MemberExpression") return objectChainContains(node.object, name);
|
|
7883
|
+
if (node.type === "CallExpression") return objectChainContains(node.callee, name);
|
|
7884
|
+
return false;
|
|
7885
|
+
}
|
|
7886
|
+
/**
|
|
7887
|
+
* Check if `.get(...)` is called on `localName` anywhere in the module.
|
|
7888
|
+
* Handles direct (`localName.get()`), chained call (`localName(args).get()`),
|
|
7889
|
+
* and nested member (`localName.prop.get()`) patterns.
|
|
7890
|
+
*/
|
|
7868
7891
|
function hasGetterCall(node, localName) {
|
|
7869
7892
|
if (node.type === "CallExpression") {
|
|
7870
7893
|
const call = node;
|
|
7871
7894
|
if (call.callee.type === "MemberExpression") {
|
|
7872
7895
|
const member = call.callee;
|
|
7873
|
-
if (!member.computed && member.
|
|
7896
|
+
if (!member.computed && member.property.type === "Identifier" && member.property.name === "get" && objectChainContains(member.object, localName)) return true;
|
|
7874
7897
|
}
|
|
7875
7898
|
}
|
|
7876
7899
|
for (const key of Object.keys(node)) {
|
|
@@ -7926,6 +7949,7 @@ function timberRequestDep(ctx) {
|
|
|
7926
7949
|
async transform(code, id) {
|
|
7927
7950
|
if (!/\.[mc]?[jt]sx?$/.test(id) && !/\.mdx?$/.test(id)) return;
|
|
7928
7951
|
if (id.startsWith("\0") || id.startsWith("virtual:")) return;
|
|
7952
|
+
if (isFrameworkModule(id)) return;
|
|
7929
7953
|
if (!hasRelevantToken(code)) return;
|
|
7930
7954
|
const facts = analyzeModule(code, this.parse(code));
|
|
7931
7955
|
if (facts.callsAccessor || facts.importsDefinitionFactory || facts.getterCallSources.length > 0) {
|