@tsed/typegraphql 7.41.2 → 7.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/jest.config.js CHANGED
@@ -9,10 +9,10 @@ module.exports = {
9
9
  },
10
10
  coverageThreshold: {
11
11
  global: {
12
- statements: 95.3,
13
- branches: 65.62,
14
- functions: 94.11,
15
- lines: 95.3
12
+ statements: 94.65,
13
+ branches: 64.1,
14
+ functions: 94.65,
15
+ lines: 94.65
16
16
  }
17
17
  }
18
18
  };
@@ -6,11 +6,32 @@ const di_1 = require("@tsed/di");
6
6
  const type_graphql_1 = require("type-graphql");
7
7
  const constants_1 = require("../constants/constants");
8
8
  function ResolverController(...args) {
9
+ let id = undefined;
10
+ switch (args.length) {
11
+ case 1:
12
+ if (typeof args[0] === "string") {
13
+ id = args[0];
14
+ }
15
+ else {
16
+ id = args[0].id;
17
+ delete args[0].id;
18
+ }
19
+ break;
20
+ case 2:
21
+ id = args[1].id;
22
+ delete args[1].id;
23
+ break;
24
+ }
9
25
  return (0, core_1.useDecorators)(type_graphql_1.Resolver(...args), (0, di_1.Injectable)({
10
26
  type: constants_1.RESOLVERS_PROVIDERS
27
+ }), (0, core_1.StoreSet)("graphql", {
28
+ id
11
29
  }));
12
30
  }
13
31
  exports.ResolverController = ResolverController;
32
+ /**
33
+ * @deprecated Use ResolverController instead
34
+ */
14
35
  function ResolverService(...args) {
15
36
  return ResolverController(...args);
16
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/decorators/resolver.ts"],"names":[],"mappings":";;;AAAA,qCAAyC;AACzC,iCAAoC;AACpC,+CAAiD;AAEjD,sDAA2D;AAM3D,SAAgB,kBAAkB,CAAC,GAAG,IAAW;IAC/C,OAAO,IAAA,oBAAa,EACjB,uBAAgB,CAAC,GAAG,IAAI,CAAC,EAC1B,IAAA,eAAU,EAAC;QACT,IAAI,EAAE,+BAAmB;KAC1B,CAAC,CACH,CAAC;AACJ,CAAC;AAPD,gDAOC;AASD,SAAgB,eAAe,CAAC,GAAG,IAAW;IAC5C,OAAQ,kBAA0B,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9C,CAAC;AAFD,0CAEC"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/decorators/resolver.ts"],"names":[],"mappings":";;;AAAA,qCAAmD;AACnD,iCAAoC;AACpC,+CAAiD;AAEjD,sDAA2D;AAU3D,SAAgB,kBAAkB,CAAC,GAAG,IAAW;IAC/C,IAAI,EAAE,GAAG,SAAS,CAAC;IACnB,QAAQ,IAAI,CAAC,MAAM,EAAE;QACnB,KAAK,CAAC;YACJ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC/B,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACd;iBAAM;gBACL,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACnB;YACD,MAAM;QACR,KAAK,CAAC;YACJ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM;KACT;IACD,OAAO,IAAA,oBAAa,EACjB,uBAAgB,CAAC,GAAG,IAAI,CAAC,EAC1B,IAAA,eAAU,EAAC;QACT,IAAI,EAAE,+BAAmB;KAC1B,CAAC,EACF,IAAA,eAAQ,EAAC,SAAS,EAAE;QAClB,EAAE;KACH,CAAC,CACH,CAAC;AACJ,CAAC;AAzBD,gDAyBC;AASD;;GAEG;AACH,SAAgB,eAAe,CAAC,GAAG,IAAW;IAC5C,OAAQ,kBAA0B,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9C,CAAC;AAFD,0CAEC"}
package/lib/cjs/index.js CHANGED
@@ -10,5 +10,6 @@ tslib_1.__exportStar(require("./constants/constants"), exports);
10
10
  tslib_1.__exportStar(require("./decorators/resolver"), exports);
