@tsed/typegraphql 7.22.2 → 7.23.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 +4 -4
- package/lib/cjs/constants/constants.js +2 -3
- package/lib/cjs/constants/constants.js.map +1 -1
- package/lib/cjs/decorators/{resolverService.js → resolver.js} +8 -4
- package/lib/cjs/decorators/resolver.js.map +1 -0
- package/lib/cjs/exports.js +7 -0
- package/lib/cjs/exports.js.map +1 -0
- package/lib/cjs/index.js +2 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/services/TypeGraphQLService.js +35 -66
- package/lib/cjs/services/TypeGraphQLService.js.map +1 -1
- package/lib/esm/constants/constants.js +1 -2
- package/lib/esm/constants/constants.js.map +1 -1
- package/lib/esm/decorators/{resolverService.js → resolver.js} +7 -4
- package/lib/esm/decorators/resolver.js.map +1 -0
- package/lib/esm/exports.js +2 -0
- package/lib/esm/exports.js.map +1 -0
- package/lib/esm/index.js +2 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/services/TypeGraphQLService.js +36 -67
- package/lib/esm/services/TypeGraphQLService.js.map +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/types/constants/constants.d.ts +1 -2
- package/lib/types/decorators/{resolverService.d.ts → resolver.d.ts} +7 -0
- package/lib/types/exports.d.ts +1 -0
- package/lib/types/index.d.ts +2 -2
- package/lib/types/services/TypeGraphQLService.d.ts +2 -11
- package/package.json +6 -6
- package/readme.md +2 -2
- package/lib/cjs/decorators/dataSourceService.js +0 -40
- package/lib/cjs/decorators/dataSourceService.js.map +0 -1
- package/lib/cjs/decorators/resolverService.js.map +0 -1
- package/lib/esm/decorators/dataSourceService.js +0 -36
- package/lib/esm/decorators/dataSourceService.js.map +0 -1
- package/lib/esm/decorators/resolverService.js.map +0 -1
- package/lib/types/decorators/dataSourceService.d.ts +0 -28
package/jest.config.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
5
|
-
exports.PROVIDER_TYPE_RESOLVER_SERVICE = "graphQLResolverService";
|
|
3
|
+
exports.RESOLVERS_PROVIDERS = void 0;
|
|
4
|
+
exports.RESOLVERS_PROVIDERS = "graphql:resolvers";
|
|
6
5
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,mBAAmB,CAAC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ResolverService = void 0;
|
|
3
|
+
exports.ResolverService = exports.ResolverController = void 0;
|
|
4
4
|
const core_1 = require("@tsed/core");
|
|
5
5
|
const di_1 = require("@tsed/di");
|
|
6
6
|
const type_graphql_1 = require("type-graphql");
|
|
7
7
|
const constants_1 = require("../constants/constants");
|
|
8
|
-
function
|
|
8
|
+
function ResolverController(...args) {
|
|
9
9
|
return (0, core_1.useDecorators)(type_graphql_1.Resolver(...args), (0, di_1.Injectable)({
|
|
10
|
-
type: constants_1.
|
|
10
|
+
type: constants_1.RESOLVERS_PROVIDERS
|
|
11
11
|
}));
|
|
12
12
|
}
|
|
13
|
+
exports.ResolverController = ResolverController;
|
|
14
|
+
function ResolverService(...args) {
|
|
15
|
+
return ResolverController(...args);
|
|
16
|
+
}
|
|
13
17
|
exports.ResolverService = ResolverService;
|
|
14
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataSourceService = exports.DataSource = void 0;
|
|
4
|
+
var apollo_1 = require("@tsed/apollo");
|
|
5
|
+
Object.defineProperty(exports, "DataSource", { enumerable: true, get: function () { return apollo_1.DataSource; } });
|
|
6
|
+
Object.defineProperty(exports, "DataSourceService", { enumerable: true, get: function () { return apollo_1.DataSourceService; } });
|
|
7
|
+
//# sourceMappingURL=exports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":";;;AAAA,uCAA2D;AAAnD,oGAAA,UAAU,OAAA;AAAE,2GAAA,iBAAiB,OAAA"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const tslib_1 = require("tslib");
|
|
7
7
|
tslib_1.__exportStar(require("./TypeGraphQLModule"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./exports"), exports);
|
|
8
9
|
tslib_1.__exportStar(require("./constants/constants"), exports);
|
|
9
|
-
tslib_1.__exportStar(require("./decorators/
|
|
10
|
-
tslib_1.__exportStar(require("./decorators/resolverService"), exports);
|
|
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
13
|
tslib_1.__exportStar(require("./services/TypeGraphQLService"), exports);
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,8DAAoC;AACpC,gEAAsC;AACtC,
|
|
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"}
|
|
@@ -5,7 +5,6 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const apollo_1 = require("@tsed/apollo");
|
|
6
6
|
const di_1 = require("@tsed/di");
|
|
7
7
|
const logger_1 = require("@tsed/logger");
|
|
8
|
-
const TypeGraphql = tslib_1.__importStar(require("type-graphql"));
|
|
9
8
|
const type_graphql_1 = require("type-graphql");
|
|
10
9
|
const constants_1 = require("../constants/constants");
|
|
11
10
|
const getKey = (id) => `typegraphql-${id}`;
|
|
@@ -33,37 +32,41 @@ let TypeGraphQLService = class TypeGraphQLService {
|
|
|
33
32
|
* @returns {Promise<ApolloServer>}
|
|
34
33
|
*/
|
|
35
34
|
async createServer(id, settings) {
|
|
36
|
-
if (this.has(id)) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
35
|
+
if (!this.has(id)) {
|
|
36
|
+
try {
|
|
37
|
+
const { dataSources, resolvers: initialResolvers = [], buildSchemaOptions = {}, serverConfig = {}, ...serverOptions } = settings;
|
|
38
|
+
const resolvers = [...this.getResolvers(), ...initialResolvers, ...(buildSchemaOptions.resolvers || [])];
|
|
39
|
+
const schema = await this.createSchema({
|
|
40
|
+
container: this.injector,
|
|
41
|
+
...buildSchemaOptions,
|
|
42
|
+
resolvers
|
|
43
|
+
});
|
|
44
|
+
return await this.apolloService.createServer(getKey(id), {
|
|
45
|
+
...serverOptions,
|
|
46
|
+
...serverConfig,
|
|
47
|
+
resolvers,
|
|
48
|
+
dataSources: () => {
|
|
49
|
+
return {
|
|
50
|
+
...(dataSources ? dataSources() : {}),
|
|
51
|
+
...(serverConfig.dataSources ? serverConfig.dataSources() : {})
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
schema
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
catch (er) {
|
|
58
|
+
/* istanbul ignore next */
|
|
59
|
+
this.logger.error({
|
|
60
|
+
event: "TYPEGRAPHQL_BOOTSTRAP_ERROR",
|
|
61
|
+
error_name: er.name,
|
|
62
|
+
message: er.message,
|
|
63
|
+
stack: er.stack
|
|
64
|
+
});
|
|
65
|
+
/* istanbul ignore next */
|
|
66
|
+
process.exit(-1);
|
|
67
|
+
}
|
|
66
68
|
}
|
|
69
|
+
return this.get(id);
|
|
67
70
|
}
|
|
68
71
|
/**
|
|
69
72
|
* Create a new type-graphql Schema and bind it with Ts.ED injector.
|
|
@@ -84,41 +87,7 @@ let TypeGraphQLService = class TypeGraphQLService {
|
|
|
84
87
|
* @returns {Provider<any>[]}
|
|
85
88
|
*/
|
|
86
89
|
getResolvers() {
|
|
87
|
-
return this.injector.getProviders(constants_1.
|
|
88
|
-
}
|
|
89
|
-
getDataSources() {
|
|
90
|
-
const providers = this.injector.getProviders(constants_1.PROVIDER_TYPE_DATASOURCE_SERVICE);
|
|
91
|
-
return providers.reduce((map, provider) => {
|
|
92
|
-
// set the first letter of the class lowercase to follow proper conventions during access
|
|
93
|
-
// i.e. this.context.dataSources.userService
|
|
94
|
-
const sourceName = `${provider.name[0].toLowerCase()}${provider.name.slice(1)}`;
|
|
95
|
-
map[sourceName] = this.injector.invoke(provider.provide);
|
|
96
|
-
return map;
|
|
97
|
-
}, {});
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* create a new dataSources function to use with apollo server config
|
|
101
|
-
* @param dataSources
|
|
102
|
-
* @param serverConfigSources
|
|
103
|
-
*/
|
|
104
|
-
createDataSources(dataSources, serverConfigSources) {
|
|
105
|
-
return () => {
|
|
106
|
-
const sources = this.getDataSources();
|
|
107
|
-
return {
|
|
108
|
-
...sources,
|
|
109
|
-
...(dataSources ? dataSources() : {}),
|
|
110
|
-
...(serverConfigSources ? serverConfigSources() : {})
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
configureTypeGraphQLDI() {
|
|
115
|
-
// istanbul ignore next
|
|
116
|
-
// @ts-ignore
|
|
117
|
-
if (TypeGraphql.useContainer) {
|
|
118
|
-
// support old version of type-graphql under @v0.17
|
|
119
|
-
// @ts-ignore
|
|
120
|
-
TypeGraphql.useContainer(this.injectorService);
|
|
121
|
-
}
|
|
90
|
+
return this.injector.getProviders(constants_1.RESOLVERS_PROVIDERS).map((provider) => provider.useClass);
|
|
122
91
|
}
|
|
123
92
|
};
|
|
124
93
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":";;;;AAAA,yCAAyD;AAEzD,iCAAuE;AACvE,yCAAoC;AAGpC
|
|
1
|
+
{"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/constants/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,mBAAmB,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { useDecorators } from "@tsed/core";
|
|
2
2
|
import { Injectable } from "@tsed/di";
|
|
3
3
|
import { Resolver } from "type-graphql";
|
|
4
|
-
import {
|
|
5
|
-
export function
|
|
4
|
+
import { RESOLVERS_PROVIDERS } from "../constants/constants.js";
|
|
5
|
+
export function ResolverController(...args) {
|
|
6
6
|
return useDecorators(Resolver(...args), Injectable({
|
|
7
|
-
type:
|
|
7
|
+
type: RESOLVERS_PROVIDERS
|
|
8
8
|
}));
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
export function ResolverService(...args) {
|
|
11
|
+
return ResolverController(...args);
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../../src/exports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* @file Automatically generated by barrelsby.
|
|
3
3
|
*/
|
|
4
4
|
export * from "./TypeGraphQLModule.js";
|
|
5
|
+
export * from "./exports.js";
|
|
5
6
|
export * from "./constants/constants.js";
|
|
6
|
-
export * from "./decorators/
|
|
7
|
-
export * from "./decorators/resolverService.js";
|
|
7
|
+
export * from "./decorators/resolver.js";
|
|
8
8
|
export * from "./interfaces/TypeGraphQLSettings.js";
|
|
9
9
|
export * from "./interfaces/interfaces.js";
|
|
10
10
|
export * from "./services/TypeGraphQLService.js";
|
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,qBAAqB,CAAC;AACpC,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,+BAA+B,CAAC"}
|
|
@@ -2,9 +2,8 @@ import { __decorate, __metadata } from "tslib";
|
|
|
2
2
|
import { ApolloService } from "@tsed/apollo";
|
|
3
3
|
import { Inject, Injectable, InjectorService } from "@tsed/di";
|
|
4
4
|
import { Logger } from "@tsed/logger";
|
|
5
|
-
import * as TypeGraphql from "type-graphql";
|
|
6
5
|
import { buildSchema } from "type-graphql";
|
|
7
|
-
import {
|
|
6
|
+
import { RESOLVERS_PROVIDERS } from "../constants/constants.js";
|
|
8
7
|
const getKey = (id) => `typegraphql-${id}`;
|
|
9
8
|
let TypeGraphQLService = class TypeGraphQLService {
|
|
10
9
|
injector;
|
|
@@ -30,37 +29,41 @@ let TypeGraphQLService = class TypeGraphQLService {
|
|
|
30
29
|
* @returns {Promise<ApolloServer>}
|
|
31
30
|
*/
|
|
32
31
|
async createServer(id, settings) {
|
|
33
|
-
if (this.has(id)) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
32
|
+
if (!this.has(id)) {
|
|
33
|
+
try {
|
|
34
|
+
const { dataSources, resolvers: initialResolvers = [], buildSchemaOptions = {}, serverConfig = {}, ...serverOptions } = settings;
|
|
35
|
+
const resolvers = [...this.getResolvers(), ...initialResolvers, ...(buildSchemaOptions.resolvers || [])];
|
|
36
|
+
const schema = await this.createSchema({
|
|
37
|
+
container: this.injector,
|
|
38
|
+
...buildSchemaOptions,
|
|
39
|
+
resolvers
|
|
40
|
+
});
|
|
41
|
+
return await this.apolloService.createServer(getKey(id), {
|
|
42
|
+
...serverOptions,
|
|
43
|
+
...serverConfig,
|
|
44
|
+
resolvers,
|
|
45
|
+
dataSources: () => {
|
|
46
|
+
return {
|
|
47
|
+
...(dataSources ? dataSources() : {}),
|
|
48
|
+
...(serverConfig.dataSources ? serverConfig.dataSources() : {})
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
schema
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (er) {
|
|
55
|
+
/* istanbul ignore next */
|
|
56
|
+
this.logger.error({
|
|
57
|
+
event: "TYPEGRAPHQL_BOOTSTRAP_ERROR",
|
|
58
|
+
error_name: er.name,
|
|
59
|
+
message: er.message,
|
|
60
|
+
stack: er.stack
|
|
61
|
+
});
|
|
62
|
+
/* istanbul ignore next */
|
|
63
|
+
process.exit(-1);
|
|
64
|
+
}
|
|
63
65
|
}
|
|
66
|
+
return this.get(id);
|
|
64
67
|
}
|
|
65
68
|
/**
|
|
66
69
|
* Create a new type-graphql Schema and bind it with Ts.ED injector.
|
|
@@ -81,41 +84,7 @@ let TypeGraphQLService = class TypeGraphQLService {
|
|
|
81
84
|
* @returns {Provider<any>[]}
|
|
82
85
|
*/
|
|
83
86
|
getResolvers() {
|
|
84
|
-
return this.injector.getProviders(
|
|
85
|
-
}
|
|
86
|
-
getDataSources() {
|
|
87
|
-
const providers = this.injector.getProviders(PROVIDER_TYPE_DATASOURCE_SERVICE);
|
|
88
|
-
return providers.reduce((map, provider) => {
|
|
89
|
-
// set the first letter of the class lowercase to follow proper conventions during access
|
|
90
|
-
// i.e. this.context.dataSources.userService
|
|
91
|
-
const sourceName = `${provider.name[0].toLowerCase()}${provider.name.slice(1)}`;
|
|
92
|
-
map[sourceName] = this.injector.invoke(provider.provide);
|
|
93
|
-
return map;
|
|
94
|
-
}, {});
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* create a new dataSources function to use with apollo server config
|
|
98
|
-
* @param dataSources
|
|
99
|
-
* @param serverConfigSources
|
|
100
|
-
*/
|
|
101
|
-
createDataSources(dataSources, serverConfigSources) {
|
|
102
|
-
return () => {
|
|
103
|
-
const sources = this.getDataSources();
|
|
104
|
-
return {
|
|
105
|
-
...sources,
|
|
106
|
-
...(dataSources ? dataSources() : {}),
|
|
107
|
-
...(serverConfigSources ? serverConfigSources() : {})
|
|
108
|
-
};
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
configureTypeGraphQLDI() {
|
|
112
|
-
// istanbul ignore next
|
|
113
|
-
// @ts-ignore
|
|
114
|
-
if (TypeGraphql.useContainer) {
|
|
115
|
-
// support old version of type-graphql under @v0.17
|
|
116
|
-
// @ts-ignore
|
|
117
|
-
TypeGraphql.useContainer(this.injectorService);
|
|
118
|
-
}
|
|
87
|
+
return this.injector.getProviders(RESOLVERS_PROVIDERS).map((provider) => provider.useClass);
|
|
119
88
|
}
|
|
120
89
|
};
|
|
121
90
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":";AAAA,OAAO,EAAe,aAAa,EAAC,MAAM,cAAc,CAAC;AAEzD,OAAO,EAAC,MAAM,EAAE,UAAU,EAAE,eAAe,EAAW,MAAM,UAAU,CAAC;AACvE,OAAO,EAAC,MAAM,EAAC,MAAM,cAAc,CAAC;AAGpC,OAAO,
|
|
1
|
+
{"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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"}
|