@gqloom/core 0.8.2 → 0.8.3

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.cjs CHANGED
@@ -1148,6 +1148,17 @@ var ObjectChainResolver = class extends ChainResolver {
1148
1148
  // src/schema/object.ts
1149
1149
  var import_graphql5 = require("graphql");
1150
1150
 
1151
+ // src/utils/async-iterator.ts
1152
+ function bindAsyncIterator(storage, generator) {
1153
+ const store = storage.getStore();
1154
+ const next = generator.next;
1155
+ Object.defineProperty(generator, "next", {
1156
+ value: (...args) => storage.run(store, () => next.apply(generator, args)),
1157
+ writable: false
1158
+ });
1159
+ return generator;
1160
+ }
1161
+
1151
1162
  // src/schema/input.ts
1152
1163
  var import_graphql4 = require("graphql");
1153
1164
  function inputToArgs(input, options) {
@@ -1363,10 +1374,10 @@ var LoomObjectType = class _LoomObjectType extends import_graphql5.GraphQLObject
1363
1374
  return {
1364
1375
  subscribe: (root, args, context, info) => resolverPayloadStorage.run(
1365
1376
  { root, args, context, info, field: field2 },
1366
- () => field2["~meta"].subscribe?.(
1367
- args,
1368
- this.resolverOptions
1369
- )
1377
+ async () => {
1378
+ const generator = await field2["~meta"].subscribe?.(args, this.resolverOptions);
1379
+ return bindAsyncIterator(resolverPayloadStorage, generator);
1380
+ }
1370
1381
  )
1371
1382
  };
1372
1383
  }
package/dist/index.js CHANGED
@@ -1077,6 +1077,17 @@ import {
1077
1077
  resolveObjMapThunk
1078
1078
  } from "graphql";
1079
1079
 
1080
+ // src/utils/async-iterator.ts
1081
+ function bindAsyncIterator(storage, generator) {
1082
+ const store = storage.getStore();
1083
+ const next = generator.next;
1084
+ Object.defineProperty(generator, "next", {
1085
+ value: (...args) => storage.run(store, () => next.apply(generator, args)),
1086
+ writable: false
1087
+ });
1088
+ return generator;
1089
+ }
1090
+
1080
1091
  // src/schema/input.ts
1081
1092
  import {
1082
1093
  GraphQLInputObjectType,
@@ -1302,10 +1313,10 @@ var LoomObjectType = class _LoomObjectType extends GraphQLObjectType {
1302
1313
  return {
1303
1314
  subscribe: (root, args, context, info) => resolverPayloadStorage.run(
1304
1315
  { root, args, context, info, field: field2 },
1305
- () => field2["~meta"].subscribe?.(
1306
- args,
1307
- this.resolverOptions
1308
- )
1316
+ async () => {
1317
+ const generator = await field2["~meta"].subscribe?.(args, this.resolverOptions);
1318
+ return bindAsyncIterator(resolverPayloadStorage, generator);
1319
+ }
1309
1320
  )
1310
1321
  };
1311
1322
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gqloom/core",
3
- "version": "0.8.2",
3
+ "version": "0.8.3",
4
4
  "description": "Create GraphQL schema and resolvers with TypeScript.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",