# GraphQLService Class
Module | import { GraphQLService } from "@tsed/graphql" |
---|---|
Source | /packages/graphql/src/services/GraphQLService.ts |
# Overview
class GraphQLService {
httpPort<span class="token punctuation">:</span> <span class="token keyword">string</span> | <span class="token keyword">number</span><span class="token punctuation">;</span>
/**
*
* @type <span class="token punctuation">{</span>Map<<span class="token keyword">any</span><span class="token punctuation">,</span> <span class="token keyword">any</span>><span class="token punctuation">}</span>
* @<span class="token keyword">private</span>
*/
<span class="token keyword">constructor</span><span class="token punctuation">(</span>app<span class="token punctuation">:</span> <a href="/api/common/platform/services/PlatformApplication.html"><span class="token">PlatformApplication</span></a><span class="token punctuation">,</span> httpServer<span class="token punctuation">:</span> <a href="/api/common/platform-builder/decorators/HttpServer.html"><span class="token">HttpServer</span></a><span class="token punctuation">,</span> injectorService<span class="token punctuation">:</span> <a href="/api/di/services/InjectorService.html"><span class="token">InjectorService</span></a><span class="token punctuation">)</span><span class="token punctuation">;</span>
/**
*
* @returns <span class="token punctuation">{</span>Promise<ApolloServer><span class="token punctuation">}</span>
*/
<span class="token function">createServer</span><span class="token punctuation">(</span>id<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">,</span> settings<span class="token punctuation">:</span> <a href="/api/graphql/interfaces/GraphQLSettings.html"><span class="token">GraphQLSettings</span></a><span class="token punctuation">)</span><span class="token punctuation">:</span> Promise<<span class="token keyword">any</span>><span class="token punctuation">;</span>
/**
* Create a new type-graphql <a href="/api/mongoose/decorators/Schema.html"><span class="token">Schema</span></a> and bind it with Ts.ED injector.
* @param buildSchemaOptions
*/
<span class="token function">createSchema</span><span class="token punctuation">(</span>buildSchemaOptions<span class="token punctuation">:</span> BuildSchemaOptions<span class="token punctuation">)</span><span class="token punctuation">:</span> Promise<GraphQLSchema><span class="token punctuation">;</span>
/**
* <a href="/api/common/mvc/decorators/method/Get.html"><span class="token">Get</span></a> an instance of ApolloServer <span class="token keyword">from</span> his id
* @returns ApolloServer
*/
<span class="token function">get</span><span class="token punctuation">(</span>id?<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</span><span class="token punctuation">:</span> ApolloServer | undefined<span class="token punctuation">;</span>
/**
* <a href="/api/common/mvc/decorators/method/Get.html"><span class="token">Get</span></a> an instance of GraphQL schema <span class="token keyword">from</span> his id
* @returns GraphQLSchema
*/
<span class="token function">getSchema</span><span class="token punctuation">(</span>id?<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</span><span class="token punctuation">:</span> GraphQLSchema | undefined<span class="token punctuation">;</span>
/**
*
* @param <span class="token punctuation">{</span><span class="token keyword">string</span><span class="token punctuation">}</span> id
* @returns <span class="token punctuation">{</span><span class="token keyword">boolean</span><span class="token punctuation">}</span>
*/
<span class="token function">has</span><span class="token punctuation">(</span>id?<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token keyword">boolean</span><span class="token punctuation">;</span>
/**
*
* @returns <span class="token punctuation">{</span><a href="/api/di/class/Provider.html"><span class="token">Provider</span></a><<span class="token keyword">any</span>><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">}</span>
*/
<span class="token keyword">protected</span> <span class="token function">getResolvers</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <a href="/api/core/interfaces/Type.html"><span class="token">Type</span></a><<span class="token keyword">any</span>><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
<span class="token keyword">protected</span> <span class="token function">getDataSources</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token punctuation">{</span>
<span class="token punctuation">[</span>serviceName<span class="token punctuation">:</span> <span class="token keyword">string</span><span class="token punctuation">]</span><span class="token punctuation">:</span> DataSource<span class="token punctuation">;</span>
<span class="token punctuation">}</span><span class="token punctuation">;</span>
/**
* create a new dataSources function to use with apollo server config
* @param dataSources
* @param serverConfigSources
*/
<span class="token keyword">protected</span> <span class="token function">createDataSources</span><span class="token punctuation">(</span>dataSources<span class="token punctuation">:</span> Function | undefined<span class="token punctuation">,</span> serverConfigSources<span class="token punctuation">:</span> Function | undefined<span class="token punctuation">)</span><span class="token punctuation">:</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> => <span class="token keyword">any</span><span class="token punctuation">;</span>
}
# Members
httpPort: string | number;
createServer(id: string, settings: GraphQLSettings): Promise<any>;
createSchema(buildSchemaOptions: BuildSchemaOptions): Promise<GraphQLSchema>;
Create a new type-graphql Schema and bind it with Ts.ED injector.
get(id?: string): ApolloServer | undefined;
Get an instance of ApolloServer from his id
getSchema(id?: string): GraphQLSchema | undefined;
Get an instance of GraphQL schema from his id
has(id?: string): boolean;
protected getResolvers(): Type<any>[];
protected getDataSources(): {
[serviceName: string]: DataSource;
};
protected createDataSources(dataSources: Function | undefined, serverConfigSources: Function | undefined): () => any;
create a new dataSources function to use with apollo server config
- Session & cookies
- Passport.js
- TypeORM
- Mongoose
- GraphQL
- Socket.io
- Swagger
- AJV
- Multer
- Serve static files
- Templating
- Throw HTTP Exceptions
- Customize 404
- AWS
- Jest
- Seq
- Controllers
- Providers
- Model
- Converters
- Middlewares
- Pipes
- Interceptors
- Authentication
- Hooks
- Injection scopes
- Custom providers
- Custom endpoint decorator
- Testing