11
11
  tslib_1.__exportStar(require("./interfaces/TypeGraphQLSettings"), exports);
12
12
  tslib_1.__exportStar(require("./interfaces/interfaces"), exports);
13
+ tslib_1.__exportStar(require("./middlewares/ContextMiddleware"), exports);
13
14
  tslib_1.__exportStar(require("./services/TypeGraphQLService"), exports);
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,8DAAoC;AACpC,oDAA0B;AAC1B,gEAAsC;AACtC,gEAAsC;AACtC,2EAAiD;AACjD,kEAAwC;AACxC,wEAA8C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,8DAAoC;AACpC,oDAA0B;AAC1B,gEAAsC;AACtC,gEAAsC;AACtC,2EAAiD;AACjD,kEAAwC;AACxC,0EAAgD;AAChD,wEAA8C"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ContextMiddleware = void 0;
4
+ const common_1 = require("@tsed/common");
5
+ const ContextMiddleware = (_, next) => {
6
+ return (0, common_1.runInContext)((0, common_1.getContext)(), next);
7
+ };
8
+ exports.ContextMiddleware = ContextMiddleware;
9
+ //# sourceMappingURL=ContextMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/ContextMiddleware.ts"],"names":[],"mappings":";;;AAAA,yCAAuE;AAGhE,MAAM,iBAAiB,GAAiD,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;IACzF,OAAO,IAAA,qBAAY,EAAC,IAAA,mBAAU,GAAE,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC;AAFW,QAAA,iBAAiB,qBAE5B"}
@@ -3,10 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TypeGraphQLService = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const apollo_1 = require("@tsed/apollo");
6
+ const core_1 = require("@tsed/core");
6
7
  const di_1 = require("@tsed/di");
7
8
  const logger_1 = require("@tsed/logger");
8
9
  const type_graphql_1 = require("type-graphql");
9
10
  const constants_1 = require("../constants/constants");
11
+ const ContextMiddleware_1 = require("../middlewares/ContextMiddleware");
10
12
  const getKey = (id) => `typegraphql-${id}`;
