@orion-js/graphql 4.0.0-next.3 → 4.0.0-next.5
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 +415 -328
- 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 +420 -325
- package/dist/index.js.map +1 -1
- package/package.json +12 -12
package/dist/index.cjs
CHANGED
|
@@ -309,7 +309,6 @@ var import_graphql10 = require("graphql");
|
|
|
309
309
|
var import_graphql7 = require("graphql");
|
|
310
310
|
|
|
311
311
|
// src/buildSchema/getType/index.ts
|
|
312
|
-
var import_isPlainObject2 = __toESM(require("lodash/isPlainObject"), 1);
|
|
313
312
|
var import_isArray2 = __toESM(require("lodash/isArray"), 1);
|
|
314
313
|
var import_graphql6 = require("graphql");
|
|
315
314
|
var import_schema2 = require("@orion-js/schema");
|
|
@@ -433,9 +432,11 @@ var import_graphql4 = require("graphql");
|
|
|
433
432
|
var import_schema = require("@orion-js/schema");
|
|
434
433
|
|
|
435
434
|
// src/resolversSchemas/getStaticFields.ts
|
|
436
|
-
function getStaticFields(
|
|
437
|
-
const schema = model.getSchema();
|
|
435
|
+
function getStaticFields(schema) {
|
|
438
436
|
if (!schema) return [];
|
|
437
|
+
if (schema.getSchema) {
|
|
438
|
+
schema = schema.getSchema();
|
|
439
|
+
}
|
|
439
440
|
const keys = Object.keys(schema).filter((key) => !key.startsWith("__"));
|
|
440
441
|
return keys.map((key) => {
|
|
441
442
|
const field = schema[key];
|
|
@@ -447,49 +448,57 @@ function getStaticFields(model) {
|
|
|
447
448
|
}
|
|
448
449
|
|
|
449
450
|
// src/buildSchema/getArgs/getField.ts
|
|
451
|
+
Symbol.metadata ?? (Symbol.metadata = Symbol("Symbol.metadata"));
|
|
450
452
|
var storedModelInput = {};
|
|
451
|
-
var
|
|
452
|
-
if (storedModelInput[model.name]) {
|
|
453
|
-
|
|
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
|
+
});
|
|
454
459
|
}
|
|
455
|
-
storedModelInput[model.name] = new import_graphql4.GraphQLInputObjectType({
|
|
456
|
-
name: model.name + "Input",
|
|
457
|
-
fields
|
|
458
|
-
});
|
|
459
460
|
return storedModelInput[model.name];
|
|
460
461
|
};
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
462
|
+
var resolveModelFields = (model) => {
|
|
463
|
+
const fields = {};
|
|
464
|
+
for (const field of getStaticFields(model)) {
|
|
465
|
+
fields[field.key] = { type: resolveType(field.type) };
|
|
464
466
|
}
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
for (const field of getStaticFields(model)) {
|
|
473
|
-
fields[field.key] = {
|
|
474
|
-
type: getParams(field.type)
|
|
475
|
-
};
|
|
476
|
-
}
|
|
477
|
-
return getModelInput(model, fields);
|
|
478
|
-
} else {
|
|
479
|
-
const schemaType = (0, import_schema.getFieldType)(type);
|
|
480
|
-
const graphQLType = getScalar_default(schemaType);
|
|
481
|
-
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");
|
|
482
474
|
}
|
|
483
|
-
|
|
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;
|
|
484
493
|
|
|
485
494
|
// src/buildSchema/getArgs/index.ts
|
|
486
|
-
function getArgs_default(params) {
|
|
495
|
+
async function getArgs_default(params) {
|
|
487
496
|
if (!params) return;
|
|
488
497
|
if (Object.keys(params).length === 0) return;
|
|
489
498
|
const fields = {};
|
|
490
499
|
for (const key of Object.keys(params)) {
|
|
491
500
|
try {
|
|
492
|
-
const type =
|
|
501
|
+
const type = getField_default(params[key].type);
|
|
493
502
|
fields[key] = { type };
|
|
494
503
|
} catch (error) {
|
|
495
504
|
throw new Error(`Error creating GraphQL resolver params argument ${key}: ${error.message}`);
|
|
@@ -499,13 +508,13 @@ function getArgs_default(params) {
|
|
|
499
508
|
}
|
|
500
509
|
|
|
501
510
|
// src/errorHandler.ts
|
|
502
|
-
var
|
|
511
|
+
var import_node_crypto = __toESM(require("crypto"), 1);
|
|
503
512
|
var import_graphql5 = require("graphql");
|
|
504
513
|
function errorHandler(error, data) {
|
|
505
|
-
const message = `Error in resolver "${data.name}" ${data.
|
|
506
|
-
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);
|
|
507
516
|
error.hash = hash;
|
|
508
|
-
if (error
|
|
517
|
+
if (error == null ? void 0 : error.isOrionError) {
|
|
509
518
|
console.warn(message, error);
|
|
510
519
|
throw new import_graphql5.GraphQLError(error.message, {
|
|
511
520
|
originalError: error,
|
|
@@ -517,33 +526,32 @@ function errorHandler(error, data) {
|
|
|
517
526
|
info: error.getInfo()
|
|
518
527
|
}
|
|
519
528
|
});
|
|
520
|
-
} else {
|
|
521
|
-
console.error(message, error);
|
|
522
|
-
throw new import_graphql5.GraphQLError(`${error.message} [${hash}]`, {
|
|
523
|
-
// originalError: error,
|
|
524
|
-
extensions: {
|
|
525
|
-
isOrionError: false,
|
|
526
|
-
isValidationError: false,
|
|
527
|
-
code: "INTERNAL_SERVER_ERROR",
|
|
528
|
-
hash
|
|
529
|
-
}
|
|
530
|
-
});
|
|
531
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
|
+
});
|
|
532
540
|
}
|
|
533
541
|
|
|
534
542
|
// src/buildSchema/getType/getTypeAsResolver.ts
|
|
535
|
-
function getTypeAsResolver_default({ resolver:
|
|
536
|
-
const type = getGraphQLType2(
|
|
537
|
-
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);
|
|
538
546
|
return {
|
|
539
547
|
type,
|
|
540
548
|
args,
|
|
541
549
|
async resolve(item, params, context, info) {
|
|
542
550
|
try {
|
|
543
|
-
const result = await
|
|
551
|
+
const result = await resolver2.resolve(item, params, context, info);
|
|
544
552
|
return result;
|
|
545
553
|
} catch (error) {
|
|
546
|
-
errorHandler(error, { context, resolver:
|
|
554
|
+
errorHandler(error, { context, resolver: resolver2, options, schema });
|
|
547
555
|
throw error;
|
|
548
556
|
}
|
|
549
557
|
}
|
|
@@ -551,97 +559,117 @@ function getTypeAsResolver_default({ resolver: resolver4, getGraphQLType: getGra
|
|
|
551
559
|
}
|
|
552
560
|
|
|
553
561
|
// src/resolversSchemas/getDynamicFields.ts
|
|
554
|
-
function
|
|
555
|
-
|
|
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);
|
|
556
574
|
if (!resolvers) return [];
|
|
557
575
|
const keys = Object.keys(resolvers);
|
|
558
576
|
return keys.map((key) => {
|
|
559
|
-
const
|
|
577
|
+
const resolver2 = resolvers[key];
|
|
560
578
|
return {
|
|
561
|
-
...
|
|
579
|
+
...resolver2,
|
|
562
580
|
key
|
|
563
581
|
};
|
|
564
|
-
}).filter((
|
|
582
|
+
}).filter((resolver2) => !resolver2.private);
|
|
565
583
|
}
|
|
566
584
|
|
|
567
585
|
// src/resolversSchemas/getModelLoadedResolvers.ts
|
|
568
|
-
function getModelLoadedResolvers(
|
|
586
|
+
function getModelLoadedResolvers(schema, options) {
|
|
569
587
|
if (!options.modelResolvers) return [];
|
|
570
|
-
const resolvers = options.modelResolvers[
|
|
588
|
+
const resolvers = options.modelResolvers[schema.__modelName];
|
|
571
589
|
if (!resolvers) return [];
|
|
572
590
|
const keys = Object.keys(resolvers);
|
|
573
591
|
return keys.map((key) => {
|
|
574
|
-
const
|
|
592
|
+
const resolver2 = resolvers[key];
|
|
575
593
|
return {
|
|
576
|
-
...
|
|
594
|
+
...resolver2,
|
|
577
595
|
key
|
|
578
596
|
};
|
|
579
|
-
}).filter((
|
|
597
|
+
}).filter((resolver2) => !resolver2.private);
|
|
580
598
|
}
|
|
581
599
|
|
|
582
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();
|
|
583
645
|
function getGraphQLType(type, options) {
|
|
584
|
-
if (!type)
|
|
585
|
-
throw new Error("Type is undefined");
|
|
586
|
-
}
|
|
646
|
+
if (!type) throw new Error("Type is undefined");
|
|
587
647
|
if ((0, import_isArray2.default)(type)) {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
getGraphQLType,
|
|
606
|
-
options,
|
|
607
|
-
model
|
|
608
|
-
});
|
|
609
|
-
} else {
|
|
610
|
-
fields[field.key] = {
|
|
611
|
-
type: getGraphQLType(field.type, options)
|
|
612
|
-
};
|
|
613
|
-
}
|
|
614
|
-
} catch (error) {
|
|
615
|
-
throw new Error(`Error getting type for ${field.key} ${error.message}`);
|
|
616
|
-
}
|
|
617
|
-
}
|
|
618
|
-
for (const resolver4 of getDynamicFields(model)) {
|
|
619
|
-
try {
|
|
620
|
-
fields[resolver4.key] = getTypeAsResolver_default({ resolver: resolver4, getGraphQLType, options, model });
|
|
621
|
-
} catch (error) {
|
|
622
|
-
throw new Error(
|
|
623
|
-
`Error getting resolver type for resolver "${resolver4.key}": ${error.message}`
|
|
624
|
-
);
|
|
625
|
-
}
|
|
626
|
-
}
|
|
627
|
-
for (const resolver4 of getModelLoadedResolvers(model, options)) {
|
|
628
|
-
try {
|
|
629
|
-
fields[resolver4.key] = getTypeAsResolver_default({ resolver: resolver4, getGraphQLType, options, model });
|
|
630
|
-
} catch (error) {
|
|
631
|
-
throw new Error(
|
|
632
|
-
`Error getting resolver type for resolver "${resolver4.key}": ${error.message}`
|
|
633
|
-
);
|
|
634
|
-
}
|
|
635
|
-
}
|
|
636
|
-
return fields;
|
|
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;
|
|
637
665
|
}
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
const graphQLType = getScalar_default(schemaType);
|
|
666
|
+
throw new Error(`Schema named "${modelName}" already registered`);
|
|
667
|
+
}
|
|
668
|
+
const graphQLType = createGraphQLObjectType(modelName, schema, options);
|
|
669
|
+
registeredGraphQLTypes.set(modelName, { schema, graphQLType });
|
|
643
670
|
return graphQLType;
|
|
644
671
|
}
|
|
672
|
+
return getScalar_default((0, import_schema2.getFieldType)(type));
|
|
645
673
|
}
|
|
646
674
|
|
|
647
675
|
// src/buildSchema/getResolvers/resolversStore.ts
|
|
@@ -655,21 +683,21 @@ async function getResolvers_default(options, mutation) {
|
|
|
655
683
|
name: key,
|
|
656
684
|
resolver: resolvers[key]
|
|
657
685
|
};
|
|
658
|
-
}).filter(({ resolver:
|
|
686
|
+
}).filter(({ resolver: resolver2 }) => !!resolver2.mutation === !!mutation).filter(({ resolver: resolver2 }) => !resolver2.private);
|
|
659
687
|
const fields = {};
|
|
660
|
-
for (const { resolver:
|
|
661
|
-
resolversStore[name] =
|
|
662
|
-
const type = await getGraphQLType(
|
|
663
|
-
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);
|
|
664
692
|
fields[name] = {
|
|
665
693
|
type,
|
|
666
694
|
args,
|
|
667
|
-
async resolve(
|
|
695
|
+
async resolve(_root, params, context, info) {
|
|
668
696
|
try {
|
|
669
|
-
const result = await
|
|
697
|
+
const result = await resolver2.resolve(params, context, info);
|
|
670
698
|
return result;
|
|
671
699
|
} catch (error) {
|
|
672
|
-
errorHandler(error, { context, resolver:
|
|
700
|
+
errorHandler(error, { context, resolver: resolver2, options, name });
|
|
673
701
|
throw error;
|
|
674
702
|
}
|
|
675
703
|
}
|
|
@@ -757,10 +785,10 @@ function formatError_default(apolloError) {
|
|
|
757
785
|
}
|
|
758
786
|
|
|
759
787
|
// src/getApolloOptions/index.ts
|
|
760
|
-
var
|
|
788
|
+
var import_lodash2 = require("lodash");
|
|
761
789
|
async function getApolloOptions_default(options) {
|
|
762
790
|
const schema = await buildSchema_default(options);
|
|
763
|
-
const passedOptions = (0,
|
|
791
|
+
const passedOptions = (0, import_lodash2.omit)(options, [
|
|
764
792
|
"resolvers",
|
|
765
793
|
"modelResolvers",
|
|
766
794
|
"subscriptions",
|
|
@@ -863,6 +891,7 @@ async function startGraphQL_default(options) {
|
|
|
863
891
|
path: "/graphql",
|
|
864
892
|
bodyParser: "json",
|
|
865
893
|
async resolve(req, res, viewer) {
|
|
894
|
+
;
|
|
866
895
|
req._viewer = viewer;
|
|
867
896
|
return middleware(req, res, req.next);
|
|
868
897
|
}
|
|
@@ -871,124 +900,126 @@ async function startGraphQL_default(options) {
|
|
|
871
900
|
}
|
|
872
901
|
|
|
873
902
|
// src/resolversSchemas/params.ts
|
|
874
|
-
var
|
|
903
|
+
var import_resolvers2 = require("@orion-js/resolvers");
|
|
875
904
|
var import_helpers2 = require("@orion-js/helpers");
|
|
876
905
|
|
|
877
|
-
// src/resolversSchemas/
|
|
878
|
-
var import_isPlainObject3 = __toESM(require("lodash/isPlainObject"), 1);
|
|
879
|
-
var import_isArray3 = __toESM(require("lodash/isArray"), 1);
|
|
906
|
+
// src/resolversSchemas/ResolverParamsInfo.ts
|
|
880
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");
|
|
881
928
|
var import_omit = __toESM(require("lodash/omit"), 1);
|
|
882
|
-
async function
|
|
883
|
-
|
|
884
|
-
if (
|
|
885
|
-
const
|
|
886
|
-
return await getParams2({ ...field, type: model });
|
|
887
|
-
} else if ((0, import_isArray3.default)(type)) {
|
|
888
|
-
const serialized = await getParams2({ ...field, type: type[0] });
|
|
929
|
+
async function getParams(field) {
|
|
930
|
+
const { type } = field;
|
|
931
|
+
if (Array.isArray(type)) {
|
|
932
|
+
const serialized = await getParams({ ...field, type: type[0] });
|
|
889
933
|
return {
|
|
890
934
|
...serialized,
|
|
891
935
|
type: [serialized.type],
|
|
892
936
|
__graphQLType: `[${serialized.__graphQLType}]`
|
|
893
937
|
};
|
|
894
|
-
}
|
|
895
|
-
|
|
896
|
-
|
|
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
|
+
}
|
|
897
946
|
const fields = {};
|
|
898
|
-
for (const field2 of getStaticFields(
|
|
899
|
-
fields[field2.key] = await
|
|
947
|
+
for (const field2 of getStaticFields(schemaOfType)) {
|
|
948
|
+
fields[field2.key] = await getParams(field2);
|
|
900
949
|
}
|
|
901
950
|
return {
|
|
902
951
|
...(0, import_omit.default)(field, "key"),
|
|
903
952
|
type: fields,
|
|
904
|
-
__graphQLType:
|
|
905
|
-
};
|
|
906
|
-
} else {
|
|
907
|
-
const schemaType = await (0, import_schema3.getFieldType)(type);
|
|
908
|
-
const graphQLType = await getScalar_default(schemaType);
|
|
909
|
-
return {
|
|
910
|
-
...(0, import_omit.default)(field, "key"),
|
|
911
|
-
type: schemaType.name,
|
|
912
|
-
__graphQLType: graphQLType.name
|
|
953
|
+
__graphQLType: `${modelName}Input`
|
|
913
954
|
};
|
|
914
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
|
+
};
|
|
915
963
|
}
|
|
916
964
|
|
|
917
965
|
// src/resolversSchemas/serializeSchema.ts
|
|
966
|
+
Symbol.metadata ?? (Symbol.metadata = Symbol("Symbol.metadata"));
|
|
918
967
|
async function serializeSchema(params) {
|
|
919
968
|
if (!params) return;
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
}
|
|
923
|
-
if (Object.keys(params).length === 0) return;
|
|
969
|
+
const schema = (0, import_schema5.getSchemaFromAnyOrionForm)(params);
|
|
970
|
+
if (Object.keys(schema).length === 0) return;
|
|
924
971
|
const fields = {};
|
|
925
|
-
for (const key of Object.keys(
|
|
926
|
-
const field =
|
|
927
|
-
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);
|
|
928
975
|
}
|
|
929
976
|
return fields;
|
|
930
977
|
}
|
|
931
978
|
|
|
979
|
+
// src/resolversSchemas/params.ts
|
|
980
|
+
var import_schema7 = require("@orion-js/schema");
|
|
981
|
+
|
|
932
982
|
// src/resolversSchemas/getBasicResultQuery.ts
|
|
933
|
-
var
|
|
983
|
+
var import_isArray3 = __toESM(require("lodash/isArray"), 1);
|
|
984
|
+
var import_schema6 = require("@orion-js/schema");
|
|
934
985
|
async function getBasicQuery(field) {
|
|
935
986
|
if (!field.type) return "";
|
|
936
|
-
if ((0,
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
return `${key}{ ${fields.join(" ")} }`;
|
|
944
|
-
} 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)) {
|
|
945
994
|
return field.key;
|
|
946
995
|
}
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
var import_resolvers2 = require("@orion-js/resolvers");
|
|
952
|
-
var import_lodash2 = require("lodash");
|
|
953
|
-
var resolverReturnsIsModel = (returns) => {
|
|
954
|
-
return returns && returns.__isModel;
|
|
955
|
-
};
|
|
956
|
-
var ResolverParamsInfo_default = (0, import_models.createModel)({
|
|
957
|
-
name: "ResolverParams",
|
|
958
|
-
schema: {
|
|
959
|
-
name: {
|
|
960
|
-
type: String
|
|
961
|
-
}
|
|
962
|
-
},
|
|
963
|
-
resolvers: {
|
|
964
|
-
params: (0, import_resolvers2.resolver)({
|
|
965
|
-
returns: "blackbox",
|
|
966
|
-
resolve: async function({ resolver: resolver4 }) {
|
|
967
|
-
return await serializeSchema(resolver4.params);
|
|
968
|
-
}
|
|
969
|
-
}),
|
|
970
|
-
result: (0, import_resolvers2.resolver)({
|
|
971
|
-
returns: String,
|
|
972
|
-
resolve: async function({ resolver: resolver4 }) {
|
|
973
|
-
const returns = (0, import_lodash2.isArray)(resolver4.returns) ? resolver4.returns[0] : resolver4.returns;
|
|
974
|
-
if (resolverReturnsIsModel(returns)) return returns.name;
|
|
975
|
-
return;
|
|
976
|
-
}
|
|
977
|
-
}),
|
|
978
|
-
basicResultQuery: (0, import_resolvers2.resolver)({
|
|
979
|
-
returns: String,
|
|
980
|
-
resolve: async function({ resolver: resolver4 }) {
|
|
981
|
-
const returns = (0, import_lodash2.isArray)(resolver4.returns) ? resolver4.returns[0] : resolver4.returns;
|
|
982
|
-
return await getBasicQuery({
|
|
983
|
-
type: resolverReturnsIsModel(returns) ? returns.getSchema() : ""
|
|
984
|
-
});
|
|
985
|
-
}
|
|
986
|
-
})
|
|
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));
|
|
987
1000
|
}
|
|
988
|
-
}
|
|
1001
|
+
const key = field.key ? `${field.key} ` : "";
|
|
1002
|
+
return `${key}{ ${fields.join(" ")} }`;
|
|
1003
|
+
}
|
|
989
1004
|
|
|
990
1005
|
// src/resolversSchemas/params.ts
|
|
991
|
-
|
|
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)({
|
|
992
1023
|
params: {
|
|
993
1024
|
name: {
|
|
994
1025
|
type: "ID"
|
|
@@ -999,18 +1030,23 @@ var params_default = (0, import_resolvers3.resolver)({
|
|
|
999
1030
|
},
|
|
1000
1031
|
returns: ResolverParamsInfo_default,
|
|
1001
1032
|
mutation: false,
|
|
1002
|
-
|
|
1003
|
-
const
|
|
1004
|
-
if (!
|
|
1033
|
+
async resolve({ mutation, name }) {
|
|
1034
|
+
const resolver2 = resolversStore[name];
|
|
1035
|
+
if (!resolver2) {
|
|
1005
1036
|
throw new import_helpers2.UserError(
|
|
1006
1037
|
"notFound",
|
|
1007
1038
|
`${mutation ? "Mutation" : "Query"} named "${name}" not found`
|
|
1008
1039
|
);
|
|
1009
1040
|
}
|
|
1010
|
-
if (!!
|
|
1041
|
+
if (!!resolver2.mutation !== !!mutation) {
|
|
1011
1042
|
throw new import_helpers2.UserError("incorrectType", `"${name}" is ${mutation ? "not" : ""} a mutation`);
|
|
1012
1043
|
}
|
|
1013
|
-
return {
|
|
1044
|
+
return {
|
|
1045
|
+
name,
|
|
1046
|
+
basicResultQuery: await getInternalBasicResultQuery(resolver2.returns),
|
|
1047
|
+
params: await serializeSchema(resolver2.params),
|
|
1048
|
+
result: getResultTypeName(resolver2.returns)
|
|
1049
|
+
};
|
|
1014
1050
|
}
|
|
1015
1051
|
});
|
|
1016
1052
|
|
|
@@ -1033,160 +1069,211 @@ var OrionSubscription = class {
|
|
|
1033
1069
|
|
|
1034
1070
|
// src/service/global.ts
|
|
1035
1071
|
var import_services = require("@orion-js/services");
|
|
1036
|
-
var
|
|
1037
|
-
var import_helpers3 = require("@orion-js/helpers");
|
|
1072
|
+
var import_resolvers3 = require("@orion-js/resolvers");
|
|
1038
1073
|
|
|
1039
|
-
// src/service/
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
};
|
|
1052
|
-
};
|
|
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);
|
|
1053
1086
|
}
|
|
1054
1087
|
function getTargetMetadata(target, propertyKey, metadataKey) {
|
|
1055
|
-
|
|
1056
|
-
|
|
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
|
+
};
|
|
1057
1112
|
}
|
|
1058
|
-
var UseMiddleware = createRegisterResolverMetadata("middlewares", true);
|
|
1059
|
-
var ResolverParams = createRegisterResolverMetadata("params");
|
|
1060
|
-
var ResolverReturns = createRegisterResolverMetadata("returns");
|
|
1061
1113
|
|
|
1062
1114
|
// src/service/global.ts
|
|
1115
|
+
var serviceMetadata = /* @__PURE__ */ new WeakMap();
|
|
1116
|
+
var resolversMetadata2 = /* @__PURE__ */ new WeakMap();
|
|
1063
1117
|
function Resolvers() {
|
|
1064
|
-
return (target) => {
|
|
1065
|
-
(0, import_services.Service)()(target);
|
|
1066
|
-
|
|
1118
|
+
return (target, context) => {
|
|
1119
|
+
(0, import_services.Service)()(target, context);
|
|
1120
|
+
context.addInitializer(function() {
|
|
1121
|
+
serviceMetadata.set(this, { _serviceType: "resolvers" });
|
|
1122
|
+
});
|
|
1067
1123
|
};
|
|
1068
1124
|
}
|
|
1069
|
-
function Query(options) {
|
|
1070
|
-
return (
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
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);
|
|
1083
1139
|
});
|
|
1140
|
+
return method;
|
|
1084
1141
|
};
|
|
1085
1142
|
}
|
|
1086
1143
|
function Mutation(options) {
|
|
1087
|
-
return (
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
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);
|
|
1101
1158
|
});
|
|
1159
|
+
return method;
|
|
1102
1160
|
};
|
|
1103
1161
|
}
|
|
1104
1162
|
function getServiceResolvers(target) {
|
|
1105
|
-
|
|
1106
|
-
|
|
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");
|
|
1107
1170
|
}
|
|
1108
|
-
|
|
1171
|
+
const resolversMap = resolversMetadata2.get(instance) || {};
|
|
1172
|
+
return resolversMap;
|
|
1109
1173
|
}
|
|
1110
1174
|
|
|
1111
1175
|
// src/service/model.ts
|
|
1112
1176
|
var import_services2 = require("@orion-js/services");
|
|
1113
|
-
var
|
|
1114
|
-
var
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
}
|
|
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
|
+
});
|
|
1128
1191
|
});
|
|
1129
1192
|
};
|
|
1130
1193
|
}
|
|
1131
|
-
function
|
|
1132
|
-
return (
|
|
1133
|
-
(
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
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;
|
|
1141
1209
|
};
|
|
1142
1210
|
}
|
|
1143
1211
|
function getServiceModelResolvers(target) {
|
|
1144
|
-
|
|
1145
|
-
|
|
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
|
+
);
|
|
1146
1223
|
}
|
|
1224
|
+
const modelResolversMap = modelResolversMetadata.get(instance) || {};
|
|
1147
1225
|
return {
|
|
1148
|
-
[
|
|
1226
|
+
[instanceMetadata._modelName]: modelResolversMap
|
|
1149
1227
|
};
|
|
1150
1228
|
}
|
|
1151
1229
|
|
|
1152
1230
|
// src/service/subscription.ts
|
|
1153
1231
|
var import_services3 = require("@orion-js/services");
|
|
1154
|
-
var
|
|
1232
|
+
var serviceMetadata3 = /* @__PURE__ */ new WeakMap();
|
|
1233
|
+
var subscriptionsMetadata = /* @__PURE__ */ new WeakMap();
|
|
1155
1234
|
function Subscriptions() {
|
|
1156
|
-
return (target) => {
|
|
1157
|
-
(0, import_services3.Service)()(target);
|
|
1158
|
-
|
|
1159
|
-
|
|
1235
|
+
return (target, context) => {
|
|
1236
|
+
(0, import_services3.Service)()(target, context);
|
|
1237
|
+
context.addInitializer(function() {
|
|
1238
|
+
serviceMetadata3.set(this, { _serviceType: "subscriptions" });
|
|
1239
|
+
});
|
|
1160
1240
|
};
|
|
1161
1241
|
}
|
|
1162
1242
|
function Subscription(options) {
|
|
1163
|
-
return (
|
|
1164
|
-
const
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
object,
|
|
1172
|
-
propertyName,
|
|
1173
|
-
index,
|
|
1174
|
-
value: (_containerInstance) => {
|
|
1175
|
-
if (!object.serviceType || object.serviceType !== "subscriptions") {
|
|
1176
|
-
throw new Error(
|
|
1177
|
-
"You must pass a class decorated with @Subscriptions if you want to use @Subscription"
|
|
1178
|
-
);
|
|
1179
|
-
}
|
|
1180
|
-
return sub;
|
|
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
|
+
);
|
|
1181
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];
|
|
1182
1259
|
});
|
|
1183
1260
|
};
|
|
1184
1261
|
}
|
|
1185
1262
|
function getServiceSubscriptions(target) {
|
|
1186
|
-
|
|
1187
|
-
|
|
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
|
+
);
|
|
1188
1274
|
}
|
|
1189
|
-
|
|
1275
|
+
const subscriptionsMap = subscriptionsMetadata.get(instance) || {};
|
|
1276
|
+
return subscriptionsMap;
|
|
1190
1277
|
}
|
|
1191
1278
|
// Annotate the CommonJS export names for ESM import in node:
|
|
1192
1279
|
0 && (module.exports = {
|