@sylphx/lens-server 2.7.0 → 2.7.2
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.js +6 -1
- package/package.json +2 -2
- package/src/server/create.ts +15 -1
package/dist/index.js
CHANGED
|
@@ -786,7 +786,12 @@ class LensServerImpl {
|
|
|
786
786
|
emit: createFieldEmit(currentPath),
|
|
787
787
|
onCleanup
|
|
788
788
|
};
|
|
789
|
-
|
|
789
|
+
if (resolverDef.isSubscription(field)) {
|
|
790
|
+
result[field] = null;
|
|
791
|
+
resolverDef.resolveField(field, obj, args, extendedCtx).catch(() => {});
|
|
792
|
+
} else {
|
|
793
|
+
result[field] = await resolverDef.resolveField(field, obj, args, extendedCtx);
|
|
794
|
+
}
|
|
790
795
|
} catch {
|
|
791
796
|
result[field] = null;
|
|
792
797
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sylphx/lens-server",
|
|
3
|
-
"version": "2.7.
|
|
3
|
+
"version": "2.7.2",
|
|
4
4
|
"description": "Server runtime for Lens API framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"author": "SylphxAI",
|
|
31
31
|
"license": "MIT",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@sylphx/lens-core": "^2.
|
|
33
|
+
"@sylphx/lens-core": "^2.5.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"typescript": "^5.9.3",
|
package/src/server/create.ts
CHANGED
|
@@ -952,7 +952,21 @@ class LensServerImpl<
|
|
|
952
952
|
emit: createFieldEmit!(currentPath),
|
|
953
953
|
onCleanup: onCleanup!,
|
|
954
954
|
};
|
|
955
|
-
|
|
955
|
+
|
|
956
|
+
// Check if field is a subscription (uses emit pattern)
|
|
957
|
+
if (resolverDef.isSubscription(field)) {
|
|
958
|
+
// Subscription fields use emit pattern - don't await completion
|
|
959
|
+
// The resolver runs in background, pushing values via emit()
|
|
960
|
+
// Set initial value to null, emit() will update it
|
|
961
|
+
result[field] = null;
|
|
962
|
+
// Start resolver without awaiting (fire and forget)
|
|
963
|
+
resolverDef.resolveField(field, obj, args, extendedCtx).catch(() => {
|
|
964
|
+
// Subscription errors are handled via emit, ignore here
|
|
965
|
+
});
|
|
966
|
+
} else {
|
|
967
|
+
// Regular resolved field - await the result
|
|
968
|
+
result[field] = await resolverDef.resolveField(field, obj, args, extendedCtx);
|
|
969
|
+
}
|
|
956
970
|
} catch {
|
|
957
971
|
result[field] = null;
|
|
958
972
|
}
|