11
13
  let TypeGraphQLService = class TypeGraphQLService {
12
14
  injector;
@@ -27,19 +29,16 @@ let TypeGraphQLService = class TypeGraphQLService {
27
29
  has(id = "default") {
28
30
  return this.apolloService.has(getKey(id));
29
31
  }
30
- /**
31
- *
32
- * @returns {Promise<ApolloServer>}
33
- */
34
32
  async createServer(id, settings) {
35
33
  if (!this.has(id)) {
36
34
  try {
37
35
  const { dataSources, resolvers: initialResolvers = [], buildSchemaOptions = {}, serverConfig = {}, ...serverOptions } = settings;
38
- const resolvers = [...this.getResolvers(), ...initialResolvers, ...(buildSchemaOptions.resolvers || [])];
36
+ const resolvers = this.getResolvers(id, [...initialResolvers, ...(buildSchemaOptions.resolvers || [])]);
39
37
  const schema = await this.createSchema({
40
38
  container: this.injector,
41
39
  ...buildSchemaOptions,
42
- resolvers
40
+ resolvers,
41
+ globalMiddlewares: [ContextMiddleware_1.ContextMiddleware, ...(buildSchemaOptions.globalMiddlewares || [])]
43
42
  });
44
43
  return await this.apolloService.createServer(getKey(id), {
45
44
  ...serverOptions,
@@ -82,12 +81,28 @@ let TypeGraphQLService = class TypeGraphQLService {
82
81
  getSchema(id = "default") {
83
82
  return this.apolloService.getSchema(getKey(id));
84
83
  }
85
- /**
86
- *
87
- * @returns {Provider<any>[]}
88
- */
89
- getResolvers() {
90
- return this.injector.getProviders(constants_1.RESOLVERS_PROVIDERS).map((provider) => provider.useClass);
84
+ getResolvers(id, resolvers) {
85
+ const globalResolvers = this.injector
86
+ .getProviders(constants_1.RESOLVERS_PROVIDERS)
87
+ .filter((provider) => {
88
+ const opts = provider.store.get("graphql");
89
+ return !opts?.id || opts?.id === id;
90
+ })
91
+ .map((provider) => {
92
+ return provider.useClass;
93
+ });
94
+ return resolvers
95
+ .map((resolver) => {
96
+ if (!(this.injector.has(resolver) || !(0, core_1.isClass)(resolver))) {
97
+ this.injector
98
+ .addProvider(resolver, {
99
+ useClass: resolver
100
+ })
101
+ .invoke(resolver);
102
+ }
103
+ return resolver;
104
+ })
105
+ .concat(globalResolvers);
91
106
  }
92
107
  };
93
108
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,33 @@
1
- import { useDecorators } from "@tsed/core";
1
+ import { StoreSet, useDecorators } from "@tsed/core";
2
2
  import { Injectable } from "@tsed/di";
3
3
  import { Resolver } from "type-graphql";
4
4
  import { RESOLVERS_PROVIDERS } from "../constants/constants.js";
5
5
  export function ResolverController(...args) {
6
+ let id = undefined;
7
+ switch (args.length) {
8
+ case 1:
9
+ if (typeof args[0] === "string") {
10
+ id = args[0];
11
+ }
12
+ else {
13
+ id = args[0].id;
14
+ delete args[0].id;
15
+ }
16
+ break;
17
+ case 2:
18
+ id = args[1].id;
19
+ delete args[1].id;
20
+ break;
21
+ }
6
22
  return useDecorators(Resolver(...args), Injectable({
7
23
  type: RESOLVERS_PROVIDERS
24
+ }), StoreSet("graphql", {
25
+ id
8
26
  }));
9
27
  }
28
+ /**
29
+ * @deprecated Use ResolverController instead
30
+ */
10
31
  export function ResolverService(...args) {
11
32
  return ResolverController(...args);
12
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/decorators/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,YAAY,CAAC;AACzC,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAY,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAM3D,MAAM,UAAU,kBAAkB,CAAC,GAAG,IAAW;IAC/C,OAAO,aAAa,CACjB,QAAgB,CAAC,GAAG,IAAI,CAAC,EAC1B,UAAU,CAAC;QACT,IAAI,EAAE,mBAAmB;KAC1B,CAAC,CACH,CAAC;AACJ,CAAC;AASD,MAAM,UAAU,eAAe,CAAC,GAAG,IAAW;IAC5C,OAAQ,kBAA0B,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/decorators/resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AACpC,OAAO,EAAY,QAAQ,EAAC,MAAM,cAAc,CAAC;AAEjD,OAAO,EAAC,mBAAmB,EAAC,MAAM,wBAAwB,CAAC;AAU3D,MAAM,UAAU,kBAAkB,CAAC,GAAG,IAAW;IAC/C,IAAI,EAAE,GAAG,SAAS,CAAC;IACnB,QAAQ,IAAI,CAAC,MAAM,EAAE;QACnB,KAAK,CAAC;YACJ,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;gBAC/B,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;aACd;iBAAM;gBACL,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACnB;YACD,MAAM;QACR,KAAK,CAAC;YACJ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAClB,MAAM;KACT;IACD,OAAO,aAAa,CACjB,QAAgB,CAAC,GAAG,IAAI,CAAC,EAC1B,UAAU,CAAC;QACT,IAAI,EAAE,mBAAmB;KAC1B,CAAC,EACF,QAAQ,CAAC,SAAS,EAAE;QAClB,EAAE;KACH,CAAC,CACH,CAAC;AACJ,CAAC;AASD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAG,IAAW;IAC5C,OAAQ,kBAA0B,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9C,CAAC"}
package/lib/esm/index.js CHANGED
@@ -7,5 +7,6 @@ export * from "./constants/constants.js";
7
7
  export * from "./decorators/resolver.js";
8
8
  export * from "./interfaces/TypeGraphQLSettings.js";
9
9
  export * from "./interfaces/interfaces.js";
10
+ export * from "./middlewares/ContextMiddleware.js";
10
11
  export * from "./services/TypeGraphQLService.js";
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { getContext, runInContext } from "@tsed/common";
2
+ export const ContextMiddleware = (_, next) => {
3
+ return runInContext(getContext(), next);
4
+ };
5
+ //# sourceMappingURL=ContextMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextMiddleware.js","sourceRoot":"","sources":["../../../src/middlewares/ContextMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAmB,YAAY,EAAC,MAAM,cAAc,CAAC;AAGvE,MAAM,CAAC,MAAM,iBAAiB,GAAiD,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;IACzF,OAAO,YAAY,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;AAC1C,CAAC,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { ApolloService } from "@tsed/apollo";
3
+ import { isClass } from "@tsed/core";
3
4
  import { Inject, Injectable, InjectorService } from "@tsed/di";
4
5
  import { Logger } from "@tsed/logger";
5
6
  import { buildSchema } from "type-graphql";
6
7
  import { RESOLVERS_PROVIDERS } from "../constants/constants.js";
8
+ import { ContextMiddleware } from "../middlewares/ContextMiddleware.js";
7
9
  const getKey = (id) => `typegraphql-${id}`;
8
10
  let TypeGraphQLService = class TypeGraphQLService {
9
11
  injector;
@@ -24,19 +26,16 @@ let TypeGraphQLService = class TypeGraphQLService {
24
26
  has(id = "default") {
25
27
  return this.apolloService.has(getKey(id));
26
28
  }
27
- /**
28
- *
29
- * @returns {Promise<ApolloServer>}
30
- */
31
29
  async createServer(id, settings) {
32
30
  if (!this.has(id)) {
33
31
  try {
34
32
  const { dataSources, resolvers: initialResolvers = [], buildSchemaOptions = {}, serverConfig = {}, ...serverOptions } = settings;
35
- const resolvers = [...this.getResolvers(), ...initialResolvers, ...(buildSchemaOptions.resolvers || [])];
33
+ const resolvers = this.getResolvers(id, [...initialResolvers, ...(buildSchemaOptions.resolvers || [])]);
36
34
  const schema = await this.createSchema({
37
35
  container: this.injector,
38
36
  ...buildSchemaOptions,
39
- resolvers
37
+ resolvers,
38
+ globalMiddlewares: [ContextMiddleware, ...(buildSchemaOptions.globalMiddlewares || [])]
40
39
  });
41
40
  return await this.apolloService.createServer(getKey(id), {
42
41
  ...serverOptions,
@@ -79,12 +78,28 @@ let TypeGraphQLService = class TypeGraphQLService {
79
78
  getSchema(id = "default") {
80
79
  return this.apolloService.getSchema(getKey(id));
81
80
  }
82
- /**
83
- *
84
- * @returns {Provider<any>[]}
85
- */
86
- getResolvers() {
87
- return this.injector.getProviders(RESOLVERS_PROVIDERS).map((provider) => provider.useClass);
81
+ getResolvers(id, resolvers) {
82
+ const globalResolvers = this.injector
83
+ .getProviders(RESOLVERS_PROVIDERS)
84
+ .filter((provider) => {
85
+ const opts = provider.store.get("graphql");
86
+ return !opts?.id || opts?.id === id;
87
+ })
88
+ .map((provider) => {
89
+ return provider.useClass;
90
+ });
91
+ return resolvers
92
+ .map((resolver) => {
93
+ if (!(this.injector.has(resolver) || !isClass(resolver))) {
94
+ this.injector
95
+ .addProvider(resolver, {
96
+ useClass: resolver
97
+ })
98
+ .invoke(resolver);
99
+ }
100
+ return resolver;
101
+ })
102
+ .concat(globalResolvers);
88
103
  }
89
104
  };
90
105
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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"}