@ttoss/appsync-api 0.7.4 → 0.8.0

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 CHANGED
@@ -6,9 +6,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
- var __commonJS = (cb, mod) => function __require() {
10
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
11
- };
12
9
  var __export = (target, all) => {
13
10
  for (var name in all)
14
11
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -22,491 +19,43 @@ var __copyProps = (to, from, except, desc) => {
22
19
  return to;
23
20
  };
24
21
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
26
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
27
  mod
27
28
  ));
28
29
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
30
 
30
- // ../../node_modules/tslib/tslib.js
31
- var require_tslib = __commonJS({
32
- "../../node_modules/tslib/tslib.js"(exports, module2) {
33
- var __extends2;
34
- var __assign2;
35
- var __rest2;
36
- var __decorate2;
37
- var __param2;
38
- var __metadata2;
39
- var __awaiter2;
40
- var __generator2;
41
- var __exportStar2;
42
- var __values2;
43
- var __read2;
44
- var __spread2;
45
- var __spreadArrays2;
46
- var __spreadArray2;
47
- var __await2;
48
- var __asyncGenerator2;
49
- var __asyncDelegator2;
50
- var __asyncValues2;
51
- var __makeTemplateObject2;
52
- var __importStar2;
53
- var __importDefault2;
54
- var __classPrivateFieldGet2;
55
- var __classPrivateFieldSet2;
56
- var __classPrivateFieldIn2;
57
- var __createBinding2;
58
- (function(factory) {
59
- var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
60
- if (typeof define === "function" && define.amd) {
61
- define("tslib", ["exports"], function(exports2) {
62
- factory(createExporter(root, createExporter(exports2)));
63
- });
64
- } else if (typeof module2 === "object" && typeof module2.exports === "object") {
65
- factory(createExporter(root, createExporter(module2.exports)));
66
- } else {
67
- factory(createExporter(root));
68
- }
69
- function createExporter(exports2, previous) {
70
- if (exports2 !== root) {
71
- if (typeof Object.create === "function") {
72
- Object.defineProperty(exports2, "__esModule", { value: true });
73
- } else {
74
- exports2.__esModule = true;
75
- }
76
- }
77
- return function(id, v) {
78
- return exports2[id] = previous ? previous(id, v) : v;
79
- };
80
- }
81
- })(function(exporter) {
82
- var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d, b) {
83
- d.__proto__ = b;
84
- } || function(d, b) {
85
- for (var p in b)
86
- if (Object.prototype.hasOwnProperty.call(b, p))
87
- d[p] = b[p];
88
- };
89
- __extends2 = function(d, b) {
90
- if (typeof b !== "function" && b !== null)
91
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
92
- extendStatics(d, b);
93
- function __() {
94
- this.constructor = d;
95
- }
96
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
97
- };
98
- __assign2 = Object.assign || function(t) {
99
- for (var s, i = 1, n = arguments.length; i < n; i++) {
100
- s = arguments[i];
101
- for (var p in s)
102
- if (Object.prototype.hasOwnProperty.call(s, p))
103
- t[p] = s[p];
104
- }
105
- return t;
106
- };
107
- __rest2 = function(s, e) {
108
- var t = {};
109
- for (var p in s)
110
- if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
111
- t[p] = s[p];
112
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
113
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
114
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
115
- t[p[i]] = s[p[i]];
116
- }
117
- return t;
118
- };
119
- __decorate2 = function(decorators, target, key, desc) {
120
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
121
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
122
- r = Reflect.decorate(decorators, target, key, desc);
123
- else
124
- for (var i = decorators.length - 1; i >= 0; i--)
125
- if (d = decorators[i])
126
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
127
- return c > 3 && r && Object.defineProperty(target, key, r), r;
128
- };
129
- __param2 = function(paramIndex, decorator) {
130
- return function(target, key) {
131
- decorator(target, key, paramIndex);
132
- };
133
- };
134
- __metadata2 = function(metadataKey, metadataValue) {
135
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function")
136
- return Reflect.metadata(metadataKey, metadataValue);
137
- };
138
- __awaiter2 = function(thisArg, _arguments, P, generator) {
139
- function adopt(value) {
140
- return value instanceof P ? value : new P(function(resolve) {
141
- resolve(value);
142
- });
143
- }
144
- return new (P || (P = Promise))(function(resolve, reject) {
145
- function fulfilled(value) {
146
- try {
147
- step(generator.next(value));
148
- } catch (e) {
149
- reject(e);
150
- }
151
- }
152
- function rejected(value) {
153
- try {
154
- step(generator["throw"](value));
155
- } catch (e) {
156
- reject(e);
157
- }
158
- }
159
- function step(result) {
160
- result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);
161
- }
162
- step((generator = generator.apply(thisArg, _arguments || [])).next());
163
- });
164
- };
165
- __generator2 = function(thisArg, body) {
166
- var _ = { label: 0, sent: function() {
167
- if (t[0] & 1)
168
- throw t[1];
169
- return t[1];
170
- }, trys: [], ops: [] }, f, y, t, g;
171
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
172
- return this;
173
- }), g;
174
- function verb(n) {
175
- return function(v) {
176
- return step([n, v]);
177
- };
178
- }
179
- function step(op) {
180
- if (f)
181
- throw new TypeError("Generator is already executing.");
182
- while (g && (g = 0, op[0] && (_ = 0)), _)
183
- try {
184
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
185
- return t;
186
- if (y = 0, t)
187
- op = [op[0] & 2, t.value];
188
- switch (op[0]) {
189
- case 0:
190
- case 1:
191
- t = op;
192
- break;
193
- case 4:
194
- _.label++;
195
- return { value: op[1], done: false };
196
- case 5:
197
- _.label++;
198
- y = op[1];
199
- op = [0];
200
- continue;
201
- case 7:
202
- op = _.ops.pop();
203
- _.trys.pop();
204
- continue;
205
- default:
206
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
207
- _ = 0;
208
- continue;
209
- }
210
- if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
211
- _.label = op[1];
212
- break;
213
- }
214
- if (op[0] === 6 && _.label < t[1]) {
215
- _.label = t[1];
216
- t = op;
217
- break;
218
- }
219
- if (t && _.label < t[2]) {
220
- _.label = t[2];
221
- _.ops.push(op);
222
- break;
223
- }
224
- if (t[2])
225
- _.ops.pop();
226
- _.trys.pop();
227
- continue;
228
- }
229
- op = body.call(thisArg, _);
230
- } catch (e) {
231
- op = [6, e];
232
- y = 0;
233
- } finally {
234
- f = t = 0;
235
- }
236
- if (op[0] & 5)
237
- throw op[1];
238
- return { value: op[0] ? op[1] : void 0, done: true };
239
- }
240
- };
241
- __exportStar2 = function(m, o) {
242
- for (var p in m)
243
- if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p))
244
- __createBinding2(o, m, p);
245
- };
246
- __createBinding2 = Object.create ? function(o, m, k, k2) {
247
- if (k2 === void 0)
248
- k2 = k;
249
- var desc = Object.getOwnPropertyDescriptor(m, k);
250
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
251
- desc = { enumerable: true, get: function() {
252
- return m[k];
253
- } };
254
- }
255
- Object.defineProperty(o, k2, desc);
256
- } : function(o, m, k, k2) {
257
- if (k2 === void 0)
258
- k2 = k;
259
- o[k2] = m[k];
260
- };
261
- __values2 = function(o) {
262
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
263
- if (m)
264
- return m.call(o);
265
- if (o && typeof o.length === "number")
266
- return {
267
- next: function() {
268
- if (o && i >= o.length)
269
- o = void 0;
270
- return { value: o && o[i++], done: !o };
271
- }
272
- };
273
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
274
- };
275
- __read2 = function(o, n) {
276
- var m = typeof Symbol === "function" && o[Symbol.iterator];
277
- if (!m)
278
- return o;
279
- var i = m.call(o), r, ar = [], e;
280
- try {
281
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done)
282
- ar.push(r.value);
283
- } catch (error) {
284
- e = { error };
285
- } finally {
286
- try {
287
- if (r && !r.done && (m = i["return"]))
288
- m.call(i);
289
- } finally {
290
- if (e)
291
- throw e.error;
292
- }
293
- }
294
- return ar;
295
- };
296
- __spread2 = function() {
297
- for (var ar = [], i = 0; i < arguments.length; i++)
298
- ar = ar.concat(__read2(arguments[i]));
299
- return ar;
300
- };
301
- __spreadArrays2 = function() {
302
- for (var s = 0, i = 0, il = arguments.length; i < il; i++)
303
- s += arguments[i].length;
304
- for (var r = Array(s), k = 0, i = 0; i < il; i++)
305
- for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
306
- r[k] = a[j];
307
- return r;
308
- };
309
- __spreadArray2 = function(to, from, pack) {
310
- if (pack || arguments.length === 2)
311
- for (var i = 0, l = from.length, ar; i < l; i++) {
312
- if (ar || !(i in from)) {
313
- if (!ar)
314
- ar = Array.prototype.slice.call(from, 0, i);
315
- ar[i] = from[i];
316
- }
317
- }
318
- return to.concat(ar || Array.prototype.slice.call(from));
319
- };
320
- __await2 = function(v) {
321
- return this instanceof __await2 ? (this.v = v, this) : new __await2(v);
322
- };
323
- __asyncGenerator2 = function(thisArg, _arguments, generator) {
324
- if (!Symbol.asyncIterator)
325
- throw new TypeError("Symbol.asyncIterator is not defined.");
326
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
327
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
328
- return this;
329
- }, i;
330
- function verb(n) {
331
- if (g[n])
332
- i[n] = function(v) {
333
- return new Promise(function(a, b) {
334
- q.push([n, v, a, b]) > 1 || resume(n, v);
335
- });
336
- };
337
- }
338
- function resume(n, v) {
339
- try {
340
- step(g[n](v));
341
- } catch (e) {
342
- settle(q[0][3], e);
343
- }
344
- }
345
- function step(r) {
346
- r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);
347
- }
348
- function fulfill(value) {
349
- resume("next", value);
350
- }
351
- function reject(value) {
352
- resume("throw", value);
353
- }
354
- function settle(f, v) {
355
- if (f(v), q.shift(), q.length)
356
- resume(q[0][0], q[0][1]);
357
- }
358
- };
359
- __asyncDelegator2 = function(o) {
360
- var i, p;
361
- return i = {}, verb("next"), verb("throw", function(e) {
362
- throw e;
363
- }), verb("return"), i[Symbol.iterator] = function() {
364
- return this;
365
- }, i;
366
- function verb(n, f) {
367
- i[n] = o[n] ? function(v) {
368
- return (p = !p) ? { value: __await2(o[n](v)), done: n === "return" } : f ? f(v) : v;
369
- } : f;
370
- }
371
- };
372
- __asyncValues2 = function(o) {
373
- if (!Symbol.asyncIterator)
374
- throw new TypeError("Symbol.asyncIterator is not defined.");
375
- var m = o[Symbol.asyncIterator], i;
376
- return m ? m.call(o) : (o = typeof __values2 === "function" ? __values2(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() {
377
- return this;
378
- }, i);
379
- function verb(n) {
380
- i[n] = o[n] && function(v) {
381
- return new Promise(function(resolve, reject) {
382
- v = o[n](v), settle(resolve, reject, v.done, v.value);
383
- });
384
- };
385
- }
386
- function settle(resolve, reject, d, v) {
387
- Promise.resolve(v).then(function(v2) {
388
- resolve({ value: v2, done: d });
389
- }, reject);
390
- }
391
- };
392
- __makeTemplateObject2 = function(cooked, raw) {
393
- if (Object.defineProperty) {
394
- Object.defineProperty(cooked, "raw", { value: raw });
395
- } else {
396
- cooked.raw = raw;
397
- }
398
- return cooked;
399
- };
400
- var __setModuleDefault = Object.create ? function(o, v) {
401
- Object.defineProperty(o, "default", { enumerable: true, value: v });
402
- } : function(o, v) {
403
- o["default"] = v;
404
- };
405
- __importStar2 = function(mod) {
406
- if (mod && mod.__esModule)
407
- return mod;
408
- var result = {};
409
- if (mod != null) {
410
- for (var k in mod)
411
- if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k))
412
- __createBinding2(result, mod, k);
413
- }
414
- __setModuleDefault(result, mod);
415
- return result;
416
- };
417
- __importDefault2 = function(mod) {
418
- return mod && mod.__esModule ? mod : { "default": mod };
419
- };
420
- __classPrivateFieldGet2 = function(receiver, state, kind, f) {
421
- if (kind === "a" && !f)
422
- throw new TypeError("Private accessor was defined without a getter");
423
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
424
- throw new TypeError("Cannot read private member from an object whose class did not declare it");
425
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
426
- };
427
- __classPrivateFieldSet2 = function(receiver, state, value, kind, f) {
428
- if (kind === "m")
429
- throw new TypeError("Private method is not writable");
430
- if (kind === "a" && !f)
431
- throw new TypeError("Private accessor was defined without a setter");
432
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
433
- throw new TypeError("Cannot write private member to an object whose class did not declare it");
434
- return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;
435
- };
436
- __classPrivateFieldIn2 = function(state, receiver) {
437
- if (receiver === null || typeof receiver !== "object" && typeof receiver !== "function")
438
- throw new TypeError("Cannot use 'in' operator on non-object");
439
- return typeof state === "function" ? receiver === state : state.has(receiver);
440
- };
441
- exporter("__extends", __extends2);
442
- exporter("__assign", __assign2);
443
- exporter("__rest", __rest2);
444
- exporter("__decorate", __decorate2);
445
- exporter("__param", __param2);
446
- exporter("__metadata", __metadata2);
447
- exporter("__awaiter", __awaiter2);
448
- exporter("__generator", __generator2);
449
- exporter("__exportStar", __exportStar2);
450
- exporter("__createBinding", __createBinding2);
451
- exporter("__values", __values2);
452
- exporter("__read", __read2);
453
- exporter("__spread", __spread2);
454
- exporter("__spreadArrays", __spreadArrays2);
455
- exporter("__spreadArray", __spreadArray2);
456
- exporter("__await", __await2);
457
- exporter("__asyncGenerator", __asyncGenerator2);
458
- exporter("__asyncDelegator", __asyncDelegator2);
459
- exporter("__asyncValues", __asyncValues2);
460
- exporter("__makeTemplateObject", __makeTemplateObject2);
461
- exporter("__importStar", __importStar2);
462
- exporter("__importDefault", __importDefault2);
463
- exporter("__classPrivateFieldGet", __classPrivateFieldGet2);
464
- exporter("__classPrivateFieldSet", __classPrivateFieldSet2);
465
- exporter("__classPrivateFieldIn", __classPrivateFieldIn2);
466
- });
467
- }
468
- });
469
-
470
31
  // src/index.ts
