@tsed/typegraphql 6.85.0 → 6.87.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/.nycrc +1 -1
- package/lib/TypeGraphQLModule.js +1 -1
- package/lib/TypeGraphQLModule.js.map +1 -1
- package/lib/interfaces/TypeGraphQLSettings.d.ts +3 -5
- package/lib/interfaces/TypeGraphQLSettings.js.map +1 -1
- package/lib/services/TypeGraphQLService.d.ts +5 -11
- package/lib/services/TypeGraphQLService.js +2 -15
- package/lib/services/TypeGraphQLService.js.map +1 -1
- package/package.json +10 -15
package/.nycrc
CHANGED
package/lib/TypeGraphQLModule.js
CHANGED
|
@@ -24,7 +24,7 @@ let TypeGraphQLModule = class TypeGraphQLModule {
|
|
|
24
24
|
const host = this.configuration.getBestHost();
|
|
25
25
|
const displayLog = (key, path) => {
|
|
26
26
|
const url = typeof host.port === "number" ? `${host.protocol}://${host.address}:${host.port}` : "";
|
|
27
|
-
this.injector.logger.info(`[${key}] GraphQL server is available on ${url}
|
|
27
|
+
this.injector.logger.info(`[${key}] GraphQL server is available on ${url}/${path.replace(/^\//, "")}`);
|
|
28
28
|
};
|
|
29
29
|
const { settings } = this;
|
|
30
30
|
if (settings) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGraphQLModule.js","sourceRoot":"","sources":["../src/TypeGraphQLModule.ts"],"names":[],"mappings":";;;;AAAA,yCAAuG;AAEvG,sEAAiE;AAEjE;;GAEG;AAEH,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAU5B,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACpF,CAAC;IAED,aAAa;QACX,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QACxB,IAAI,QAAQ,EAAE;YACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;gBACrE,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAE9C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,oCAAoC,GAAG,
|
|
1
|
+
{"version":3,"file":"TypeGraphQLModule.js","sourceRoot":"","sources":["../src/TypeGraphQLModule.ts"],"names":[],"mappings":";;;;AAAA,yCAAuG;AAEvG,sEAAiE;AAEjE;;GAEG;AAEH,IAAa,iBAAiB,GAA9B,MAAa,iBAAiB;IAU5B,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACpF,CAAC;IAED,aAAa;QACX,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QACxB,IAAI,QAAQ,EAAE;YACZ,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;gBACrE,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC9B;IACH,CAAC;IAED,YAAY;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAE9C,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;YAC/C,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,MAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEnG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,oCAAoC,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QACzG,CAAC,CAAC;QAEF,MAAM,EAAC,QAAQ,EAAC,GAAG,IAAI,CAAC;QAExB,IAAI,QAAQ,EAAE;YACZ,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE;gBACpD,MAAM,EAAC,IAAI,EAAC,GAAG,OAAO,CAAC;gBAEvB,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF,CAAA;AA1CC;IADC,eAAM,EAAE;sCACU,uCAAkB;kDAAC;AAGtC;IADC,eAAM,EAAE;sCACW,wBAAe;mDAAC;AAGpC;IADC,sBAAa,EAAE;;wDACuB;AAR5B,iBAAiB;IAD7B,eAAM,EAAE;GACI,iBAAiB,CA4C7B;AA5CY,8CAAiB","sourcesContent":["import {AfterListen, Configuration, Inject, InjectorService, Module, OnRoutesInit} from \"@tsed/common\";\nimport {TypeGraphQLSettings} from \"./interfaces\";\nimport {TypeGraphQLService} from \"./services/TypeGraphQLService\";\n\n/**\n * @ignore\n */\n@Module()\nexport class TypeGraphQLModule implements OnRoutesInit, AfterListen {\n @Inject()\n protected service: TypeGraphQLService;\n\n @Inject()\n protected injector: InjectorService;\n\n @Configuration()\n protected configuration: Configuration;\n\n get settings(): {[key: string]: TypeGraphQLSettings} | undefined {\n return this.configuration.get(\"graphql\") || this.configuration.get(\"typegraphql\");\n }\n\n $onRoutesInit(): Promise<any> | void {\n const {settings} = this;\n if (settings) {\n const promises = Object.entries(settings).map(async ([key, options]) => {\n return this.service.createServer(key, options);\n });\n\n return Promise.all(promises);\n }\n }\n\n $afterListen(): Promise<any> | void {\n const host = this.configuration.getBestHost();\n\n const displayLog = (key: string, path: string) => {\n const url = typeof host.port === \"number\" ? `${host.protocol}://${host.address}:${host.port}` : \"\";\n\n this.injector.logger.info(`[${key}] GraphQL server is available on ${url}/${path.replace(/^\\//, \"\")}`);\n };\n\n const {settings} = this;\n\n if (settings) {\n Object.entries(settings).map(async ([key, options]) => {\n const {path} = options;\n\n displayLog(key, path);\n });\n }\n }\n}\n"]}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { ApolloSettings } from "@tsed/apollo";
|
|
2
|
-
import { Config } from "apollo-server-core";
|
|
1
|
+
import { ApolloConfig, ApolloSettings } from "@tsed/apollo";
|
|
3
2
|
import { BuildSchemaOptions } from "type-graphql";
|
|
4
3
|
export interface TypeGraphQLSettings extends ApolloSettings {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
serverConfig?: Config;
|
|
4
|
+
buildSchemaOptions?: Partial<BuildSchemaOptions>;
|
|
5
|
+
serverConfig?: ApolloConfig;
|
|
8
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGraphQLSettings.js","sourceRoot":"","sources":["../../src/interfaces/TypeGraphQLSettings.ts"],"names":[],"mappings":"","sourcesContent":["import {ApolloSettings} from \"@tsed/apollo\";\nimport {
|
|
1
|
+
{"version":3,"file":"TypeGraphQLSettings.js","sourceRoot":"","sources":["../../src/interfaces/TypeGraphQLSettings.ts"],"names":[],"mappings":"","sourcesContent":["import {ApolloConfig, ApolloSettings} from \"@tsed/apollo\";\nimport {BuildSchemaOptions} from \"type-graphql\";\n\nexport interface TypeGraphQLSettings extends ApolloSettings {\n // TypeGraphQL options\n buildSchemaOptions?: Partial<BuildSchemaOptions>;\n // apollo-server-express options\n // See options descriptions on https://www.apollographql.com/docs/apollo-server/api/apollo-server.html\n serverConfig?: ApolloConfig;\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ApolloService } from "@tsed/apollo";
|
|
2
2
|
import { Type } from "@tsed/core";
|
|
3
3
|
import { InjectorService } from "@tsed/di";
|
|
4
4
|
import { Logger } from "@tsed/logger";
|
|
5
5
|
import { DataSource } from "apollo-datasource";
|
|
6
6
|
import { GraphQLSchema } from "graphql";
|
|
7
7
|
import { BuildSchemaOptions } from "type-graphql";
|
|
8
|
+
import { ApolloServerBase } from "apollo-server-core";
|
|
8
9
|
import { TypeGraphQLSettings } from "../interfaces";
|
|
9
10
|
export declare class TypeGraphQLService {
|
|
10
11
|
protected injector: InjectorService;
|
|
@@ -14,7 +15,7 @@ export declare class TypeGraphQLService {
|
|
|
14
15
|
* Get an instance of ApolloServer from his id
|
|
15
16
|
* @returns ApolloServer
|
|
16
17
|
*/
|
|
17
|
-
get(id?: string):
|
|
18
|
+
get(id?: string): ApolloServerBase | undefined;
|
|
18
19
|
/**
|
|
19
20
|
*
|
|
20
21
|
* @param {string} id
|
|
@@ -30,7 +31,7 @@ export declare class TypeGraphQLService {
|
|
|
30
31
|
* Create a new type-graphql Schema and bind it with Ts.ED injector.
|
|
31
32
|
* @param buildSchemaOptions
|
|
32
33
|
*/
|
|
33
|
-
createSchema(buildSchemaOptions: BuildSchemaOptions): Promise<
|
|
34
|
+
createSchema(buildSchemaOptions: BuildSchemaOptions): Promise<GraphQLSchema>;
|
|
34
35
|
/**
|
|
35
36
|
* Get an instance of GraphQL schema from his id
|
|
36
37
|
* @returns GraphQLSchema
|
|
@@ -41,9 +42,7 @@ export declare class TypeGraphQLService {
|
|
|
41
42
|
* @returns {Provider<any>[]}
|
|
42
43
|
*/
|
|
43
44
|
protected getResolvers(): Type<any>[];
|
|
44
|
-
protected getDataSources():
|
|
45
|
-
[serviceName: string]: DataSource;
|
|
46
|
-
};
|
|
45
|
+
protected getDataSources(): Record<string, DataSource>;
|
|
47
46
|
/**
|
|
48
47
|
* create a new dataSources function to use with apollo server config
|
|
49
48
|
* @param dataSources
|
|
@@ -52,8 +51,3 @@ export declare class TypeGraphQLService {
|
|
|
52
51
|
protected createDataSources(dataSources: Function | undefined, serverConfigSources: Function | undefined): () => any;
|
|
53
52
|
protected configureTypeGraphQLDI(): void;
|
|
54
53
|
}
|
|
55
|
-
/**
|
|
56
|
-
* @deprecated Use TypeGraphQLService
|
|
57
|
-
*/
|
|
58
|
-
export declare class GraphQLService extends TypeGraphQLService {
|
|
59
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.TypeGraphQLService = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const apollo_1 = require("@tsed/apollo");
|
|
6
6
|
const di_1 = require("@tsed/di");
|
|
@@ -79,7 +79,7 @@ let TypeGraphQLService = class TypeGraphQLService {
|
|
|
79
79
|
return this.injector.getProviders(constants_1.PROVIDER_TYPE_RESOLVER_SERVICE).map((provider) => provider.useClass);
|
|
80
80
|
}
|
|
81
81
|
getDataSources() {
|
|
82
|
-
const providers =
|
|
82
|
+
const providers = this.injector.getProviders(constants_1.PROVIDER_TYPE_DATASOURCE_SERVICE);
|
|
83
83
|
return providers.reduce((map, provider) => {
|
|
84
84
|
// set the first letter of the class lowercase to follow proper conventions during access
|
|
85
85
|
// i.e. this.context.dataSources.userService
|
|
@@ -129,17 +129,4 @@ TypeGraphQLService = tslib_1.__decorate([
|
|
|
129
129
|
di_1.Injectable()
|
|
130
130
|
], TypeGraphQLService);
|
|
131
131
|
exports.TypeGraphQLService = TypeGraphQLService;
|
|
132
|
-
/**
|
|
133
|
-
* @deprecated Use TypeGraphQLService
|
|
134
|
-
*/
|
|
135
|
-
class GraphQLService extends TypeGraphQLService {
|
|
136
|
-
}
|
|
137
|
-
exports.GraphQLService = GraphQLService;
|
|
138
|
-
di_1.registerProvider({
|
|
139
|
-
provide: GraphQLService,
|
|
140
|
-
deps: [TypeGraphQLService],
|
|
141
|
-
useFactory(service) {
|
|
142
|
-
return service;
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
132
|
//# sourceMappingURL=TypeGraphQLService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":";;;;AAAA,yCAAyD;AAEzD,
|
|
1
|
+
{"version":3,"file":"TypeGraphQLService.js","sourceRoot":"","sources":["../../src/services/TypeGraphQLService.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApolloServer, ApolloService} from \"@tsed/apollo\";\nimport {Type} from \"@tsed/core\";\nimport {Inject, Injectable, InjectorService, Provider} from \"@tsed/di\";\nimport {Logger} from \"@tsed/logger\";\nimport {DataSource} from \"apollo-datasource\";\nimport {GraphQLSchema} from \"graphql\";\nimport * as TypeGraphql from \"type-graphql\";\nimport {buildSchema, BuildSchemaOptions} from \"type-graphql\";\nimport {ApolloServerBase} from \"apollo-server-core\";\nimport {PROVIDER_TYPE_DATASOURCE_SERVICE, PROVIDER_TYPE_RESOLVER_SERVICE} from \"../constants\";\nimport {TypeGraphQLSettings} from \"../interfaces\";\n\nconst getKey = (id: string) => `typegraphql-${id}`;\n\n@Injectable()\nexport class TypeGraphQLService {\n @Inject()\n protected injector: InjectorService;\n\n @Inject()\n protected apolloService: ApolloService;\n\n @Inject()\n protected logger: Logger;\n\n /**\n * Get an instance of ApolloServer from his id\n * @returns ApolloServer\n */\n get(id: string = \"default\"): ApolloServerBase | undefined {\n return this.apolloService.get(getKey(id));\n }\n\n /**\n *\n * @param {string} id\n * @returns {boolean}\n */\n has(id: string = \"default\"): boolean {\n return this.apolloService.has(getKey(id));\n }\n\n /**\n *\n * @returns {Promise<ApolloServer>}\n */\n async createServer(id: string, settings: TypeGraphQLSettings): Promise<any> {\n if (this.has(id)) {\n return this.get(id)!;\n }\n\n try {\n const {dataSources, resolvers: initialResolvers = [], buildSchemaOptions = {}, serverConfig = {}, ...serverOptions} = settings;\n\n this.configureTypeGraphQLDI();\n\n const resolvers: any = [...this.getResolvers(), ...(initialResolvers as any[])];\n const schema = await this.createSchema({\n container: this.injector,\n ...buildSchemaOptions,\n resolvers\n });\n\n return await this.apolloService.createServer(getKey(id), {\n ...serverOptions,\n ...serverConfig,\n resolvers,\n dataSources: this.createDataSources(dataSources, serverConfig.dataSources),\n schema\n });\n } catch (err) {\n /* istanbul ignore next */\n this.logger.error(err);\n /* istanbul ignore next */\n process.exit(-1);\n }\n }\n\n /**\n * Create a new type-graphql Schema and bind it with Ts.ED injector.\n * @param buildSchemaOptions\n */\n async createSchema(buildSchemaOptions: BuildSchemaOptions) {\n return buildSchema(buildSchemaOptions);\n }\n\n /**\n * Get an instance of GraphQL schema from his id\n * @returns GraphQLSchema\n */\n getSchema(id: string = \"default\"): GraphQLSchema | undefined {\n return this.apolloService.getSchema(getKey(id));\n }\n\n /**\n *\n * @returns {Provider<any>[]}\n */\n protected getResolvers(): Type<any>[] {\n return this.injector.getProviders(PROVIDER_TYPE_RESOLVER_SERVICE).map((provider) => provider.useClass);\n }\n\n protected getDataSources(): Record<string, DataSource> {\n const providers = this.injector.getProviders(PROVIDER_TYPE_DATASOURCE_SERVICE);\n\n return providers.reduce<Record<string, DataSource>>((map, provider) => {\n // set the first letter of the class lowercase to follow proper conventions during access\n // i.e. this.context.dataSources.userService\n const sourceName = `${provider.name[0].toLowerCase()}${provider.name.substr(1)}`;\n map[sourceName] = this.injector.invoke(provider.provide);\n\n return map;\n }, {});\n }\n\n /**\n * create a new dataSources function to use with apollo server config\n * @param dataSources\n * @param serverConfigSources\n */\n protected createDataSources(dataSources: Function | undefined, serverConfigSources: Function | undefined) {\n return () => {\n const sources = this.getDataSources();\n\n return {\n ...sources,\n ...(dataSources ? dataSources() : {}),\n ...(serverConfigSources ? serverConfigSources() : {})\n };\n };\n }\n\n protected configureTypeGraphQLDI() {\n // istanbul ignore next\n // @ts-ignore\n if (TypeGraphql.useContainer) {\n // support old version of type-graphql under @v0.17\n // @ts-ignore\n TypeGraphql.useContainer(this.injectorService);\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tsed/typegraphql",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.87.0",
|
|
4
4
|
"description": "TypeGraphQL package for Ts.ED framework, based on Apollo-server-core and Type-graphql",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -11,28 +11,23 @@
|
|
|
11
11
|
"test": "cross-env NODE_ENV=test nyc mocha"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@tsed/apollo": "6.
|
|
14
|
+
"@tsed/apollo": "6.87.0",
|
|
15
15
|
"tslib": "2.2.0"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@tsed/common": "6.
|
|
19
|
-
"@tsed/core": "6.
|
|
20
|
-
"@types/graphql": "14.5.0",
|
|
21
|
-
"apollo-datasource": "^0.7.2",
|
|
22
|
-
"apollo-datasource-rest": "^0.9.3",
|
|
23
|
-
"apollo-server-express": "^2.16.1",
|
|
24
|
-
"apollo-server-testing": "2.18.2",
|
|
18
|
+
"@tsed/common": "6.87.0",
|
|
19
|
+
"@tsed/core": "6.87.0",
|
|
20
|
+
"@types/graphql": "^14.5.0",
|
|
25
21
|
"class-validator": "~0.13.1",
|
|
26
|
-
"graphql": "15.5.1",
|
|
27
22
|
"graphql-passport": "0.6.3",
|
|
28
23
|
"type-graphql": "^1.1.1"
|
|
29
24
|
},
|
|
30
25
|
"peerDependencies": {
|
|
31
|
-
"apollo-datasource": "
|
|
32
|
-
"apollo-datasource-rest": "
|
|
33
|
-
"
|
|
34
|
-
"graphql": "
|
|
35
|
-
"type-graphql": "
|
|
26
|
+
"apollo-datasource": ">=3.0.0",
|
|
27
|
+
"apollo-datasource-rest": ">=3.0.0",
|
|
28
|
+
"class-validator": ">=0.13.1",
|
|
29
|
+
"graphql": ">=15.0.0",
|
|
30
|
+
"type-graphql": ">=1.0.0"
|
|
36
31
|
},
|
|
37
32
|
"repository": "https://github.com/tsedio/tsed",
|
|
38
33
|
"bugs": {
|