@orion-js/graphql 4.0.0-next.2 → 4.0.0-next.4
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/LICENSE +21 -0
- package/dist/index.cjs +477 -469
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +58 -27
- package/dist/index.d.ts +58 -27
- package/dist/index.js +490 -470
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
package/dist/index.cjs
CHANGED
|
@@ -4,7 +4,6 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
6
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
7
|
var __export = (target, all) => {
|
|
9
8
|
for (var name in all)
|
|
10
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -60,12 +59,12 @@ module.exports = __toCommonJS(index_exports);
|
|
|
60
59
|
|
|
61
60
|
// src/pubsub.ts
|
|
62
61
|
var pubsub = null;
|
|
63
|
-
var setPubsub =
|
|
62
|
+
var setPubsub = function(newPubsub) {
|
|
64
63
|
pubsub = newPubsub;
|
|
65
|
-
}
|
|
66
|
-
var getPubsub =
|
|
64
|
+
};
|
|
65
|
+
var getPubsub = function() {
|
|
67
66
|
return pubsub;
|
|
68
|
-
}
|
|
67
|
+
};
|
|
69
68
|
|
|
70
69
|
// src/subscription/getChannelName.ts
|
|
71
70
|
var import_helpers = require("@orion-js/helpers");
|
|
@@ -74,29 +73,22 @@ function getChannelName_default(name, params) {
|
|
|
74
73
|
const channelName = `${name}_${hash}`;
|
|
75
74
|
return channelName;
|
|
76
75
|
}
|
|
77
|
-
__name(getChannelName_default, "default");
|
|
78
76
|
|
|
79
77
|
// src/subscription/index.ts
|
|
80
78
|
var import_resolvers = require("@orion-js/resolvers");
|
|
81
|
-
var createSubscription =
|
|
79
|
+
var createSubscription = function(options) {
|
|
82
80
|
const subscription = {
|
|
83
81
|
name: options.name
|
|
84
82
|
};
|
|
85
83
|
subscription.publish = async (params, data) => {
|
|
86
84
|
const pubsub2 = getPubsub();
|
|
87
85
|
const channelName = getChannelName_default(subscription.name, params);
|
|
88
|
-
await pubsub2.publish(channelName, {
|
|
89
|
-
[subscription.name]: data
|
|
90
|
-
});
|
|
86
|
+
await pubsub2.publish(channelName, { [subscription.name]: data });
|
|
91
87
|
};
|
|
92
88
|
subscription.subscribe = async (params, viewer) => {
|
|
93
89
|
const pubsub2 = getPubsub();
|
|
94
90
|
try {
|
|
95
|
-
await (0, import_resolvers.checkPermissions)({
|
|
96
|
-
params,
|
|
97
|
-
viewer,
|
|
98
|
-
options: null
|
|
99
|
-
}, options);
|
|
91
|
+
await (0, import_resolvers.checkPermissions)({ params, viewer, options: null }, options);
|
|
100
92
|
const channelName = getChannelName_default(subscription.name, params);
|
|
101
93
|
return pubsub2.asyncIterator(channelName);
|
|
102
94
|
} catch (error) {
|
|
@@ -106,7 +98,7 @@ var createSubscription = /* @__PURE__ */ __name(function(options) {
|
|
|
106
98
|
subscription.params = (0, import_resolvers.cleanParams)(options.params);
|
|
107
99
|
subscription.returns = (0, import_resolvers.cleanReturns)(options.returns);
|
|
108
100
|
return subscription;
|
|
109
|
-
}
|
|
101
|
+
};
|
|
110
102
|
var subscription_default = createSubscription;
|
|
111
103
|
|
|
112
104
|
// src/startGraphiQL.ts
|
|
@@ -114,8 +106,7 @@ var import_http = require("@orion-js/http");
|
|
|
114
106
|
function safeSerialize(data) {
|
|
115
107
|
return data ? JSON.stringify(data).replace(/\//g, "\\/") : null;
|
|
116
108
|
}
|
|
117
|
-
|
|
118
|
-
var getHTML = /* @__PURE__ */ __name(function(apolloOptions, options, data) {
|
|
109
|
+
var getHTML = function(apolloOptions, options, data) {
|
|
119
110
|
const GRAPHIQL_VERSION = "0.11.11";
|
|
120
111
|
const endpointURL = "/graphql";
|
|
121
112
|
const subscriptionsEndpoint = "/subscriptions";
|
|
@@ -296,19 +287,20 @@ var getHTML = /* @__PURE__ */ __name(function(apolloOptions, options, data) {
|
|
|
296
287
|
</script>
|
|
297
288
|
</body>
|
|
298
289
|
</html>`;
|
|
299
|
-
}
|
|
290
|
+
};
|
|
300
291
|
function startGraphiQL_default(apolloOptions, options) {
|
|
301
|
-
(0, import_http.registerRoute)(
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
292
|
+
(0, import_http.registerRoute)(
|
|
293
|
+
(0, import_http.route)({
|
|
294
|
+
path: "/graphiql",
|
|
295
|
+
method: "get",
|
|
296
|
+
async resolve(req) {
|
|
297
|
+
return {
|
|
298
|
+
body: getHTML(apolloOptions, options, req.query)
|
|
299
|
+
};
|
|
300
|
+
}
|
|
301
|
+
})
|
|
302
|
+
);
|
|
310
303
|
}
|
|
311
|
-
__name(startGraphiQL_default, "default");
|
|
312
304
|
|
|
313
305
|
// src/buildSchema/index.ts
|
|
314
306
|
var import_graphql10 = require("graphql");
|
|
@@ -317,7 +309,6 @@ var import_graphql10 = require("graphql");
|
|
|
317
309
|
var import_graphql7 = require("graphql");
|
|
318
310
|
|
|
319
311
|
// src/buildSchema/getType/index.ts
|
|
320
|
-
var import_isPlainObject2 = __toESM(require("lodash/isPlainObject"), 1);
|
|
321
312
|
var import_isArray2 = __toESM(require("lodash/isArray"), 1);
|
|
322
313
|
var import_graphql6 = require("graphql");
|
|
323
314
|
var import_schema2 = require("@orion-js/schema");
|
|
@@ -326,7 +317,7 @@ var import_schema2 = require("@orion-js/schema");
|
|
|
326
317
|
var import_graphql = require("graphql");
|
|
327
318
|
var MAX_INT = Number.MAX_SAFE_INTEGER;
|
|
328
319
|
var MIN_INT = Number.MIN_SAFE_INTEGER;
|
|
329
|
-
var coerceBigInt =
|
|
320
|
+
var coerceBigInt = function coerceBigInt2(value) {
|
|
330
321
|
if (value === "") {
|
|
331
322
|
throw new TypeError("BigInt cannot represent non 53-bit signed integer value: (empty string)");
|
|
332
323
|
}
|
|
@@ -339,7 +330,7 @@ var coerceBigInt = /* @__PURE__ */ __name(function coerceBigInt2(value) {
|
|
|
339
330
|
throw new TypeError("BigInt cannot represent non-integer value: " + String(value));
|
|
340
331
|
}
|
|
341
332
|
return int;
|
|
342
|
-
}
|
|
333
|
+
};
|
|
343
334
|
var BigIntScalar_default = new import_graphql.GraphQLScalarType({
|
|
344
335
|
name: "BigInt",
|
|
345
336
|
description: "The `BigInt` scalar type represents non-fractional signed whole numeric values. BigInt can represent values between -(2^53) + 1 and 2^53 - 1. ",
|
|
@@ -371,7 +362,6 @@ var import_graphql3 = require("graphql");
|
|
|
371
362
|
function identity(value) {
|
|
372
363
|
return value;
|
|
373
364
|
}
|
|
374
|
-
__name(identity, "identity");
|
|
375
365
|
function parseLiteral(ast, variables) {
|
|
376
366
|
switch (ast.kind) {
|
|
377
367
|
case import_graphql3.Kind.STRING:
|
|
@@ -399,7 +389,6 @@ function parseLiteral(ast, variables) {
|
|
|
399
389
|
return void 0;
|
|
400
390
|
}
|
|
401
391
|
}
|
|
402
|
-
__name(parseLiteral, "parseLiteral");
|
|
403
392
|
var JSONScalar_default = new import_graphql3.GraphQLScalarType({
|
|
404
393
|
name: "JSON",
|
|
405
394
|
description: "The `JSON` scalar type represents JSON values as specified by [ECMA-404](http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf).",
|
|
@@ -435,7 +424,6 @@ function getScalar_default(fieldType) {
|
|
|
435
424
|
}
|
|
436
425
|
throw new Error(`Field type "${fieldType.name}" has no convertion to GraphQLType`);
|
|
437
426
|
}
|
|
438
|
-
__name(getScalar_default, "default");
|
|
439
427
|
|
|
440
428
|
// src/buildSchema/getArgs/getField.ts
|
|
441
429
|
var import_isPlainObject = __toESM(require("lodash/isPlainObject"), 1);
|
|
@@ -444,9 +432,11 @@ var import_graphql4 = require("graphql");
|
|
|
444
432
|
var import_schema = require("@orion-js/schema");
|
|
445
433
|
|
|
446
434
|
// src/resolversSchemas/getStaticFields.ts
|
|
447
|
-
function getStaticFields(
|
|
448
|
-
const schema = model.getSchema();
|
|
435
|
+
function getStaticFields(schema) {
|
|
449
436
|
if (!schema) return [];
|
|
437
|
+
if (schema.getSchema) {
|
|
438
|
+
schema = schema.getSchema();
|
|
439
|
+
}
|
|
450
440
|
const keys = Object.keys(schema).filter((key) => !key.startsWith("__"));
|
|
451
441
|
return keys.map((key) => {
|
|
452
442
|
const field = schema[key];
|
|
@@ -456,72 +446,75 @@ function getStaticFields(model) {
|
|
|
456
446
|
};
|
|
457
447
|
}).filter((field) => !field.private);
|
|
458
448
|
}
|
|
459
|
-
__name(getStaticFields, "getStaticFields");
|
|
460
449
|
|
|
461
450
|
// src/buildSchema/getArgs/getField.ts
|
|
451
|
+
Symbol.metadata ?? (Symbol.metadata = Symbol("Symbol.metadata"));
|
|
462
452
|
var storedModelInput = {};
|
|
463
|
-
var
|
|
464
|
-
if (storedModelInput[model.name]) {
|
|
465
|
-
|
|
453
|
+
var getCachedModelInput = (model, fields) => {
|
|
454
|
+
if (!storedModelInput[model.name]) {
|
|
455
|
+
storedModelInput[model.name] = new import_graphql4.GraphQLInputObjectType({
|
|
456
|
+
name: `${model.name}Input`,
|
|
457
|
+
fields
|
|
458
|
+
});
|
|
466
459
|
}
|
|
467
|
-
storedModelInput[model.name] = new import_graphql4.GraphQLInputObjectType({
|
|
468
|
-
name: model.name + "Input",
|
|
469
|
-
fields
|
|
470
|
-
});
|
|
471
460
|
return storedModelInput[model.name];
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
461
|
+
};
|
|
462
|
+
var resolveModelFields = (model) => {
|
|
463
|
+
const fields = {};
|
|
464
|
+
for (const field of getStaticFields(model)) {
|
|
465
|
+
fields[field.key] = { type: resolveType(field.type) };
|
|
476
466
|
}
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
for (const field of getStaticFields(model)) {
|
|
485
|
-
fields[field.key] = {
|
|
486
|
-
type: getParams(field.type)
|
|
487
|
-
};
|
|
488
|
-
}
|
|
489
|
-
return getModelInput(model, fields);
|
|
490
|
-
} else {
|
|
491
|
-
const schemaType = (0, import_schema.getFieldType)(type);
|
|
492
|
-
const graphQLType = getScalar_default(schemaType);
|
|
493
|
-
return graphQLType;
|
|
467
|
+
return fields;
|
|
468
|
+
};
|
|
469
|
+
var resolveArrayType = (type) => new import_graphql4.GraphQLList(resolveType(type[0]));
|
|
470
|
+
var resolvePlainObjectOrModelType = (type) => {
|
|
471
|
+
const model = type.__isModel ? type : type.__model;
|
|
472
|
+
if (!model || !model.__isModel) {
|
|
473
|
+
throw new Error("A type is not a Model");
|
|
494
474
|
}
|
|
495
|
-
|
|
496
|
-
|
|
475
|
+
const fields = resolveModelFields(model);
|
|
476
|
+
return getCachedModelInput(model, fields);
|
|
477
|
+
};
|
|
478
|
+
var resolveType = (type) => {
|
|
479
|
+
var _a;
|
|
480
|
+
if (!type) throw new Error("No type specified");
|
|
481
|
+
if ((_a = type == null ? void 0 : type[Symbol.metadata]) == null ? void 0 : _a._getModel) {
|
|
482
|
+
const model = type[Symbol.metadata]._getModel();
|
|
483
|
+
return resolveType(model);
|
|
484
|
+
}
|
|
485
|
+
if ((0, import_isArray.default)(type)) return resolveArrayType(type);
|
|
486
|
+
if (!type.__isFieldType && ((0, import_isPlainObject.default)(type) || type.__isModel)) {
|
|
487
|
+
return resolvePlainObjectOrModelType(type);
|
|
488
|
+
}
|
|
489
|
+
const schemaType = (0, import_schema.getFieldType)(type);
|
|
490
|
+
return getScalar_default(schemaType);
|
|
491
|
+
};
|
|
492
|
+
var getField_default = resolveType;
|
|
497
493
|
|
|
498
494
|
// src/buildSchema/getArgs/index.ts
|
|
499
|
-
function getArgs_default(params) {
|
|
495
|
+
async function getArgs_default(params) {
|
|
500
496
|
if (!params) return;
|
|
501
497
|
if (Object.keys(params).length === 0) return;
|
|
502
498
|
const fields = {};
|
|
503
499
|
for (const key of Object.keys(params)) {
|
|
504
500
|
try {
|
|
505
|
-
const type =
|
|
506
|
-
fields[key] = {
|
|
507
|
-
type
|
|
508
|
-
};
|
|
501
|
+
const type = getField_default(params[key].type);
|
|
502
|
+
fields[key] = { type };
|
|
509
503
|
} catch (error) {
|
|
510
504
|
throw new Error(`Error creating GraphQL resolver params argument ${key}: ${error.message}`);
|
|
511
505
|
}
|
|
512
506
|
}
|
|
513
507
|
return fields;
|
|
514
508
|
}
|
|
515
|
-
__name(getArgs_default, "default");
|
|
516
509
|
|
|
517
510
|
// src/errorHandler.ts
|
|
518
|
-
var
|
|
511
|
+
var import_node_crypto = __toESM(require("crypto"), 1);
|
|
519
512
|
var import_graphql5 = require("graphql");
|
|
520
513
|
function errorHandler(error, data) {
|
|
521
|
-
const message = `Error in resolver "${data.name}" ${data.
|
|
522
|
-
const hash =
|
|
514
|
+
const message = `Error in resolver "${data.name}" ${data.schema ? `of model "${data.schema.__modelName}"` : ""}`;
|
|
515
|
+
const hash = import_node_crypto.default.createHash("sha1").update(error.message, "utf8").digest("hex").substring(0, 10);
|
|
523
516
|
error.hash = hash;
|
|
524
|
-
if (error
|
|
517
|
+
if (error == null ? void 0 : error.isOrionError) {
|
|
525
518
|
console.warn(message, error);
|
|
526
519
|
throw new import_graphql5.GraphQLError(error.message, {
|
|
527
520
|
originalError: error,
|
|
@@ -533,148 +526,151 @@ function errorHandler(error, data) {
|
|
|
533
526
|
info: error.getInfo()
|
|
534
527
|
}
|
|
535
528
|
});
|
|
536
|
-
} else {
|
|
537
|
-
console.error(message, error);
|
|
538
|
-
throw new import_graphql5.GraphQLError(`${error.message} [${hash}]`, {
|
|
539
|
-
// originalError: error,
|
|
540
|
-
extensions: {
|
|
541
|
-
isOrionError: false,
|
|
542
|
-
isValidationError: false,
|
|
543
|
-
code: "INTERNAL_SERVER_ERROR",
|
|
544
|
-
hash
|
|
545
|
-
}
|
|
546
|
-
});
|
|
547
529
|
}
|
|
530
|
+
console.error(message, error);
|
|
531
|
+
throw new import_graphql5.GraphQLError(`${error.message} [${hash}]`, {
|
|
532
|
+
// originalError: error,
|
|
533
|
+
extensions: {
|
|
534
|
+
isOrionError: false,
|
|
535
|
+
isValidationError: false,
|
|
536
|
+
code: "INTERNAL_SERVER_ERROR",
|
|
537
|
+
hash
|
|
538
|
+
}
|
|
539
|
+
});
|
|
548
540
|
}
|
|
549
|
-
__name(errorHandler, "errorHandler");
|
|
550
541
|
|
|
551
542
|
// src/buildSchema/getType/getTypeAsResolver.ts
|
|
552
|
-
function getTypeAsResolver_default({ resolver:
|
|
553
|
-
const type = getGraphQLType2(
|
|
554
|
-
const args = getArgs_default(
|
|
543
|
+
function getTypeAsResolver_default({ resolver: resolver2, getGraphQLType: getGraphQLType2, options, schema }) {
|
|
544
|
+
const type = getGraphQLType2(resolver2.returns, options);
|
|
545
|
+
const args = getArgs_default(resolver2.params);
|
|
555
546
|
return {
|
|
556
547
|
type,
|
|
557
548
|
args,
|
|
558
549
|
async resolve(item, params, context, info) {
|
|
559
550
|
try {
|
|
560
|
-
const result = await
|
|
551
|
+
const result = await resolver2.resolve(item, params, context, info);
|
|
561
552
|
return result;
|
|
562
553
|
} catch (error) {
|
|
563
|
-
errorHandler(error, {
|
|
564
|
-
context,
|
|
565
|
-
resolver: resolver4,
|
|
566
|
-
options,
|
|
567
|
-
model
|
|
568
|
-
});
|
|
554
|
+
errorHandler(error, { context, resolver: resolver2, options, schema });
|
|
569
555
|
throw error;
|
|
570
556
|
}
|
|
571
557
|
}
|
|
572
558
|
};
|
|
573
559
|
}
|
|
574
|
-
__name(getTypeAsResolver_default, "default");
|
|
575
560
|
|
|
576
561
|
// src/resolversSchemas/getDynamicFields.ts
|
|
577
|
-
function
|
|
578
|
-
|
|
562
|
+
function getResolvers(schema) {
|
|
563
|
+
if (typeof schema.getResolvers === "function") {
|
|
564
|
+
console.warn("Models are deprecated");
|
|
565
|
+
return schema.getResolvers();
|
|
566
|
+
}
|
|
567
|
+
if (schema.__resolvers) {
|
|
568
|
+
return schema.__resolvers;
|
|
569
|
+
}
|
|
570
|
+
return {};
|
|
571
|
+
}
|
|
572
|
+
function getDynamicFields(schema) {
|
|
573
|
+
const resolvers = getResolvers(schema);
|
|
579
574
|
if (!resolvers) return [];
|
|
580
575
|
const keys = Object.keys(resolvers);
|
|
581
576
|
return keys.map((key) => {
|
|
582
|
-
const
|
|
577
|
+
const resolver2 = resolvers[key];
|
|
583
578
|
return {
|
|
584
|
-
...
|
|
579
|
+
...resolver2,
|
|
585
580
|
key
|
|
586
581
|
};
|
|
587
|
-
}).filter((
|
|
582
|
+
}).filter((resolver2) => !resolver2.private);
|
|
588
583
|
}
|
|
589
|
-
__name(getDynamicFields, "getDynamicFields");
|
|
590
584
|
|
|
591
585
|
// src/resolversSchemas/getModelLoadedResolvers.ts
|
|
592
|
-
function getModelLoadedResolvers(
|
|
586
|
+
function getModelLoadedResolvers(schema, options) {
|
|
593
587
|
if (!options.modelResolvers) return [];
|
|
594
|
-
const resolvers = options.modelResolvers[
|
|
588
|
+
const resolvers = options.modelResolvers[schema.__modelName];
|
|
595
589
|
if (!resolvers) return [];
|
|
596
590
|
const keys = Object.keys(resolvers);
|
|
597
591
|
return keys.map((key) => {
|
|
598
|
-
const
|
|
592
|
+
const resolver2 = resolvers[key];
|
|
599
593
|
return {
|
|
600
|
-
...
|
|
594
|
+
...resolver2,
|
|
601
595
|
key
|
|
602
596
|
};
|
|
603
|
-
}).filter((
|
|
597
|
+
}).filter((resolver2) => !resolver2.private);
|
|
604
598
|
}
|
|
605
|
-
__name(getModelLoadedResolvers, "getModelLoadedResolvers");
|
|
606
599
|
|
|
607
600
|
// src/buildSchema/getType/index.ts
|
|
601
|
+
var import_lodash = require("lodash");
|
|
602
|
+
var createGraphQLObjectType = (modelName, schema, options) => new import_graphql6.GraphQLObjectType({
|
|
603
|
+
name: modelName,
|
|
604
|
+
fields: () => buildFields(schema, options)
|
|
605
|
+
});
|
|
606
|
+
var buildFields = (schema, options) => {
|
|
607
|
+
const fields = {};
|
|
608
|
+
const addStaticFields = () => {
|
|
609
|
+
for (const field of getStaticFields(schema)) {
|
|
610
|
+
try {
|
|
611
|
+
fields[field.key] = field.graphQLResolver ? getTypeAsResolver_default({ resolver: field.graphQLResolver, getGraphQLType, options, schema }) : { type: getGraphQLType(field.type, options) };
|
|
612
|
+
} catch (error) {
|
|
613
|
+
throw new Error(`Error getting type for ${field.key}: ${error.message}`);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
};
|
|
617
|
+
const addDynamicFields = () => {
|
|
618
|
+
for (const resolver2 of getDynamicFields(schema)) {
|
|
619
|
+
try {
|
|
620
|
+
fields[resolver2.key] = getTypeAsResolver_default({ resolver: resolver2, getGraphQLType, options, schema });
|
|
621
|
+
} catch (error) {
|
|
622
|
+
throw new Error(
|
|
623
|
+
`Error getting resolver type for resolver "${resolver2.key}": ${error.message}`
|
|
624
|
+
);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
};
|
|
628
|
+
const addModelLoadedResolvers = () => {
|
|
629
|
+
for (const resolver2 of getModelLoadedResolvers(schema, options)) {
|
|
630
|
+
try {
|
|
631
|
+
fields[resolver2.key] = getTypeAsResolver_default({ resolver: resolver2, getGraphQLType, options, schema });
|
|
632
|
+
} catch (error) {
|
|
633
|
+
throw new Error(
|
|
634
|
+
`Error getting resolver type for resolver "${resolver2.key}": ${error.message}`
|
|
635
|
+
);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
};
|
|
639
|
+
addStaticFields();
|
|
640
|
+
addDynamicFields();
|
|
641
|
+
addModelLoadedResolvers();
|
|
642
|
+
return fields;
|
|
643
|
+
};
|
|
644
|
+
var registeredGraphQLTypes = /* @__PURE__ */ new Map();
|
|
608
645
|
function getGraphQLType(type, options) {
|
|
609
|
-
if (!type)
|
|
610
|
-
throw new Error("Type is undefined");
|
|
611
|
-
}
|
|
646
|
+
if (!type) throw new Error("Type is undefined");
|
|
612
647
|
if ((0, import_isArray2.default)(type)) {
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
fields[field.key] = {
|
|
636
|
-
type: getGraphQLType(field.type, options)
|
|
637
|
-
};
|
|
638
|
-
}
|
|
639
|
-
} catch (error) {
|
|
640
|
-
throw new Error(`Error getting type for ${field.key} ${error.message}`);
|
|
641
|
-
}
|
|
642
|
-
}
|
|
643
|
-
for (const resolver4 of getDynamicFields(model)) {
|
|
644
|
-
try {
|
|
645
|
-
fields[resolver4.key] = getTypeAsResolver_default({
|
|
646
|
-
resolver: resolver4,
|
|
647
|
-
getGraphQLType,
|
|
648
|
-
options,
|
|
649
|
-
model
|
|
650
|
-
});
|
|
651
|
-
} catch (error) {
|
|
652
|
-
throw new Error(`Error getting resolver type for resolver "${resolver4.key}": ${error.message}`);
|
|
653
|
-
}
|
|
654
|
-
}
|
|
655
|
-
for (const resolver4 of getModelLoadedResolvers(model, options)) {
|
|
656
|
-
try {
|
|
657
|
-
fields[resolver4.key] = getTypeAsResolver_default({
|
|
658
|
-
resolver: resolver4,
|
|
659
|
-
getGraphQLType,
|
|
660
|
-
options,
|
|
661
|
-
model
|
|
662
|
-
});
|
|
663
|
-
} catch (error) {
|
|
664
|
-
throw new Error(`Error getting resolver type for resolver "${resolver4.key}": ${error.message}`);
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
return fields;
|
|
668
|
-
}, "fields")
|
|
669
|
-
});
|
|
670
|
-
return model.graphQLType;
|
|
671
|
-
} else {
|
|
672
|
-
const schemaType = (0, import_schema2.getFieldType)(type);
|
|
673
|
-
const graphQLType = getScalar_default(schemaType);
|
|
648
|
+
return new import_graphql6.GraphQLList(getGraphQLType(type[0], options));
|
|
649
|
+
}
|
|
650
|
+
if ((0, import_schema2.isSchemaLike)(type)) {
|
|
651
|
+
const schema = (0, import_schema2.getSchemaWithMetadataFromAnyOrionForm)(type);
|
|
652
|
+
const modelName = schema.__modelName;
|
|
653
|
+
if (schema.__graphQLType) {
|
|
654
|
+
return schema.__graphQLType;
|
|
655
|
+
}
|
|
656
|
+
if (!modelName) {
|
|
657
|
+
throw new Error(
|
|
658
|
+
`Schema name is not defined. Register a name with schemaWithName. Schema: ${JSON.stringify(schema)}`
|
|
659
|
+
);
|
|
660
|
+
}
|
|
661
|
+
if (registeredGraphQLTypes.has(modelName)) {
|
|
662
|
+
const { graphQLType: graphQLType2, schema: registeredSchema } = registeredGraphQLTypes.get(modelName);
|
|
663
|
+
if ((0, import_lodash.isEqual)(registeredSchema, schema)) {
|
|
664
|
+
return graphQLType2;
|
|
665
|
+
}
|
|
666
|
+
throw new Error(`Schema named "${modelName}" already registered`);
|
|
667
|
+
}
|
|
668
|
+
const graphQLType = createGraphQLObjectType(modelName, schema, options);
|
|
669
|
+
registeredGraphQLTypes.set(modelName, { schema, graphQLType });
|
|
674
670
|
return graphQLType;
|
|
675
671
|
}
|
|
672
|
+
return getScalar_default((0, import_schema2.getFieldType)(type));
|
|
676
673
|
}
|
|
677
|
-
__name(getGraphQLType, "getGraphQLType");
|
|
678
674
|
|
|
679
675
|
// src/buildSchema/getResolvers/resolversStore.ts
|
|
680
676
|
var resolversStore = {};
|
|
@@ -687,26 +683,21 @@ async function getResolvers_default(options, mutation) {
|
|
|
687
683
|
name: key,
|
|
688
684
|
resolver: resolvers[key]
|
|
689
685
|
};
|
|
690
|
-
}).filter(({ resolver:
|
|
686
|
+
}).filter(({ resolver: resolver2 }) => !!resolver2.mutation === !!mutation).filter(({ resolver: resolver2 }) => !resolver2.private);
|
|
691
687
|
const fields = {};
|
|
692
|
-
for (const { resolver:
|
|
693
|
-
resolversStore[name] =
|
|
694
|
-
const type = await getGraphQLType(
|
|
695
|
-
const args = await getArgs_default(
|
|
688
|
+
for (const { resolver: resolver2, name } of filteredResolvers) {
|
|
689
|
+
resolversStore[name] = resolver2;
|
|
690
|
+
const type = await getGraphQLType(resolver2.returns, options);
|
|
691
|
+
const args = await getArgs_default(resolver2.params);
|
|
696
692
|
fields[name] = {
|
|
697
693
|
type,
|
|
698
694
|
args,
|
|
699
|
-
async resolve(
|
|
695
|
+
async resolve(_root, params, context, info) {
|
|
700
696
|
try {
|
|
701
|
-
const result = await
|
|
697
|
+
const result = await resolver2.resolve(params, context, info);
|
|
702
698
|
return result;
|
|
703
699
|
} catch (error) {
|
|
704
|
-
errorHandler(error, {
|
|
705
|
-
context,
|
|
706
|
-
resolver: resolver4,
|
|
707
|
-
options,
|
|
708
|
-
name
|
|
709
|
-
});
|
|
700
|
+
errorHandler(error, { context, resolver: resolver2, options, name });
|
|
710
701
|
throw error;
|
|
711
702
|
}
|
|
712
703
|
}
|
|
@@ -714,7 +705,6 @@ async function getResolvers_default(options, mutation) {
|
|
|
714
705
|
}
|
|
715
706
|
return fields;
|
|
716
707
|
}
|
|
717
|
-
__name(getResolvers_default, "default");
|
|
718
708
|
|
|
719
709
|
// src/buildSchema/getQuery.ts
|
|
720
710
|
var import_isEmpty = __toESM(require("lodash/isEmpty"), 1);
|
|
@@ -726,7 +716,6 @@ async function getQuery_default(options) {
|
|
|
726
716
|
fields
|
|
727
717
|
});
|
|
728
718
|
}
|
|
729
|
-
__name(getQuery_default, "default");
|
|
730
719
|
|
|
731
720
|
// src/buildSchema/getMutation.ts
|
|
732
721
|
var import_graphql8 = require("graphql");
|
|
@@ -739,7 +728,6 @@ async function getMutation_default(options) {
|
|
|
739
728
|
fields
|
|
740
729
|
});
|
|
741
730
|
}
|
|
742
|
-
__name(getMutation_default, "default");
|
|
743
731
|
|
|
744
732
|
// src/buildSchema/getSubscription.ts
|
|
745
733
|
var import_graphql9 = require("graphql");
|
|
@@ -763,7 +751,6 @@ async function getSubscriptions_default(options) {
|
|
|
763
751
|
}
|
|
764
752
|
return fields;
|
|
765
753
|
}
|
|
766
|
-
__name(getSubscriptions_default, "default");
|
|
767
754
|
|
|
768
755
|
// src/buildSchema/getSubscription.ts
|
|
769
756
|
async function getSubscription_default(options) {
|
|
@@ -774,27 +761,19 @@ async function getSubscription_default(options) {
|
|
|
774
761
|
fields
|
|
775
762
|
});
|
|
776
763
|
}
|
|
777
|
-
__name(getSubscription_default, "default");
|
|
778
764
|
|
|
779
765
|
// src/buildSchema/index.ts
|
|
780
766
|
async function buildSchema_default(options) {
|
|
781
767
|
const query = await getQuery_default(options);
|
|
782
768
|
const mutation = await getMutation_default(options);
|
|
783
769
|
const subscription = await getSubscription_default(options);
|
|
784
|
-
const schema = new import_graphql10.GraphQLSchema({
|
|
785
|
-
query,
|
|
786
|
-
mutation,
|
|
787
|
-
subscription
|
|
788
|
-
});
|
|
770
|
+
const schema = new import_graphql10.GraphQLSchema({ query, mutation, subscription });
|
|
789
771
|
return schema;
|
|
790
772
|
}
|
|
791
|
-
__name(buildSchema_default, "default");
|
|
792
773
|
|
|
793
774
|
// src/getApolloOptions/formatError.ts
|
|
794
775
|
function formatError_default(apolloError) {
|
|
795
|
-
let response = {
|
|
796
|
-
...apolloError
|
|
797
|
-
};
|
|
776
|
+
let response = { ...apolloError };
|
|
798
777
|
const error = apolloError.originalError;
|
|
799
778
|
if (error && error.isValidationError) {
|
|
800
779
|
response.validationErrors = error.validationErrors;
|
|
@@ -804,13 +783,12 @@ function formatError_default(apolloError) {
|
|
|
804
783
|
}
|
|
805
784
|
return response;
|
|
806
785
|
}
|
|
807
|
-
__name(formatError_default, "default");
|
|
808
786
|
|
|
809
787
|
// src/getApolloOptions/index.ts
|
|
810
|
-
var
|
|
788
|
+
var import_lodash2 = require("lodash");
|
|
811
789
|
async function getApolloOptions_default(options) {
|
|
812
790
|
const schema = await buildSchema_default(options);
|
|
813
|
-
const passedOptions = (0,
|
|
791
|
+
const passedOptions = (0, import_lodash2.omit)(options, [
|
|
814
792
|
"resolvers",
|
|
815
793
|
"modelResolvers",
|
|
816
794
|
"subscriptions",
|
|
@@ -825,7 +803,6 @@ async function getApolloOptions_default(options) {
|
|
|
825
803
|
formatError: formatError_default
|
|
826
804
|
};
|
|
827
805
|
}
|
|
828
|
-
__name(getApolloOptions_default, "default");
|
|
829
806
|
|
|
830
807
|
// src/startWebsocket.ts
|
|
831
808
|
var import_graphql_subscriptions = require("graphql-subscriptions");
|
|
@@ -834,7 +811,7 @@ var import_ws2 = require("graphql-ws/lib/use/ws");
|
|
|
834
811
|
|
|
835
812
|
// src/websockerViewer.ts
|
|
836
813
|
global.getWebsocketViewerRef = () => null;
|
|
837
|
-
var getWebsockerViewer =
|
|
814
|
+
var getWebsockerViewer = async (connectionParams) => {
|
|
838
815
|
try {
|
|
839
816
|
const viewer = await global.getWebsocketViewerRef(connectionParams);
|
|
840
817
|
if (!viewer) return {};
|
|
@@ -842,10 +819,10 @@ var getWebsockerViewer = /* @__PURE__ */ __name(async (connectionParams) => {
|
|
|
842
819
|
} catch {
|
|
843
820
|
return {};
|
|
844
821
|
}
|
|
845
|
-
}
|
|
846
|
-
var setGetWebsockerViewer =
|
|
822
|
+
};
|
|
823
|
+
var setGetWebsockerViewer = (getViewerFunc) => {
|
|
847
824
|
global.getWebsocketViewerRef = getViewerFunc;
|
|
848
|
-
}
|
|
825
|
+
};
|
|
849
826
|
|
|
850
827
|
// src/startWebsocket.ts
|
|
851
828
|
var import_http2 = require("@orion-js/http");
|
|
@@ -861,12 +838,15 @@ function startWebsocket_default(apolloOptions, options, wsServer) {
|
|
|
861
838
|
path: "/subscriptions"
|
|
862
839
|
});
|
|
863
840
|
}
|
|
864
|
-
const serverCleanup = (0, import_ws2.useServer)(
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
841
|
+
const serverCleanup = (0, import_ws2.useServer)(
|
|
842
|
+
{
|
|
843
|
+
schema: apolloOptions.schema,
|
|
844
|
+
context: async (ctx, msg, args) => {
|
|
845
|
+
return getWebsockerViewer(ctx.connectionParams);
|
|
846
|
+
}
|
|
847
|
+
},
|
|
848
|
+
wsServer
|
|
849
|
+
);
|
|
870
850
|
return [
|
|
871
851
|
// Proper shutdown for the WebSocket server.
|
|
872
852
|
{
|
|
@@ -880,7 +860,6 @@ function startWebsocket_default(apolloOptions, options, wsServer) {
|
|
|
880
860
|
}
|
|
881
861
|
];
|
|
882
862
|
}
|
|
883
|
-
__name(startWebsocket_default, "default");
|
|
884
863
|
|
|
885
864
|
// src/startGraphQL.ts
|
|
886
865
|
var import_http3 = require("@orion-js/http");
|
|
@@ -895,167 +874,152 @@ async function startGraphQL_default(options) {
|
|
|
895
874
|
startGraphiQL_default(apolloOptions, options);
|
|
896
875
|
}
|
|
897
876
|
const subPlugins = startWebsocket_default(apolloOptions, options);
|
|
898
|
-
const drainPlugins = httpServer ? [
|
|
899
|
-
(0, import_drainHttpServer.ApolloServerPluginDrainHttpServer)({
|
|
900
|
-
httpServer
|
|
901
|
-
})
|
|
902
|
-
] : [];
|
|
877
|
+
const drainPlugins = httpServer ? [(0, import_drainHttpServer.ApolloServerPluginDrainHttpServer)({ httpServer })] : [];
|
|
903
878
|
const server = new import_server.ApolloServer({
|
|
904
879
|
...apolloOptions,
|
|
905
|
-
plugins: [
|
|
906
|
-
...apolloOptions.plugins || [],
|
|
907
|
-
...drainPlugins,
|
|
908
|
-
...subPlugins
|
|
909
|
-
]
|
|
880
|
+
plugins: [...apolloOptions.plugins || [], ...drainPlugins, ...subPlugins]
|
|
910
881
|
});
|
|
911
882
|
await server.start();
|
|
912
883
|
const middleware = (0, import_express4.expressMiddleware)(server, {
|
|
913
884
|
// @ts-expect-error
|
|
914
|
-
context:
|
|
885
|
+
context: ({ req, res }) => req._viewer
|
|
915
886
|
});
|
|
916
|
-
(0, import_http3.registerRoute)(
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
req
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
887
|
+
(0, import_http3.registerRoute)(
|
|
888
|
+
(0, import_http3.route)({
|
|
889
|
+
app,
|
|
890
|
+
method: "all",
|
|
891
|
+
path: "/graphql",
|
|
892
|
+
bodyParser: "json",
|
|
893
|
+
async resolve(req, res, viewer) {
|
|
894
|
+
;
|
|
895
|
+
req._viewer = viewer;
|
|
896
|
+
return middleware(req, res, req.next);
|
|
897
|
+
}
|
|
898
|
+
})
|
|
899
|
+
);
|
|
926
900
|
}
|
|
927
|
-
__name(startGraphQL_default, "default");
|
|
928
901
|
|
|
929
902
|
// src/resolversSchemas/params.ts
|
|
930
|
-
var
|
|
903
|
+
var import_resolvers2 = require("@orion-js/resolvers");
|
|
931
904
|
var import_helpers2 = require("@orion-js/helpers");
|
|
932
905
|
|
|
933
|
-
// src/resolversSchemas/
|
|
934
|
-
var import_isPlainObject3 = __toESM(require("lodash/isPlainObject"), 1);
|
|
935
|
-
var import_isArray3 = __toESM(require("lodash/isArray"), 1);
|
|
906
|
+
// src/resolversSchemas/ResolverParamsInfo.ts
|
|
936
907
|
var import_schema3 = require("@orion-js/schema");
|
|
908
|
+
var ResolverParamsInfo_default = (0, import_schema3.schemaWithName)("ResolverParams", {
|
|
909
|
+
name: {
|
|
910
|
+
type: "string"
|
|
911
|
+
},
|
|
912
|
+
params: {
|
|
913
|
+
type: "blackbox"
|
|
914
|
+
},
|
|
915
|
+
result: {
|
|
916
|
+
type: "string"
|
|
917
|
+
},
|
|
918
|
+
basicResultQuery: {
|
|
919
|
+
type: "string"
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
|
|
923
|
+
// src/resolversSchemas/serializeSchema.ts
|
|
924
|
+
var import_schema5 = require("@orion-js/schema");
|
|
925
|
+
|
|
926
|
+
// src/resolversSchemas/getField.ts
|
|
927
|
+
var import_schema4 = require("@orion-js/schema");
|
|
937
928
|
var import_omit = __toESM(require("lodash/omit"), 1);
|
|
938
|
-
async function
|
|
939
|
-
|
|
940
|
-
if (
|
|
941
|
-
const
|
|
942
|
-
return await getParams2({
|
|
943
|
-
...field,
|
|
944
|
-
type: model
|
|
945
|
-
});
|
|
946
|
-
} else if ((0, import_isArray3.default)(type)) {
|
|
947
|
-
const serialized = await getParams2({
|
|
948
|
-
...field,
|
|
949
|
-
type: type[0]
|
|
950
|
-
});
|
|
929
|
+
async function getParams(field) {
|
|
930
|
+
const { type } = field;
|
|
931
|
+
if (Array.isArray(type)) {
|
|
932
|
+
const serialized = await getParams({ ...field, type: type[0] });
|
|
951
933
|
return {
|
|
952
934
|
...serialized,
|
|
953
|
-
type: [
|
|
954
|
-
serialized.type
|
|
955
|
-
],
|
|
935
|
+
type: [serialized.type],
|
|
956
936
|
__graphQLType: `[${serialized.__graphQLType}]`
|
|
957
937
|
};
|
|
958
|
-
}
|
|
959
|
-
|
|
960
|
-
|
|
938
|
+
}
|
|
939
|
+
const isSchema = (0, import_schema4.isSchemaLike)(type);
|
|
940
|
+
if (isSchema) {
|
|
941
|
+
const schemaOfType = (0, import_schema4.getSchemaWithMetadataFromAnyOrionForm)(type);
|
|
942
|
+
const modelName = schemaOfType.__modelName;
|
|
943
|
+
if (!modelName) {
|
|
944
|
+
throw new Error("The schema needs a model name to be serialized for GraphQL");
|
|
945
|
+
}
|
|
961
946
|
const fields = {};
|
|
962
|
-
for (const field2 of getStaticFields(
|
|
963
|
-
fields[field2.key] = await
|
|
947
|
+
for (const field2 of getStaticFields(schemaOfType)) {
|
|
948
|
+
fields[field2.key] = await getParams(field2);
|
|
964
949
|
}
|
|
965
950
|
return {
|
|
966
951
|
...(0, import_omit.default)(field, "key"),
|
|
967
952
|
type: fields,
|
|
968
|
-
__graphQLType:
|
|
969
|
-
};
|
|
970
|
-
} else {
|
|
971
|
-
const schemaType = await (0, import_schema3.getFieldType)(type);
|
|
972
|
-
const graphQLType = await getScalar_default(schemaType);
|
|
973
|
-
return {
|
|
974
|
-
...(0, import_omit.default)(field, "key"),
|
|
975
|
-
type: schemaType.name,
|
|
976
|
-
__graphQLType: graphQLType.name
|
|
953
|
+
__graphQLType: `${modelName}Input`
|
|
977
954
|
};
|
|
978
955
|
}
|
|
956
|
+
const schemaType = (0, import_schema4.getFieldType)(type);
|
|
957
|
+
const graphQLType = await getScalar_default(schemaType);
|
|
958
|
+
return {
|
|
959
|
+
...(0, import_omit.default)(field, "key"),
|
|
960
|
+
type: schemaType.name,
|
|
961
|
+
__graphQLType: graphQLType.name
|
|
962
|
+
};
|
|
979
963
|
}
|
|
980
|
-
__name(getParams2, "getParams");
|
|
981
964
|
|
|
982
965
|
// src/resolversSchemas/serializeSchema.ts
|
|
966
|
+
Symbol.metadata ?? (Symbol.metadata = Symbol("Symbol.metadata"));
|
|
983
967
|
async function serializeSchema(params) {
|
|
984
968
|
if (!params) return;
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
}
|
|
988
|
-
if (Object.keys(params).length === 0) return;
|
|
969
|
+
const schema = (0, import_schema5.getSchemaFromAnyOrionForm)(params);
|
|
970
|
+
if (Object.keys(schema).length === 0) return;
|
|
989
971
|
const fields = {};
|
|
990
|
-
for (const key of Object.keys(
|
|
991
|
-
const field =
|
|
992
|
-
fields[key] = await
|
|
972
|
+
for (const key of Object.keys(schema).filter((key2) => !key2.startsWith("__"))) {
|
|
973
|
+
const field = schema[key];
|
|
974
|
+
fields[key] = await getParams(field);
|
|
993
975
|
}
|
|
994
976
|
return fields;
|
|
995
977
|
}
|
|
996
|
-
|
|
978
|
+
|
|
979
|
+
// src/resolversSchemas/params.ts
|
|
980
|
+
var import_schema7 = require("@orion-js/schema");
|
|
997
981
|
|
|
998
982
|
// src/resolversSchemas/getBasicResultQuery.ts
|
|
999
|
-
var
|
|
983
|
+
var import_isArray3 = __toESM(require("lodash/isArray"), 1);
|
|
984
|
+
var import_schema6 = require("@orion-js/schema");
|
|
1000
985
|
async function getBasicQuery(field) {
|
|
1001
986
|
if (!field.type) return "";
|
|
1002
|
-
if ((0,
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
return `${key}{ ${fields.join(" ")} }`;
|
|
1010
|
-
} else {
|
|
987
|
+
if ((0, import_isArray3.default)(field.type)) {
|
|
988
|
+
return getBasicQuery({
|
|
989
|
+
...field,
|
|
990
|
+
type: field.type[0]
|
|
991
|
+
});
|
|
992
|
+
}
|
|
993
|
+
if (!(0, import_schema6.isSchemaLike)(field.type)) {
|
|
1011
994
|
return field.key;
|
|
1012
995
|
}
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
var import_models = require("@orion-js/models");
|
|
1018
|
-
var import_resolvers2 = require("@orion-js/resolvers");
|
|
1019
|
-
var import_lodash2 = require("lodash");
|
|
1020
|
-
var resolverReturnsIsModel = /* @__PURE__ */ __name((returns) => {
|
|
1021
|
-
return returns && returns.__isModel;
|
|
1022
|
-
}, "resolverReturnsIsModel");
|
|
1023
|
-
var ResolverParamsInfo_default = (0, import_models.createModel)({
|
|
1024
|
-
name: "ResolverParams",
|
|
1025
|
-
schema: {
|
|
1026
|
-
name: {
|
|
1027
|
-
type: String
|
|
1028
|
-
}
|
|
1029
|
-
},
|
|
1030
|
-
resolvers: {
|
|
1031
|
-
params: (0, import_resolvers2.resolver)({
|
|
1032
|
-
returns: "blackbox",
|
|
1033
|
-
resolve: /* @__PURE__ */ __name(async function({ resolver: resolver4 }) {
|
|
1034
|
-
return await serializeSchema(resolver4.params);
|
|
1035
|
-
}, "resolve")
|
|
1036
|
-
}),
|
|
1037
|
-
result: (0, import_resolvers2.resolver)({
|
|
1038
|
-
returns: String,
|
|
1039
|
-
resolve: /* @__PURE__ */ __name(async function({ resolver: resolver4 }) {
|
|
1040
|
-
const returns = (0, import_lodash2.isArray)(resolver4.returns) ? resolver4.returns[0] : resolver4.returns;
|
|
1041
|
-
if (resolverReturnsIsModel(returns)) return returns.name;
|
|
1042
|
-
return;
|
|
1043
|
-
}, "resolve")
|
|
1044
|
-
}),
|
|
1045
|
-
basicResultQuery: (0, import_resolvers2.resolver)({
|
|
1046
|
-
returns: String,
|
|
1047
|
-
resolve: /* @__PURE__ */ __name(async function({ resolver: resolver4 }) {
|
|
1048
|
-
const returns = (0, import_lodash2.isArray)(resolver4.returns) ? resolver4.returns[0] : resolver4.returns;
|
|
1049
|
-
return await getBasicQuery({
|
|
1050
|
-
type: resolverReturnsIsModel(returns) ? returns.getSchema() : ""
|
|
1051
|
-
});
|
|
1052
|
-
}, "resolve")
|
|
1053
|
-
})
|
|
996
|
+
const schema = (0, import_schema6.getSchemaFromAnyOrionForm)(field.type);
|
|
997
|
+
const fields = [];
|
|
998
|
+
for (const field2 of getStaticFields(schema)) {
|
|
999
|
+
fields.push(await getBasicQuery(field2));
|
|
1054
1000
|
}
|
|
1055
|
-
}
|
|
1001
|
+
const key = field.key ? `${field.key} ` : "";
|
|
1002
|
+
return `${key}{ ${fields.join(" ")} }`;
|
|
1003
|
+
}
|
|
1056
1004
|
|
|
1057
1005
|
// src/resolversSchemas/params.ts
|
|
1058
|
-
|
|
1006
|
+
function getResultTypeName(type) {
|
|
1007
|
+
const returns = Array.isArray(type) ? type[0] : type;
|
|
1008
|
+
const schema = (0, import_schema7.getSchemaFromAnyOrionForm)(returns);
|
|
1009
|
+
if (schema == null ? void 0 : schema.__modelName) return schema.__modelName;
|
|
1010
|
+
return;
|
|
1011
|
+
}
|
|
1012
|
+
async function getInternalBasicResultQuery(type) {
|
|
1013
|
+
const returns = Array.isArray(type) ? type[0] : type;
|
|
1014
|
+
if ((0, import_schema7.isSchemaLike)(returns)) {
|
|
1015
|
+
const schema = (0, import_schema7.getSchemaFromAnyOrionForm)(returns);
|
|
1016
|
+
return await getBasicQuery({
|
|
1017
|
+
type: schema
|
|
1018
|
+
});
|
|
1019
|
+
}
|
|
1020
|
+
return "";
|
|
1021
|
+
}
|
|
1022
|
+
var params_default = (0, import_resolvers2.createResolver)({
|
|
1059
1023
|
params: {
|
|
1060
1024
|
name: {
|
|
1061
1025
|
type: "ID"
|
|
@@ -1066,19 +1030,24 @@ var params_default = (0, import_resolvers3.resolver)({
|
|
|
1066
1030
|
},
|
|
1067
1031
|
returns: ResolverParamsInfo_default,
|
|
1068
1032
|
mutation: false,
|
|
1069
|
-
|
|
1070
|
-
const
|
|
1071
|
-
if (!
|
|
1072
|
-
throw new import_helpers2.UserError(
|
|
1033
|
+
async resolve({ mutation, name }) {
|
|
1034
|
+
const resolver2 = resolversStore[name];
|
|
1035
|
+
if (!resolver2) {
|
|
1036
|
+
throw new import_helpers2.UserError(
|
|
1037
|
+
"notFound",
|
|
1038
|
+
`${mutation ? "Mutation" : "Query"} named "${name}" not found`
|
|
1039
|
+
);
|
|
1073
1040
|
}
|
|
1074
|
-
if (!!
|
|
1041
|
+
if (!!resolver2.mutation !== !!mutation) {
|
|
1075
1042
|
throw new import_helpers2.UserError("incorrectType", `"${name}" is ${mutation ? "not" : ""} a mutation`);
|
|
1076
1043
|
}
|
|
1077
1044
|
return {
|
|
1078
|
-
|
|
1079
|
-
|
|
1045
|
+
name,
|
|
1046
|
+
basicResultQuery: await getInternalBasicResultQuery(resolver2.returns),
|
|
1047
|
+
params: await serializeSchema(resolver2.params),
|
|
1048
|
+
result: getResultTypeName(resolver2.returns)
|
|
1080
1049
|
};
|
|
1081
|
-
}
|
|
1050
|
+
}
|
|
1082
1051
|
});
|
|
1083
1052
|
|
|
1084
1053
|
// src/resolversSchemas/index.ts
|
|
@@ -1090,183 +1059,222 @@ var resolversSchemas_default = {
|
|
|
1090
1059
|
var GraphQL2 = __toESM(require("graphql"), 1);
|
|
1091
1060
|
|
|
1092
1061
|
// src/types/subscription.ts
|
|
1093
|
-
var
|
|
1062
|
+
var OrionSubscription = class {
|
|
1094
1063
|
name;
|
|
1095
1064
|
params;
|
|
1096
1065
|
subscribe;
|
|
1097
1066
|
returns;
|
|
1098
1067
|
publish;
|
|
1099
1068
|
};
|
|
1100
|
-
__name(_OrionSubscription, "OrionSubscription");
|
|
1101
|
-
var OrionSubscription = _OrionSubscription;
|
|
1102
1069
|
|
|
1103
1070
|
// src/service/global.ts
|
|
1104
1071
|
var import_services = require("@orion-js/services");
|
|
1105
|
-
var
|
|
1106
|
-
var import_helpers3 = require("@orion-js/helpers");
|
|
1072
|
+
var import_resolvers3 = require("@orion-js/resolvers");
|
|
1107
1073
|
|
|
1108
|
-
// src/service/
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
};
|
|
1121
|
-
};
|
|
1074
|
+
// src/service/middlewares.ts
|
|
1075
|
+
var resolversMetadata = /* @__PURE__ */ new WeakMap();
|
|
1076
|
+
function addTargetMetadata(target, propertyKey, metadataKey, metadata, isArray4 = false) {
|
|
1077
|
+
const targetMetadata = resolversMetadata.get(target) || {};
|
|
1078
|
+
targetMetadata[propertyKey] = targetMetadata[propertyKey] || {};
|
|
1079
|
+
if (isArray4) {
|
|
1080
|
+
targetMetadata[propertyKey][metadataKey] = targetMetadata[propertyKey][metadataKey] || [];
|
|
1081
|
+
targetMetadata[propertyKey][metadataKey].unshift(metadata);
|
|
1082
|
+
} else {
|
|
1083
|
+
targetMetadata[propertyKey][metadataKey] = metadata;
|
|
1084
|
+
}
|
|
1085
|
+
resolversMetadata.set(target, targetMetadata);
|
|
1122
1086
|
}
|
|
1123
|
-
__name(createRegisterResolverMetadata, "createRegisterResolverMetadata");
|
|
1124
1087
|
function getTargetMetadata(target, propertyKey, metadataKey) {
|
|
1125
|
-
|
|
1126
|
-
|
|
1088
|
+
var _a;
|
|
1089
|
+
const targetMetadata = resolversMetadata.get(target) || {};
|
|
1090
|
+
return (_a = targetMetadata[propertyKey]) == null ? void 0 : _a[metadataKey];
|
|
1091
|
+
}
|
|
1092
|
+
function UseMiddleware(params) {
|
|
1093
|
+
return (method, context) => {
|
|
1094
|
+
const propertyKey = String(context.name);
|
|
1095
|
+
addTargetMetadata(method, propertyKey, "middlewares", params, true);
|
|
1096
|
+
return method;
|
|
1097
|
+
};
|
|
1098
|
+
}
|
|
1099
|
+
function ResolverParams(params) {
|
|
1100
|
+
return (method, context) => {
|
|
1101
|
+
const propertyKey = String(context.name);
|
|
1102
|
+
addTargetMetadata(method, propertyKey, "params", params, false);
|
|
1103
|
+
return method;
|
|
1104
|
+
};
|
|
1105
|
+
}
|
|
1106
|
+
function ResolverReturns(returns) {
|
|
1107
|
+
return (method, context) => {
|
|
1108
|
+
const propertyKey = String(context.name);
|
|
1109
|
+
addTargetMetadata(method, propertyKey, "returns", returns, false);
|
|
1110
|
+
return method;
|
|
1111
|
+
};
|
|
1127
1112
|
}
|
|
1128
|
-
__name(getTargetMetadata, "getTargetMetadata");
|
|
1129
|
-
var UseMiddleware = createRegisterResolverMetadata("middlewares", true);
|
|
1130
|
-
var ResolverParams = createRegisterResolverMetadata("params");
|
|
1131
|
-
var ResolverReturns = createRegisterResolverMetadata("returns");
|
|
1132
1113
|
|
|
1133
1114
|
// src/service/global.ts
|
|
1115
|
+
var serviceMetadata = /* @__PURE__ */ new WeakMap();
|
|
1116
|
+
var resolversMetadata2 = /* @__PURE__ */ new WeakMap();
|
|
1134
1117
|
function Resolvers() {
|
|
1135
|
-
return (target) => {
|
|
1136
|
-
(0, import_services.Service)()(target);
|
|
1137
|
-
|
|
1118
|
+
return (target, context) => {
|
|
1119
|
+
(0, import_services.Service)()(target, context);
|
|
1120
|
+
context.addInitializer(function() {
|
|
1121
|
+
serviceMetadata.set(this, { _serviceType: "resolvers" });
|
|
1122
|
+
});
|
|
1138
1123
|
};
|
|
1139
1124
|
}
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
}, "resolve")
|
|
1125
|
+
function Query(options = {}) {
|
|
1126
|
+
return (method, context) => {
|
|
1127
|
+
const propertyKey = String(context.name);
|
|
1128
|
+
context.addInitializer(function() {
|
|
1129
|
+
const resolvers = resolversMetadata2.get(this) || {};
|
|
1130
|
+
resolvers[propertyKey] = (0, import_resolvers3.resolver)({
|
|
1131
|
+
resolverId: propertyKey,
|
|
1132
|
+
params: getTargetMetadata(method, propertyKey, "params") || {},
|
|
1133
|
+
returns: getTargetMetadata(method, propertyKey, "returns") || "string",
|
|
1134
|
+
middlewares: getTargetMetadata(method, propertyKey, "middlewares") || [],
|
|
1135
|
+
...options,
|
|
1136
|
+
resolve: this[propertyKey].bind(this)
|
|
1137
|
+
});
|
|
1138
|
+
resolversMetadata2.set(this, resolvers);
|
|
1155
1139
|
});
|
|
1140
|
+
return method;
|
|
1156
1141
|
};
|
|
1157
1142
|
}
|
|
1158
|
-
__name(Query, "Query");
|
|
1159
1143
|
function Mutation(options) {
|
|
1160
|
-
return (
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1144
|
+
return (method, context) => {
|
|
1145
|
+
const propertyKey = String(context.name);
|
|
1146
|
+
context.addInitializer(function() {
|
|
1147
|
+
const resolvers = resolversMetadata2.get(this) || {};
|
|
1148
|
+
resolvers[propertyKey] = (0, import_resolvers3.resolver)({
|
|
1149
|
+
resolverId: propertyKey,
|
|
1150
|
+
params: getTargetMetadata(method, propertyKey, "params") || {},
|
|
1151
|
+
returns: getTargetMetadata(method, propertyKey, "returns") || "string",
|
|
1152
|
+
middlewares: getTargetMetadata(method, propertyKey, "middlewares") || [],
|
|
1153
|
+
...options,
|
|
1154
|
+
mutation: true,
|
|
1155
|
+
resolve: this[propertyKey].bind(this)
|
|
1156
|
+
});
|
|
1157
|
+
resolversMetadata2.set(this, resolvers);
|
|
1174
1158
|
});
|
|
1159
|
+
return method;
|
|
1175
1160
|
};
|
|
1176
1161
|
}
|
|
1177
|
-
__name(Mutation, "Mutation");
|
|
1178
1162
|
function getServiceResolvers(target) {
|
|
1179
|
-
|
|
1180
|
-
|
|
1163
|
+
const instance = (0, import_services.getInstance)(target);
|
|
1164
|
+
if (!serviceMetadata.has(instance.constructor)) {
|
|
1165
|
+
throw new Error("You must pass a class decorated with @Resolvers to getServiceResolvers");
|
|
1166
|
+
}
|
|
1167
|
+
const instanceMetadata = serviceMetadata.get(instance.constructor);
|
|
1168
|
+
if (instanceMetadata._serviceType !== "resolvers") {
|
|
1169
|
+
throw new Error("You must pass a class decorated with @Resolvers to getServiceResolvers");
|
|
1181
1170
|
}
|
|
1182
|
-
|
|
1171
|
+
const resolversMap = resolversMetadata2.get(instance) || {};
|
|
1172
|
+
return resolversMap;
|
|
1183
1173
|
}
|
|
1184
|
-
__name(getServiceResolvers, "getServiceResolvers");
|
|
1185
1174
|
|
|
1186
1175
|
// src/service/model.ts
|
|
1187
1176
|
var import_services2 = require("@orion-js/services");
|
|
1188
|
-
var
|
|
1189
|
-
var
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
}, "resolve")
|
|
1177
|
+
var import_resolvers4 = require("@orion-js/resolvers");
|
|
1178
|
+
var serviceMetadata2 = /* @__PURE__ */ new WeakMap();
|
|
1179
|
+
var modelResolversMetadata = /* @__PURE__ */ new WeakMap();
|
|
1180
|
+
function ModelResolvers(typedSchema, options = {}) {
|
|
1181
|
+
return (target, context) => {
|
|
1182
|
+
(0, import_services2.Service)()(target, context);
|
|
1183
|
+
const modelName = options.modelName || typedSchema.name;
|
|
1184
|
+
context.addInitializer(function() {
|
|
1185
|
+
serviceMetadata2.set(this, {
|
|
1186
|
+
_serviceType: "modelResolvers",
|
|
1187
|
+
options,
|
|
1188
|
+
_typedSchema: typedSchema,
|
|
1189
|
+
_modelName: modelName
|
|
1190
|
+
});
|
|
1203
1191
|
});
|
|
1204
1192
|
};
|
|
1205
1193
|
}
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1194
|
+
function ModelResolver(options) {
|
|
1195
|
+
return (method, context) => {
|
|
1196
|
+
const propertyKey = String(context.name);
|
|
1197
|
+
context.addInitializer(function() {
|
|
1198
|
+
const modelResolvers = modelResolversMetadata.get(this) || {};
|
|
1199
|
+
modelResolvers[propertyKey] = (0, import_resolvers4.modelResolver)({
|
|
1200
|
+
params: getTargetMetadata(method, propertyKey, "params") || {},
|
|
1201
|
+
returns: getTargetMetadata(method, propertyKey, "returns") || "string",
|
|
1202
|
+
middlewares: getTargetMetadata(method, propertyKey, "middlewares") || [],
|
|
1203
|
+
...options,
|
|
1204
|
+
resolve: this[propertyKey].bind(this)
|
|
1205
|
+
});
|
|
1206
|
+
modelResolversMetadata.set(this, modelResolvers);
|
|
1207
|
+
});
|
|
1208
|
+
return method;
|
|
1217
1209
|
};
|
|
1218
1210
|
}
|
|
1219
|
-
__name(ModelResolvers, "ModelResolvers");
|
|
1220
1211
|
function getServiceModelResolvers(target) {
|
|
1221
|
-
|
|
1222
|
-
|
|
1212
|
+
const instance = (0, import_services2.getInstance)(target);
|
|
1213
|
+
if (!serviceMetadata2.has(instance.constructor)) {
|
|
1214
|
+
throw new Error(
|
|
1215
|
+
"You must pass a class decorated with @ModelResolvers to getServiceModelResolvers"
|
|
1216
|
+
);
|
|
1217
|
+
}
|
|
1218
|
+
const instanceMetadata = serviceMetadata2.get(instance.constructor);
|
|
1219
|
+
if (instanceMetadata._serviceType !== "modelResolvers") {
|
|
1220
|
+
throw new Error(
|
|
1221
|
+
"You must pass a class decorated with @ModelResolvers to getServiceModelResolvers"
|
|
1222
|
+
);
|
|
1223
1223
|
}
|
|
1224
|
+
const modelResolversMap = modelResolversMetadata.get(instance) || {};
|
|
1224
1225
|
return {
|
|
1225
|
-
[
|
|
1226
|
+
[instanceMetadata._modelName]: modelResolversMap
|
|
1226
1227
|
};
|
|
1227
1228
|
}
|
|
1228
|
-
__name(getServiceModelResolvers, "getServiceModelResolvers");
|
|
1229
1229
|
|
|
1230
1230
|
// src/service/subscription.ts
|
|
1231
1231
|
var import_services3 = require("@orion-js/services");
|
|
1232
|
-
var
|
|
1232
|
+
var serviceMetadata3 = /* @__PURE__ */ new WeakMap();
|
|
1233
|
+
var subscriptionsMetadata = /* @__PURE__ */ new WeakMap();
|
|
1233
1234
|
function Subscriptions() {
|
|
1234
|
-
return (target) => {
|
|
1235
|
-
(0, import_services3.Service)()(target);
|
|
1236
|
-
|
|
1237
|
-
|
|
1235
|
+
return (target, context) => {
|
|
1236
|
+
(0, import_services3.Service)()(target, context);
|
|
1237
|
+
context.addInitializer(function() {
|
|
1238
|
+
serviceMetadata3.set(this, { _serviceType: "subscriptions" });
|
|
1239
|
+
});
|
|
1238
1240
|
};
|
|
1239
1241
|
}
|
|
1240
|
-
__name(Subscriptions, "Subscriptions");
|
|
1241
1242
|
function Subscription(options) {
|
|
1242
|
-
return (
|
|
1243
|
-
const
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
}, "value")
|
|
1243
|
+
return (_target, context) => {
|
|
1244
|
+
const propertyKey = String(context.name);
|
|
1245
|
+
context.addInitializer(function() {
|
|
1246
|
+
const repo = serviceMetadata3.get(this.constructor);
|
|
1247
|
+
if (!repo || repo._serviceType !== "subscriptions") {
|
|
1248
|
+
throw new Error(
|
|
1249
|
+
"You must pass a class decorated with @Subscriptions if you want to use @Subscription"
|
|
1250
|
+
);
|
|
1251
|
+
}
|
|
1252
|
+
const subscriptions = subscriptionsMetadata.get(this) || {};
|
|
1253
|
+
subscriptions[propertyKey] = subscription_default({
|
|
1254
|
+
name: propertyKey,
|
|
1255
|
+
...options
|
|
1256
|
+
});
|
|
1257
|
+
subscriptionsMetadata.set(this, subscriptions);
|
|
1258
|
+
this[propertyKey] = subscriptions[propertyKey];
|
|
1259
1259
|
});
|
|
1260
1260
|
};
|
|
1261
1261
|
}
|
|
1262
|
-
__name(Subscription, "Subscription");
|
|
1263
1262
|
function getServiceSubscriptions(target) {
|
|
1264
|
-
|
|
1265
|
-
|
|
1263
|
+
const instance = (0, import_services3.getInstance)(target);
|
|
1264
|
+
if (!serviceMetadata3.has(instance.constructor)) {
|
|
1265
|
+
throw new Error(
|
|
1266
|
+
"You must pass a class decorated with @Subscriptions to getServiceSubscriptions"
|
|
1267
|
+
);
|
|
1268
|
+
}
|
|
1269
|
+
const instanceMetadata = serviceMetadata3.get(instance.constructor);
|
|
1270
|
+
if (instanceMetadata._serviceType !== "subscriptions") {
|
|
1271
|
+
throw new Error(
|
|
1272
|
+
"You must pass a class decorated with @Subscriptions to getServiceSubscriptions"
|
|
1273
|
+
);
|
|
1266
1274
|
}
|
|
1267
|
-
|
|
1275
|
+
const subscriptionsMap = subscriptionsMetadata.get(instance) || {};
|
|
1276
|
+
return subscriptionsMap;
|
|
1268
1277
|
}
|
|
1269
|
-
__name(getServiceSubscriptions, "getServiceSubscriptions");
|
|
1270
1278
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1271
1279
|
0 && (module.exports = {
|
|
1272
1280
|
GraphQL,
|