471
32
  var src_exports = {};
472
33
  __export(src_exports, {
34
+ composeWithConnection: () => import_graphql_compose_connection.default,
35
+ composeWithRelay: () => composeWithRelay,
473
36
  createApiTemplate: () => createApiTemplate,
474
- createAppSyncResolverHandler: () => createAppSyncResolverHandler
37
+ createAppSyncResolverHandler: () => createAppSyncResolverHandler,
38
+ fromGlobalId: () => fromGlobalId,
39
+ toGlobalId: () => toGlobalId
475
40
  });
476
41
  module.exports = __toCommonJS(src_exports);
477
42
 
478
43
  // src/createApiTemplate.ts
479
44
  var import_graphql_compose = require("graphql-compose");
480
45
 
481
- // ../../node_modules/tslib/modules/index.js
482
- var import_tslib = __toESM(require_tslib(), 1);
483
- var {
484
- __extends,
485
- __assign,
486
- __rest,
487
- __decorate,
488
- __param,
489
- __metadata,
490
- __awaiter,
491
- __generator,
492
- __exportStar,
493
- __createBinding,
494
- __values,
495
- __read,
496
- __spread,
497
- __spreadArrays,
498
- __spreadArray,
499
- __await,
500
- __asyncGenerator,
501
- __asyncDelegator,
502
- __asyncValues,
503
- __makeTemplateObject,
504
- __importStar,
505
- __importDefault,
506
- __classPrivateFieldGet,
507
- __classPrivateFieldSet,
508
- __classPrivateFieldIn
509
- } = import_tslib.default;
46
+ // ../../node_modules/tslib/tslib.es6.js
47
+ var __assign = function() {
48
+ __assign = Object.assign || function __assign2(t) {
49
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
50
+ s = arguments[i];
51
+ for (var p in s)
52
+ if (Object.prototype.hasOwnProperty.call(s, p))
53
+ t[p] = s[p];
54
+ }
55
+ return t;
56
+ };
57
+ return __assign.apply(this, arguments);
58
+ };
510
59
 
511
60
  // ../../node_modules/lower-case/dist.es2015/index.js
512
61
  function lowerCase(str) {
@@ -570,7 +119,7 @@ var getPackageLambdaLayerStackName = (packageName) => {
570
119
  // package.json
571
120
  var package_default = {
572
121
  name: "@ttoss/appsync-api",
573
- version: "0.7.4",
122
+ version: "0.8.0",
574
123
  description: "A library for building GraphQL APIs for AWS AppSync.",
575
124
  license: "UNLICENSED",
576
125
  author: "ttoss",
@@ -603,19 +152,20 @@ var package_default = {
603
152
  sideEffects: false,
604
153
  typings: "dist/index.d.ts",
605
154
  dependencies: {
606
- "@ttoss/cloudformation": "^0.5.0",
155
+ "@ttoss/cloudformation": "^0.5.1",
607
156
  express: "^4.18.2",
157
+ "graphql-compose-connection": "^8.2.1",
608
158
  "graphql-helix": "^1.13.0",
609
- minimist: "^1.2.7"
159
+ minimist: "^1.2.8"
610
160
  },
611
161
  peerDependencies: {
612
162
  graphql: "^16.6.0",
613
163
  "graphql-compose": "^9.0.10"
614
164
  },
615
165
  devDependencies: {
616
- "@ttoss/config": "^1.28.0",
166
+ "@ttoss/config": "^1.28.1",
617
167
  "@types/aws-lambda": "^8.10.110",
618
- carlin: "^1.23.1",
168
+ carlin: "^1.23.2",
619
169
  graphql: "^16.6.0",
620
170
  "graphql-compose": "^9.0.10"
621
171
  },
@@ -649,14 +199,14 @@ var AppSyncGraphQLApiKeyLogicalId = "AppSyncGraphQLApiKey";
649
199
  var createApiTemplate = ({
650
200
  additionalAuthenticationProviders,
651
201
  authenticationType = "AMAZON_COGNITO_USER_POOLS",
652
- schemaComposer,
202
+ schemaComposer: schemaComposer2,
653
203
  dataSource,
654
204
  lambdaFunction,
655
205
  userPoolConfig
656
206
  }) => {
657
- const sdl = schemaComposer.toSDL();
658
- import_graphql_compose.graphql.validateSchema(schemaComposer.buildSchema());
659
- const resolveMethods = schemaComposer.getResolveMethods();
207
+ const sdl = schemaComposer2.toSDL();
208
+ import_graphql_compose.graphql.validateSchema(schemaComposer2.buildSchema());
209
+ const resolveMethods = schemaComposer2.getResolveMethods();
660
210
  const resolveMethodsEntries = Object.entries(resolveMethods).flatMap(
661
211
  ([typeName, fieldResolvers]) => {
662
212
  return Object.entries(fieldResolvers).map(([fieldName]) => {
@@ -733,6 +283,10 @@ var createApiTemplate = ({
733
283
  MemorySize: 512,
734
284
  Role: lambdaFunction.roleArn,
735
285
  Runtime: "nodejs18.x",
286
+ /**
287
+ * https://docs.aws.amazon.com/general/latest/gr/appsync.html
288
+ * Request execution time for mutations, queries, and subscriptions: 30 seconds
289
+ */
736
290
  Timeout: 29
737
291
  }
738
292
  },
@@ -842,12 +396,12 @@ var createApiTemplate = ({
842
396
 
843
397
  // src/createAppSyncResolverHandler.ts
844
398
  var createAppSyncResolverHandler = ({
845
- schemaComposer
399
+ schemaComposer: schemaComposer2
846
400
  }) => {
847
401
  return async (event, context) => {
848
402
  const { info, arguments: args, source } = event;
849
403
  const { parentTypeName, fieldName } = info;
850
- const resolver = schemaComposer.getResolveMethods()[parentTypeName][fieldName];
404
+ const resolver = schemaComposer2.getResolveMethods()[parentTypeName][fieldName];
851
405
  return resolver(
852
406
  source,
853
407
  args,
@@ -856,8 +410,164 @@ var createAppSyncResolverHandler = ({
856
410
  );
857
411
  };
858
412
  };
413
+
414
+ // src/composeWithRelay/composeWithRelay.ts
415
+ var import_graphql_compose4 = require("graphql-compose");
416
+
417
+ // src/composeWithRelay/nodeFieldConfig.ts
418
+ var import_graphql_compose2 = require("graphql-compose");
419
+
420
+ // src/composeWithRelay/globalId.ts
421
+ var base64 = (i) => {
422
+ return Buffer.from(i, "ascii").toString("base64");
423
+ };
424
+ var unbase64 = (i) => {
425
+ return Buffer.from(i, "base64").toString("ascii");
426
+ };
427
+ var toGlobalId = (type, id) => {
428
+ return base64([type, id].join(":"));
429
+ };
430
+ var fromGlobalId = (globalId) => {
431
+ const unbasedGlobalId = unbase64(globalId);
432
+ const [type, id] = unbasedGlobalId.split(":");
433
+ return { type, id };
434
+ };
435
+
436
+ // src/composeWithRelay/nodeFieldConfig.ts
437
+ var getNodeFieldConfig = (typeMapForRelayNode, nodeInterface) => {
438
+ return {
439
+ description: "Fetches an object that has globally unique ID among all types",
440
+ type: nodeInterface,
441
+ args: {
442
+ id: {
443
+ type: "ID!",
444
+ description: "The globally unique ID among all types"
445
+ }
446
+ },
447
+ resolve: (source, args, context, info) => {
448
+ if (!args.id || !(typeof args.id === "string")) {
449
+ return null;
450
+ }
451
+ const { type } = fromGlobalId(args.id);
452
+ if (!typeMapForRelayNode[type]) {
453
+ return null;
454
+ }
455
+ const { tc, resolver: findById } = typeMapForRelayNode[type];
456
+ if (findById && findById.resolve && tc) {
457
+ const graphqlType = tc.getType();
458
+ let projection;
459
+ if (info) {
460
+ projection = (0, import_graphql_compose2.getProjectionFromAST)({
461
+ ...info,
462
+ returnType: graphqlType
463
+ });
464
+ } else {
465
+ projection = {};
466
+ }
467
+ const idArgName = Object.keys(findById.args)[0];
468
+ return findById.resolve({
469
+ source,
470
+ args: { [idArgName]: args.id },
471
+ // eg. mongoose has _id fieldname, so should map
472
+ context,
473
+ info,
474
+ projection
475
+ }).then((res) => {
476
+ if (!res)
477
+ return res;
478
+ res.__nodeType = graphqlType;
479
+ return res;
480
+ });
481
+ }
482
+ return null;
483
+ }
484
+ };
485
+ };
486
+
487
+ // src/composeWithRelay/nodeInterface.ts
488
+ var import_graphql_compose3 = require("graphql-compose");
489
+ var NodeTC = import_graphql_compose3.InterfaceTypeComposer.createTemp({
490
+ name: "Node",
491
+ description: "An object, that can be fetched by the globally unique ID among all types.",
492
+ fields: {
493
+ id: {
494
+ type: "ID!",
495
+ description: "The globally unique ID among all types."
496
+ }
497
+ },
498
+ resolveType: (payload) => {
499
+ return payload.__nodeType.name ? payload.__nodeType.name : null;
500
+ }
501
+ });
502
+ var NodeInterface = NodeTC.getType();
503
+ var getNodeInterface = (sc) => {
504
+ if (sc.hasInstance("Node", import_graphql_compose3.InterfaceTypeComposer)) {
505
+ return sc.get("Node");
506
+ }
507
+ sc.set("Node", NodeTC);
508
+ return NodeTC;
509
+ };
510
+
511
+ // src/composeWithRelay/composeWithRelay.ts
512
+ var TypeMapForRelayNode = {};
513
+ var composeWithRelay = (tc) => {
514
+ if (!(tc instanceof import_graphql_compose4.ObjectTypeComposer)) {
515
+ throw new Error(
516
+ "You should provide ObjectTypeComposer instance to composeWithRelay method"
517
+ );
518
+ }
519
+ const nodeInterface = getNodeInterface(tc.schemaComposer);
520
+ const nodeFieldConfig = getNodeFieldConfig(
521
+ TypeMapForRelayNode,
522
+ nodeInterface
523
+ );
524
+ if (tc.getTypeName() === "Query" || tc.getTypeName() === "RootQuery") {
525
+ tc.setField("node", nodeFieldConfig);
526
+ return tc;
527
+ }
528
+ if (tc.getTypeName() === "Mutation" || tc.getTypeName() === "RootMutation") {
529
+ return tc;
530
+ }
531
+ if (!tc.hasRecordIdFn()) {
532
+ throw new Error(
533
+ `ObjectTypeComposer(${tc.getTypeName()}) should have recordIdFn. This function returns ID from provided object.`
534
+ );
535
+ }
536
+ const findById = tc.getResolver("findById");
537
+ if (!findById) {
538
+ throw new Error(
539
+ `ObjectTypeComposer(${tc.getTypeName()}) provided to composeWithRelay should have findById resolver.`
540
+ );
541
+ }
542
+ TypeMapForRelayNode[tc.getTypeName()] = {
543
+ resolver: findById,
544
+ tc
545
+ };
546
+ tc.addFields({
547
+ id: {
548
+ type: "ID!",
549
+ description: "The globally unique ID among all types",
550
+ resolve: (source) => {
551
+ return toGlobalId(tc.getTypeName(), tc.getRecordId(source));
552
+ }
553
+ }
554
+ });
555
+ tc.addInterface(nodeInterface);
556
+ return tc;
557
+ };
558
+
559
+ // src/composeWithRelay/index.ts
560
+ var import_graphql_compose5 = require("graphql-compose");
561
+ composeWithRelay(import_graphql_compose5.schemaComposer.Query);
562
+
563
+ // src/index.ts
564
+ var import_graphql_compose_connection = __toESM(require("graphql-compose-connection"));
859
565
  // Annotate the CommonJS export names for ESM import in node:
860
566
  0 && (module.exports = {
567
+ composeWithConnection,
568
+ composeWithRelay,
861
569
  createApiTemplate,
862
- createAppSyncResolverHandler
570
+ createAppSyncResolverHandler,
571
+ fromGlobalId,
572
+ toGlobalId
863
573
  });