quantum-flow 1.14.0 → 1.15.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/README.md CHANGED
@@ -25,6 +25,7 @@ You can use controllers and server functionality by importing controllers and cr
25
25
  - `quantum-flow/sse` - Server side events decorators.
26
26
  - `quantum-flow/plugins/aws` - Exports plugins types for lambda.
27
27
  - `quantum-flow/plugins/http` - Exports plugins types for http server.
28
+ - `quantum-flow/graphql` - Graphql components.
28
29
 
29
30
  ---
30
31
 
@@ -441,12 +442,67 @@ lambdaAdapter.usePlugin(dbConnectionPlugin);
441
442
  export const handler = lambdaAdapter.handler;
442
443
  ```
443
444
 
444
- ## Summary
445
+ # Using GraphQL Decorators
445
446
 
446
- - Use `@Controller` with `prefix` and `controllers` to organize your API.
447
- - Use `@InjectSSE` to create SSE connections in controller methods.
448
- - Use the SSE service's `send` method to push events to clients.
449
- - Use `@OnSSEConnection`, `@OnSSEError`, and `@OnSSEClose` decorators to handle SSE lifecycle events.
450
- - Enable SSE in your server configuration and register SSE controllers.
447
+ This project provides a set of decorators to define GraphQL schema and resolvers in a declarative way using TypeScript decorators.
451
448
 
452
- This setup allows you to build real-time, event-driven APIs using Server-Sent Events in a clean and modular way.
449
+ ### Available Decorators
450
+
451
+ - `@ObjectType(name?: string)`: Class decorator to define a GraphQL ObjectType.
452
+ - `@InputType(name?: string)`: Class decorator to define a GraphQL InputType.
453
+ - `@Field(type?)`: Property decorator to define a GraphQL field with optional type or nullable option.
454
+ - `@Arg(name?, type?, options?)`: Parameter decorator to define GraphQL arguments for resolver methods.
455
+ - `@Query(returnType?)`: Method decorator to define a GraphQL query resolver.
456
+ - `@Mutation(returnType?)`: Method decorator to define a GraphQL mutation resolver.
457
+ - `@Subscription(returnType?)`: Method decorator to define a GraphQL subscription resolver.
458
+ - `@Resolver()`: Class decorator to mark a class as a GraphQL resolver.
459
+
460
+ ### Example Usage
461
+
462
+ ```typescript
463
+ import { Controller } from 'quantum-flow/core';
464
+ import { Arg, Field, InputType, Mutation, ObjectType, Query } from 'quantum-flow/graphql';
465
+
466
+ @ObjectType('User')
467
+ class User {
468
+ @Field() id: string;
469
+ @Field() name: string;
470
+ @Field() email: string;
471
+ @Field({ nullable: true }) bio?: string;
472
+ @Field(() => [String]) roles: string[];
473
+ }
474
+
475
+ @InputType('CreateUserInput')
476
+ class CreateUserInput {
477
+ @Field() name: string;
478
+ @Field() email: string;
479
+ @Field({ nullable: true }) bio?: string;
480
+ @Field(() => [String]) roles?: string[];
481
+ }
482
+
483
+ @Controller('/graphql')
484
+ export class GraphQlController {
485
+ private users: User[] = [
486
+ /* initial users */
487
+ ];
488
+
489
+ @Query(User)
490
+ async getUser(@Arg('id', String, { required: true }) id: string) {
491
+ // implementation
492
+ }
493
+
494
+ @Query(() => [User])
495
+ async getUsers() {
496
+ // implementation
497
+ }
498
+
499
+ @Mutation(User)
500
+ async createUser(@Arg('input', CreateUserInput, { required: true }) input: CreateUserInput) {
501
+ // implementation
502
+ }
503
+
504
+ // Additional queries and mutations...
505
+ }
506
+ ```
507
+
508
+ This example demonstrates how to define GraphQL types and resolvers using decorators, enabling a clean and declarative schema definition.
@@ -1,5 +1,6 @@
1
1
  import { ControllerType, HttpPlugin, IHttpServer, MiddlewareCB, ServerConfig } from '../../types/index.js';
2
2
  import http from 'http';
3
+ import { GraphQLModule } from '../../graphql/module';
3
4
  import { Plugin } from '../plugin';
4
5
  export declare class HttpServer extends Plugin implements IHttpServer {
5
6
  app: http.Server;
@@ -11,6 +12,8 @@ export declare class HttpServer extends Plugin implements IHttpServer {
11
12
  private allControllers;
12
13
  controllers: ControllerType[];
13
14
  middlewares: MiddlewareCB[];
15
+ graphql?: GraphQLModule;
16
+ private graphqlHandler?;
14
17
  constructor(configOrClass: new (...args: any[]) => any);
15
18
  private logConfig;
16
19
  listen(port?: number, host?: string): Promise<http.Server>;
@@ -26,5 +29,6 @@ export declare class HttpServer extends Plugin implements IHttpServer {
26
29
  private runController;
27
30
  private sendResponse;
28
31
  private handleError;
29
- private setupStaticFiles;
32
+ private setupGraphQL;
33
+ use(middleware: MiddlewareCB): this;
30
34
  }
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.HttpServer = void 0;
7
7
  const _constants_1 = require("../../constants.js");
8
8
  const _utils_1 = require("../../utils/index.js");
9
+ const graphql_yoga_1 = require("graphql-yoga");
9
10
  const http_1 = __importDefault(require("http"));
11
+ const module_1 = require("../../graphql/module");
10
12
  const server_1 = require("../../sse/server");
11
13
  const service_1 = require("../../sse/service");
12
14
  const server_2 = require("../../ws/server");
@@ -22,29 +24,34 @@ class HttpServer extends plugin_1.Plugin {
22
24
  allControllers;
23
25
  controllers = [];
24
26
  middlewares = [];
27
+ graphql;
28
+ graphqlHandler;
25
29
  constructor(configOrClass) {
26
30
  super();
27
31
  this.config = (0, _utils_1.resolveConfig)(configOrClass);
28
32
  this.controllers = this.controllers.concat(this.config.controllers ?? []);
29
33
  this.middlewares = this.middlewares.concat(this.config.middlewares ?? []);
34
+ this.allControllers = this.getAllControllers(this.controllers);
30
35
  const app = http_1.default.createServer(this.requestHandler.bind(this));
31
36
  for (const st of this.config.statics ?? []) {
32
37
  const staticMw = (0, _utils_1.staticMiddleware)(st.path, st.options);
33
38
  this.middlewares?.unshift(staticMw);
34
39
  }
35
- this.allControllers = this.getAllControllers(this.controllers);
36
- this.setupStaticFiles();
37
40
  if (this.config.websocket?.enabled) {
38
41
  this.websocket = new server_2.WebSocketServer(app, { path: this.config.websocket.path });
39
42
  this.websocket.registerControllers(this.allControllers);
40
43
  service_2.WebSocketService.getInstance().initialize(this.websocket);
41
44
  }
45
+ if (this.config.graphql?.enabled) {
46
+ this.setupGraphQL();
47
+ }
42
48
  if (this.config.sse?.enabled) {
43
49
  this.sse = new server_1.SSEServer();
44
50
  this.sse.registerControllers(this.allControllers);
45
51
  service_1.SSEService.getInstance().initialize(this.sse);
46
52
  }
47
53
  this.app = app;
54
+ console.log(this.controllers);
48
55
  this.logConfig();
49
56
  }
50
57
  logConfig() {
@@ -59,7 +66,8 @@ class HttpServer extends plugin_1.Plugin {
59
66
  ║ 🔧 Error handler: ${!this.config.errorHandler}
60
67
  ║ 🎯 Global Interceptors: ${!!this.config.interceptor?.length}
61
68
  ║ 📦 Controllers: ${_constants_1.STATISTIC.controllers}
62
- ║ 📦 Routes: ${_constants_1.STATISTIC.routes}
69
+ ║ 📦 Routes: ${this.getAllControllers.length}
70
+ ║ 📦 Graphql handler: ${!!this.config?.graphql?.enabled}
63
71
  ╚════════════════════════════════════════╝
64
72
  `);
65
73
  }
@@ -250,14 +258,31 @@ class HttpServer extends plugin_1.Plugin {
250
258
  catch (cathed) { }
251
259
  return this.sendResponse(response, { data: serialized }, startTime, request);
252
260
  }
253
- setupStaticFiles() {
254
- const staticConfigs = [];
255
- for (const ControllerClass of this.allControllers) {
256
- const classStatic = Reflect.getMetadata(_constants_1.STATIC_METADATA_KEY, ControllerClass);
257
- if (classStatic) {
258
- staticConfigs.push(classStatic);
261
+ setupGraphQL() {
262
+ if (!this.config.graphql?.enabled)
263
+ return;
264
+ const graphqlModule = new module_1.GraphQLModule(this.allControllers);
265
+ const schema = graphqlModule.getSchema();
266
+ const yoga = (0, graphql_yoga_1.createYoga)({
267
+ schema,
268
+ context: (req) => ({ req }),
269
+ graphiql: !!this.config.graphql?.playground,
270
+ });
271
+ this.graphqlHandler = yoga;
272
+ this.use(async (req, res, next) => {
273
+ const path = this.config.graphql?.path ?? '/graphql';
274
+ console.log('========', req.requestUrl.pathname, this.config.graphql?.path);
275
+ if (req.requestUrl.pathname?.startsWith(path)) {
276
+ const reps = await this.graphqlHandler(req, res);
277
+ console.log('========', reps);
278
+ return;
259
279
  }
260
- }
280
+ return next();
281
+ });
282
+ }
283
+ use(middleware) {
284
+ this.middlewares.unshift(middleware);
285
+ return this;
261
286
  }
262
287
  }
263
288
  exports.HttpServer = HttpServer;
@@ -1 +1 @@
1
- {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/app/http/Application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Application.js","sourceRoot":"","sources":["../../../src/app/http/Application.ts"],"names":[],"mappings":"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"}
@@ -25,3 +25,11 @@ export declare const SSE_METADATA_KEY = "sse:handlers";
25
25
  export declare const SSE_TOPIC_KEY = "sse:topics";
26
26
  export declare const SSE_SERVICE_KEY = "sse:service";
27
27
  export declare const STATIC_METADATA_KEY = "static:config";
28
+ export declare const GRAPHQL_QUERY = "graphql:query";
29
+ export declare const GRAPHQL_MUTATION = "graphql:mutation";
30
+ export declare const GRAPHQL_SUBSCRIPTION = "graphql:subscription";
31
+ export declare const GRAPHQL_TYPE = "graphql:type";
32
+ export declare const GRAPHQL_INPUT_TYPE = "graphql:inputType";
33
+ export declare const GRAPHQL_FIELD = "graphql:field";
34
+ export declare const GRAPHQL_ARG = "graphql:arg";
35
+ export declare const GRAPHQL_RESOLVER = "graphql:resolver";
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.STATIC_METADATA_KEY = exports.SSE_SERVICE_KEY = exports.SSE_TOPIC_KEY = exports.SSE_METADATA_KEY = exports.CORS_METADATA = exports.INCREMENT_STATISTIC = exports.STATISTIC = exports.TO_VALIDATE = exports.OK_STATUSES = exports.STOPPED = exports.SANITIZE = exports.CATCH = exports.INTECEPT = exports.WS_SERVICE_KEY = exports.WS_TOPIC_KEY = exports.WS_HANDLER = exports.USE_MIDDLEWARE = exports.SERVER_CONFIG_KEY = exports.OK_METADATA_KEY = exports.ENDPOINT = exports.INTERCEPTOR = exports.CONTROLLERS = exports.MIDDLEWARES = exports.ROUTE_MIDDLEWARES = exports.ROUTE_PREFIX = exports.APP_METADATA_KEY = exports.PARAM_METADATA_KEY = void 0;
3
+ exports.GRAPHQL_RESOLVER = exports.GRAPHQL_ARG = exports.GRAPHQL_FIELD = exports.GRAPHQL_INPUT_TYPE = exports.GRAPHQL_TYPE = exports.GRAPHQL_SUBSCRIPTION = exports.GRAPHQL_MUTATION = exports.GRAPHQL_QUERY = exports.STATIC_METADATA_KEY = exports.SSE_SERVICE_KEY = exports.SSE_TOPIC_KEY = exports.SSE_METADATA_KEY = exports.CORS_METADATA = exports.INCREMENT_STATISTIC = exports.STATISTIC = exports.TO_VALIDATE = exports.OK_STATUSES = exports.STOPPED = exports.SANITIZE = exports.CATCH = exports.INTECEPT = exports.WS_SERVICE_KEY = exports.WS_TOPIC_KEY = exports.WS_HANDLER = exports.USE_MIDDLEWARE = exports.SERVER_CONFIG_KEY = exports.OK_METADATA_KEY = exports.ENDPOINT = exports.INTERCEPTOR = exports.CONTROLLERS = exports.MIDDLEWARES = exports.ROUTE_MIDDLEWARES = exports.ROUTE_PREFIX = exports.APP_METADATA_KEY = exports.PARAM_METADATA_KEY = void 0;
4
4
  exports.PARAM_METADATA_KEY = 'design:parameters';
5
5
  exports.APP_METADATA_KEY = 'app:configuration';
6
6
  exports.ROUTE_PREFIX = 'route:prefix';
@@ -39,4 +39,12 @@ exports.SSE_METADATA_KEY = 'sse:handlers';
39
39
  exports.SSE_TOPIC_KEY = 'sse:topics';
40
40
  exports.SSE_SERVICE_KEY = 'sse:service';
41
41
  exports.STATIC_METADATA_KEY = 'static:config';
42
+ exports.GRAPHQL_QUERY = 'graphql:query';
43
+ exports.GRAPHQL_MUTATION = 'graphql:mutation';
44
+ exports.GRAPHQL_SUBSCRIPTION = 'graphql:subscription';
45
+ exports.GRAPHQL_TYPE = 'graphql:type';
46
+ exports.GRAPHQL_INPUT_TYPE = 'graphql:inputType';
47
+ exports.GRAPHQL_FIELD = 'graphql:field';
48
+ exports.GRAPHQL_ARG = 'graphql:arg';
49
+ exports.GRAPHQL_RESOLVER = 'graphql:resolver';
42
50
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,WAAW,GAAG,wBAAwB,CAAC;AACvC,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAChC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,QAAQ,GAAG,iBAAiB,CAAC;AAC7B,QAAA,eAAe,GAAG,WAAW,CAAC;AAE9B,QAAA,iBAAiB,GAAG,eAAe,CAAC;AACpC,QAAA,cAAc,GAAG,0BAA0B,CAAC;AAE5C,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,YAAY,GAAG,iBAAiB,CAAC;AACjC,QAAA,cAAc,GAAG,mBAAmB,CAAC;AACrC,QAAA,QAAQ,GAAG,kBAAkB,CAAC;AAC9B,QAAA,KAAK,GAAG,cAAc,CAAC;AACvB,QAAA,QAAQ,GAAG,iBAAiB,CAAC;AAE7B,QAAA,OAAO,GAAG;;;;;WAKZ,CAAC;AAEC,QAAA,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjE,QAAA,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAElE,QAAA,SAAS,GAA6C;IACjE,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;CACV,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAA8B,EAAE,EAAE;IACpE,iBAAS,CAAC,IAAI,CAAC,GAAG,iBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEW,QAAA,aAAa,GAAG,aAAa,CAAC;AAC9B,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,YAAY,CAAC;AAC7B,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,mBAAmB,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,gBAAgB,GAAG,mBAAmB,CAAC;AACvC,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,iBAAiB,GAAG,mBAAmB,CAAC;AACxC,QAAA,WAAW,GAAG,wBAAwB,CAAC;AACvC,QAAA,WAAW,GAAG,iBAAiB,CAAC;AAChC,QAAA,WAAW,GAAG,kBAAkB,CAAC;AACjC,QAAA,QAAQ,GAAG,iBAAiB,CAAC;AAC7B,QAAA,eAAe,GAAG,WAAW,CAAC;AAE9B,QAAA,iBAAiB,GAAG,eAAe,CAAC;AACpC,QAAA,cAAc,GAAG,0BAA0B,CAAC;AAE5C,QAAA,UAAU,GAAG,mBAAmB,CAAC;AACjC,QAAA,YAAY,GAAG,iBAAiB,CAAC;AACjC,QAAA,cAAc,GAAG,mBAAmB,CAAC;AACrC,QAAA,QAAQ,GAAG,kBAAkB,CAAC;AAC9B,QAAA,KAAK,GAAG,cAAc,CAAC;AACvB,QAAA,QAAQ,GAAG,iBAAiB,CAAC;AAE7B,QAAA,OAAO,GAAG;;;;;WAKZ,CAAC;AAEC,QAAA,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AACjE,QAAA,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAElE,QAAA,SAAS,GAA6C;IACjE,WAAW,EAAE,CAAC;IACd,MAAM,EAAE,CAAC;CACV,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAC,IAA8B,EAAE,EAAE;IACpE,iBAAS,CAAC,IAAI,CAAC,GAAG,iBAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,mBAAmB,uBAE9B;AAEW,QAAA,aAAa,GAAG,aAAa,CAAC;AAC9B,QAAA,gBAAgB,GAAG,cAAc,CAAC;AAClC,QAAA,aAAa,GAAG,YAAY,CAAC;AAC7B,QAAA,eAAe,GAAG,aAAa,CAAC;AAChC,QAAA,mBAAmB,GAAG,eAAe,CAAC;AACtC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,gBAAgB,GAAG,kBAAkB,CAAC;AACtC,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAC9C,QAAA,YAAY,GAAG,cAAc,CAAC;AAC9B,QAAA,kBAAkB,GAAG,mBAAmB,CAAC;AACzC,QAAA,aAAa,GAAG,eAAe,CAAC;AAChC,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,gBAAgB,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,49 @@
1
+ import 'reflect-metadata';
2
+ import { ArgOptions, GraphQLType, QueryMetadata } from '../types/index.js';
3
+ export interface MutationMetadata extends QueryMetadata {
4
+ }
5
+ export interface SubscriptionMetadata extends QueryMetadata {
6
+ }
7
+ /**
8
+ * Class decorator to mark a class as a GraphQL ObjectType.
9
+ * @param {string} [name] - Optional name of the GraphQL ObjectType. Defaults to the class name.
10
+ */
11
+ export declare function ObjectType(name?: string): ClassDecorator;
12
+ /**
13
+ * Class decorator to mark a class as a GraphQL InputType.
14
+ * @param {string} [name] - Optional name of the GraphQL InputType. Defaults to the class name.
15
+ */
16
+ export declare function InputType(name?: string): ClassDecorator;
17
+ /**
18
+ * Property decorator to mark a class property as a GraphQL Field.
19
+ * @param {GraphQLType | (() => GraphQLType) | { nullable: true }} [type] - The GraphQL type or a function returning the type. Can specify nullable.
20
+ */
21
+ export declare function Field(type?: GraphQLType | (() => GraphQLType) | {
22
+ nullable: true;
23
+ }): PropertyDecorator;
24
+ /**
25
+ * Parameter decorator to define a GraphQL argument.
26
+ * @param {string} [name] - Name of the argument.
27
+ * @param {GraphQLType} [type] - GraphQL type of the argument.
28
+ * @param {ArgOptions} [options] - Additional options like required, description, defaultValue.
29
+ */
30
+ export declare function Arg(name?: string, type?: GraphQLType, options?: ArgOptions): ParameterDecorator;
31
+ /**
32
+ * Method decorator to mark a method as a GraphQL Query.
33
+ * @param {GraphQLType | (() => GraphQLType)} [returnType] - Return type of the query.
34
+ */
35
+ export declare function Query(returnType?: GraphQLType | (() => GraphQLType)): MethodDecorator;
36
+ /**
37
+ * Method decorator to mark a method as a GraphQL Mutation.
38
+ * @param {GraphQLType | (() => GraphQLType)} [returnType] - Return type of the mutation.
39
+ */
40
+ export declare function Mutation(returnType?: GraphQLType | (() => GraphQLType)): MethodDecorator;
41
+ /**
42
+ * Method decorator to mark a method as a GraphQL Subscription.
43
+ * @param {GraphQLType | (() => GraphQLType)} [returnType] - Return type of the subscription.
44
+ */
45
+ export declare function Subscription(returnType?: GraphQLType | (() => GraphQLType)): MethodDecorator;
46
+ /**
47
+ * Class decorator to mark a class as a GraphQL Resolver.
48
+ */
49
+ export declare function Resolver(): ClassDecorator;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectType = ObjectType;
4
+ exports.InputType = InputType;
5
+ exports.Field = Field;
6
+ exports.Arg = Arg;
7
+ exports.Query = Query;
8
+ exports.Mutation = Mutation;
9
+ exports.Subscription = Subscription;
10
+ exports.Resolver = Resolver;
11
+ const _constants_1 = require("../constants.js");
12
+ require("reflect-metadata");
13
+ /**
14
+ * Class decorator to mark a class as a GraphQL ObjectType.
15
+ * @param {string} [name] - Optional name of the GraphQL ObjectType. Defaults to the class name.
16
+ */
17
+ function ObjectType(name) {
18
+ return function (target) {
19
+ Reflect.defineMetadata(_constants_1.GRAPHQL_TYPE, { name: name || target.name }, target);
20
+ };
21
+ }
22
+ /**
23
+ * Class decorator to mark a class as a GraphQL InputType.
24
+ * @param {string} [name] - Optional name of the GraphQL InputType. Defaults to the class name.
25
+ */
26
+ function InputType(name) {
27
+ return function (target) {
28
+ Reflect.defineMetadata(_constants_1.GRAPHQL_INPUT_TYPE, { name: name || target.name }, target);
29
+ };
30
+ }
31
+ /**
32
+ * Property decorator to mark a class property as a GraphQL Field.
33
+ * @param {GraphQLType | (() => GraphQLType) | { nullable: true }} [type] - The GraphQL type or a function returning the type. Can specify nullable.
34
+ */
35
+ function Field(type) {
36
+ return function (target, propertyKey) {
37
+ const fields = Reflect.getMetadata(_constants_1.GRAPHQL_FIELD, target) || [];
38
+ fields.push({ propertyKey: propertyKey, type });
39
+ Reflect.defineMetadata(_constants_1.GRAPHQL_FIELD, fields, target);
40
+ };
41
+ }
42
+ /**
43
+ * Parameter decorator to define a GraphQL argument.
44
+ * @param {string} [name] - Name of the argument.
45
+ * @param {GraphQLType} [type] - GraphQL type of the argument.
46
+ * @param {ArgOptions} [options] - Additional options like required, description, defaultValue.
47
+ */
48
+ function Arg(name, type, options) {
49
+ return function (target, propertyKey, parameterIndex) {
50
+ if (propertyKey === undefined) {
51
+ throw new Error('@Arg decorator must be used on a method parameter');
52
+ }
53
+ const args = Reflect.getMetadata(_constants_1.GRAPHQL_ARG, target, propertyKey) || [];
54
+ args.push({
55
+ index: parameterIndex,
56
+ name: name || `arg${parameterIndex}`,
57
+ type: type || String,
58
+ required: options?.required || false,
59
+ description: options?.description,
60
+ defaultValue: options?.defaultValue,
61
+ });
62
+ Reflect.defineMetadata(_constants_1.GRAPHQL_ARG, args, target, propertyKey);
63
+ };
64
+ }
65
+ /**
66
+ * Method decorator to mark a method as a GraphQL Query.
67
+ * @param {GraphQLType | (() => GraphQLType)} [returnType] - Return type of the query.
68
+ */
69
+ function Query(returnType) {
70
+ return function (target, propertyKey, descriptor) {
71
+ Reflect.defineMetadata(_constants_1.GRAPHQL_QUERY, { type: returnType, method: propertyKey }, target, propertyKey);
72
+ };
73
+ }
74
+ /**
75
+ * Method decorator to mark a method as a GraphQL Mutation.
76
+ * @param {GraphQLType | (() => GraphQLType)} [returnType] - Return type of the mutation.
77
+ */
78
+ function Mutation(returnType) {
79
+ return function (target, propertyKey, descriptor) {
80
+ Reflect.defineMetadata(_constants_1.GRAPHQL_MUTATION, { type: returnType, method: propertyKey }, target, propertyKey);
81
+ };
82
+ }
83
+ /**
84
+ * Method decorator to mark a method as a GraphQL Subscription.
85
+ * @param {GraphQLType | (() => GraphQLType)} [returnType] - Return type of the subscription.
86
+ */
87
+ function Subscription(returnType) {
88
+ return function (target, propertyKey, descriptor) {
89
+ Reflect.defineMetadata(_constants_1.GRAPHQL_SUBSCRIPTION, { type: returnType, method: propertyKey }, target, propertyKey);
90
+ };
91
+ }
92
+ /**
93
+ * Class decorator to mark a class as a GraphQL Resolver.
94
+ */
95
+ function Resolver() {
96
+ return function (target) {
97
+ Reflect.defineMetadata(_constants_1.GRAPHQL_RESOLVER, true, target);
98
+ };
99
+ }
100
+ //# sourceMappingURL=decorators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../../src/graphql/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { GraphQLArgs, GraphQLField, GraphQLReturnType } from '../types/index.js';
2
+ export * from './decorators';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./decorators"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graphql/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,+CAA6B"}
@@ -0,0 +1,15 @@
1
+ import { GraphQLSchema } from 'graphql';
2
+ export declare class GraphQLModule {
3
+ private controllers;
4
+ private schema;
5
+ private typeCache;
6
+ private inputTypeCache;
7
+ private typeMap;
8
+ constructor(controllers: any[]);
9
+ private buildSchema;
10
+ private convertToGraphQLType;
11
+ private createFieldConfig;
12
+ private getOrCreateObjectType;
13
+ private getOrCreateInputObjectType;
14
+ getSchema(): GraphQLSchema;
15
+ }
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GraphQLModule = void 0;
4
+ const _constants_1 = require("../constants.js");
5
+ const _utils_1 = require("../utils/index.js");
6
+ const graphql_1 = require("graphql");
7
+ class GraphQLModule {
8
+ controllers;
9
+ schema;
10
+ typeCache = new Map();
11
+ inputTypeCache = new Map();
12
+ typeMap = {
13
+ String: graphql_1.GraphQLString,
14
+ Number: graphql_1.GraphQLFloat,
15
+ Boolean: graphql_1.GraphQLBoolean,
16
+ Date: graphql_1.GraphQLString,
17
+ string: graphql_1.GraphQLString,
18
+ number: graphql_1.GraphQLFloat,
19
+ boolean: graphql_1.GraphQLBoolean,
20
+ int: graphql_1.GraphQLInt,
21
+ float: graphql_1.GraphQLFloat,
22
+ id: graphql_1.GraphQLID,
23
+ GraphQLString: graphql_1.GraphQLString,
24
+ GraphQLInt: graphql_1.GraphQLInt,
25
+ GraphQLFloat: graphql_1.GraphQLFloat,
26
+ GraphQLBoolean: graphql_1.GraphQLBoolean,
27
+ GraphQLID: graphql_1.GraphQLID,
28
+ };
29
+ constructor(controllers) {
30
+ this.controllers = controllers;
31
+ this.schema = this.buildSchema();
32
+ }
33
+ buildSchema() {
34
+ const queryFields = {};
35
+ const mutationFields = {};
36
+ const subscriptionFields = {};
37
+ let hasQueries = false;
38
+ let hasMutations = false;
39
+ for (const controller of this.controllers) {
40
+ const prototype = Object.getPrototypeOf(controller.constructor.prototype);
41
+ const methods = Object.getOwnPropertyNames(prototype).filter((m) => m !== 'constructor');
42
+ for (const methodName of methods) {
43
+ const queryMeta = Reflect.getMetadata(_constants_1.GRAPHQL_QUERY, prototype, methodName);
44
+ if (queryMeta) {
45
+ queryFields[methodName] = this.createFieldConfig(controller, prototype, methodName, queryMeta);
46
+ hasQueries = true;
47
+ }
48
+ const mutationMeta = Reflect.getMetadata(_constants_1.GRAPHQL_MUTATION, prototype, methodName);
49
+ if (mutationMeta) {
50
+ mutationFields[methodName] = this.createFieldConfig(controller, prototype, methodName, mutationMeta);
51
+ hasMutations = true;
52
+ }
53
+ const subMeta = Reflect.getMetadata(_constants_1.GRAPHQL_SUBSCRIPTION, prototype, methodName);
54
+ if (subMeta) {
55
+ subscriptionFields[methodName] = this.createFieldConfig(controller, prototype, methodName, subMeta);
56
+ }
57
+ }
58
+ }
59
+ if (!hasQueries) {
60
+ queryFields['_test'] = {
61
+ type: graphql_1.GraphQLString,
62
+ resolve: () => 'GraphQL is working!',
63
+ };
64
+ }
65
+ return new graphql_1.GraphQLSchema({
66
+ query: new graphql_1.GraphQLObjectType({
67
+ name: 'Query',
68
+ fields: queryFields,
69
+ }),
70
+ mutation: hasMutations
71
+ ? new graphql_1.GraphQLObjectType({ name: 'Mutation', fields: mutationFields })
72
+ : undefined,
73
+ subscription: Object.keys(subscriptionFields).length > 0
74
+ ? new graphql_1.GraphQLObjectType({ name: 'Subscription', fields: subscriptionFields })
75
+ : undefined,
76
+ });
77
+ }
78
+ convertToGraphQLType(type, isInput = false) {
79
+ if (!type)
80
+ return graphql_1.GraphQLString;
81
+ if (Array.isArray(type)) {
82
+ const innerType = this.convertToGraphQLType(type[0], isInput);
83
+ return new graphql_1.GraphQLList(innerType);
84
+ }
85
+ if (typeof type === 'function') {
86
+ if (type === String)
87
+ return graphql_1.GraphQLString;
88
+ if (type === Number)
89
+ return graphql_1.GraphQLFloat;
90
+ if (type === Boolean)
91
+ return graphql_1.GraphQLBoolean;
92
+ if (type === Date)
93
+ return graphql_1.GraphQLString;
94
+ const hasInputType = Reflect.hasMetadata(_constants_1.GRAPHQL_INPUT_TYPE, type);
95
+ const hasObjectType = Reflect.hasMetadata(_constants_1.GRAPHQL_TYPE, type);
96
+ if (isInput || hasInputType) {
97
+ if (hasInputType) {
98
+ return this.getOrCreateInputObjectType(type);
99
+ }
100
+ return graphql_1.GraphQLString;
101
+ }
102
+ if (hasObjectType) {
103
+ return this.getOrCreateObjectType(type);
104
+ }
105
+ }
106
+ if (typeof type === 'string' && this.typeMap[type]) {
107
+ return this.typeMap[type];
108
+ }
109
+ return graphql_1.GraphQLString;
110
+ }
111
+ createFieldConfig(controller, prototype, methodName, meta) {
112
+ const argMetas = Reflect.getMetadata(_constants_1.GRAPHQL_ARG, prototype, methodName) || [];
113
+ argMetas.sort((a, b) => a.index - b.index);
114
+ const args = {};
115
+ for (const arg of argMetas) {
116
+ const argType = this.convertToGraphQLType(arg.type, true);
117
+ args[arg.name] = {
118
+ type: arg.required ? new graphql_1.GraphQLNonNull(argType) : argType,
119
+ description: arg.description,
120
+ defaultValue: arg.defaultValue,
121
+ };
122
+ }
123
+ const returnType = this.convertToGraphQLType(meta.type);
124
+ return {
125
+ type: returnType,
126
+ args: args,
127
+ resolve: async (source, args, context, info) => {
128
+ try {
129
+ const methodArgs = argMetas.map((arg) => args[arg.name]);
130
+ return await controller[methodName](...methodArgs, context);
131
+ }
132
+ catch (error) {
133
+ console.error(`❌ Error in GraphQL resolver ${methodName}:`, error);
134
+ throw error;
135
+ }
136
+ },
137
+ };
138
+ }
139
+ getOrCreateObjectType(cls) {
140
+ if (this.typeCache.has(cls)) {
141
+ return this.typeCache.get(cls);
142
+ }
143
+ const typeMeta = Reflect.getMetadata(_constants_1.GRAPHQL_TYPE, cls) || { name: cls.name };
144
+ const fieldsMeta = Reflect.getMetadata(_constants_1.GRAPHQL_FIELD, cls.prototype) || [];
145
+ const fields = {};
146
+ for (const field of fieldsMeta) {
147
+ if (typeof field.type === 'function' && !(0, _utils_1.isClass)(field.type)) {
148
+ field.type = field.type();
149
+ }
150
+ const convertedType = this.convertToGraphQLType(field.type);
151
+ fields[field.propertyKey] = {
152
+ type: convertedType,
153
+ resolve: (obj) => {
154
+ const value = obj[field.propertyKey];
155
+ return value;
156
+ },
157
+ };
158
+ }
159
+ const objectType = new graphql_1.GraphQLObjectType({
160
+ name: typeMeta.name,
161
+ fields: fields,
162
+ });
163
+ this.typeCache.set(cls, objectType);
164
+ return objectType;
165
+ }
166
+ getOrCreateInputObjectType(cls) {
167
+ if (this.inputTypeCache.has(cls)) {
168
+ return this.inputTypeCache.get(cls);
169
+ }
170
+ const typeMeta = Reflect.getMetadata(_constants_1.GRAPHQL_INPUT_TYPE, cls) || { name: `${cls.name}Input` };
171
+ const fieldsMeta = Reflect.getMetadata(_constants_1.GRAPHQL_FIELD, cls.prototype) || [];
172
+ const fields = {};
173
+ for (const field of fieldsMeta) {
174
+ fields[field.propertyKey] = {
175
+ type: this.convertToGraphQLType(field.type, true),
176
+ };
177
+ }
178
+ const inputType = new graphql_1.GraphQLInputObjectType({
179
+ name: typeMeta.name,
180
+ fields: fields,
181
+ });
182
+ this.inputTypeCache.set(cls, inputType);
183
+ return inputType;
184
+ }
185
+ getSchema() {
186
+ return this.schema;
187
+ }
188
+ }
189
+ exports.GraphQLModule = GraphQLModule;
190
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/graphql/module.ts"],"names":[],"mappings":";;;AAAA,2CAQoB;AACpB,mCAAiC;AACjC,qCAWiB;AAEjB,MAAa,aAAa;IAuBJ;IAtBZ,MAAM,CAAgB;IACtB,SAAS,GAAgC,IAAI,GAAG,EAAE,CAAC;IACnD,cAAc,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE7D,OAAO,GAAwB;QACrC,MAAM,EAAE,uBAAa;QACrB,MAAM,EAAE,sBAAY;QACpB,OAAO,EAAE,wBAAc;QACvB,IAAI,EAAE,uBAAa;QACnB,MAAM,EAAE,uBAAa;QACrB,MAAM,EAAE,sBAAY;QACpB,OAAO,EAAE,wBAAc;QACvB,GAAG,EAAE,oBAAU;QACf,KAAK,EAAE,sBAAY;QACnB,EAAE,EAAE,mBAAS;QACb,aAAa,EAAE,uBAAa;QAC5B,UAAU,EAAE,oBAAU;QACtB,YAAY,EAAE,sBAAY;QAC1B,cAAc,EAAE,wBAAc;QAC9B,SAAS,EAAE,mBAAS;KACrB,CAAC;IAEF,YAAoB,WAAkB;QAAlB,gBAAW,GAAX,WAAW,CAAO;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;IAEO,WAAW;QACjB,MAAM,WAAW,GAAwB,EAAE,CAAC;QAC5C,MAAM,cAAc,GAAwB,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAwB,EAAE,CAAC;QAEnD,IAAI,UAAU,GAAG,KAAK,CAAC;QACvB,IAAI,YAAY,GAAG,KAAK,CAAC;QAEzB,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,SAAS,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;YAEzF,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAE5E,IAAI,SAAS,EAAE,CAAC;oBACd,WAAW,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAC9C,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,CACV,CAAC;oBACF,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;gBAED,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,6BAAgB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBAClF,IAAI,YAAY,EAAE,CAAC;oBACjB,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,iBAAiB,CACjD,UAAU,EACV,SAAS,EACT,UAAU,EACV,YAAY,CACb,CAAC;oBACF,YAAY,GAAG,IAAI,CAAC;gBACtB,CAAC;gBAED,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,iCAAoB,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;gBACjF,IAAI,OAAO,EAAE,CAAC;oBACZ,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,iBAAiB,CACrD,UAAU,EACV,SAAS,EACT,UAAU,EACV,OAAO,CACR,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,WAAW,CAAC,OAAO,CAAC,GAAG;gBACrB,IAAI,EAAE,uBAAa;gBACnB,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB;aACrC,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,uBAAa,CAAC;YACvB,KAAK,EAAE,IAAI,2BAAiB,CAAC;gBAC3B,IAAI,EAAE,OAAO;gBACb,MAAM,EAAE,WAAW;aACpB,CAAC;YACF,QAAQ,EAAE,YAAY;gBACpB,CAAC,CAAC,IAAI,2BAAiB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;gBACrE,CAAC,CAAC,SAAS;YACb,YAAY,EACV,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,GAAG,CAAC;gBACxC,CAAC,CAAC,IAAI,2BAAiB,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;gBAC7E,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB,CAAC,IAAS,EAAE,UAAmB,KAAK;QAC9D,IAAI,CAAC,IAAI;YAAE,OAAO,uBAAa,CAAC;QAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,qBAAW,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,uBAAa,CAAC;YAC1C,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,sBAAY,CAAC;YACzC,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,wBAAc,CAAC;YAC5C,IAAI,IAAI,KAAK,IAAI;gBAAE,OAAO,uBAAa,CAAC;YAExC,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,+BAAkB,EAAE,IAAI,CAAC,CAAC;YACnE,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAY,EAAE,IAAI,CAAC,CAAC;YAE9D,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;gBAC5B,IAAI,YAAY,EAAE,CAAC;oBACjB,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAC;gBAC/C,CAAC;gBACD,OAAO,uBAAa,CAAC;YACvB,CAAC;YAED,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,uBAAa,CAAC;IACvB,CAAC;IAEO,iBAAiB,CAAC,UAAe,EAAE,SAAc,EAAE,UAAkB,EAAE,IAAS;QACtF,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,wBAAW,EAAE,SAAS,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;QAC/E,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAErD,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG;gBACf,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,wBAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO;gBAC1D,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,YAAY,EAAE,GAAG,CAAC,YAAY;aAC/B,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,KAAK,EAAE,MAAW,EAAE,IAAS,EAAE,OAAY,EAAE,IAAS,EAAE,EAAE;gBACjE,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC9D,OAAO,MAAM,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC;gBAC9D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;oBACnE,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAEO,qBAAqB,CAAC,GAAQ;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAClC,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,yBAAY,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE3E,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,IAAA,gBAAO,EAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7D,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC5B,CAAC;YAED,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAE5D,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG;gBAC1B,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,CAAC,GAAQ,EAAE,EAAE;oBACpB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACrC,OAAO,KAAK,CAAC;gBACf,CAAC;aACF,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,2BAAiB,CAAC;YACvC,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QACpC,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,0BAA0B,CAAC,GAAQ;QACzC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QACvC,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,+BAAkB,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC;QAC9F,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,0BAAa,EAAE,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAE3E,MAAM,MAAM,GAAwB,EAAE,CAAC;QACvC,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG;gBAC1B,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;aAClD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,gCAAsB,CAAC;YAC3C,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEM,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF;AAjOD,sCAiOC"}
@@ -0,0 +1,38 @@
1
+ export type GraphQLType = StringConstructor | NumberConstructor | BooleanConstructor | DateConstructor | ArrayConstructor | Function | {
2
+ new (...args: any[]): any;
3
+ };
4
+ export interface ArgOptions {
5
+ name?: string;
6
+ type?: GraphQLType;
7
+ required?: boolean;
8
+ description?: string;
9
+ defaultValue?: any;
10
+ }
11
+ export interface FieldMetadata {
12
+ propertyKey: string;
13
+ type?: GraphQLType | (() => GraphQLType) | {
14
+ nullable: true;
15
+ };
16
+ }
17
+ export interface ArgMetadata {
18
+ index: number;
19
+ name: string;
20
+ type: GraphQLType;
21
+ required: boolean;
22
+ description?: string;
23
+ defaultValue?: any;
24
+ }
25
+ export interface TypeMetadata {
26
+ name: string;
27
+ }
28
+ export interface QueryMetadata {
29
+ type?: GraphQLType | (() => GraphQLType);
30
+ method: string;
31
+ }
32
+ export interface MutationMetadata extends QueryMetadata {
33
+ }
34
+ export interface SubscriptionMetadata extends QueryMetadata {
35
+ }
36
+ export type GraphQLField<T = any> = T;
37
+ export type GraphQLArgs<T = any> = T;
38
+ export type GraphQLReturnType<T = any> = T;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/types/graphql.ts"],"names":[],"mappings":""}
@@ -22,6 +22,11 @@ export interface ServerConfig {
22
22
  sse?: {
23
23
  enabled: boolean;
24
24
  };
25
+ graphql?: {
26
+ enabled: boolean;
27
+ playground?: boolean;
28
+ path?: string;
29
+ };
25
30
  }
26
31
  import { Server } from 'http';
27
32
  export interface IHttpServer {
@@ -1,6 +1,7 @@
1
1
  export * from './common';
2
2
  export * from './controller';
3
3
  export * from './cors';
4
+ export * from './graphql';
4
5
  export * from './http';
5
6
  export * from './lambda';
6
7
  export * from './multipart';
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./common"), exports);
18
18
  __exportStar(require("./controller"), exports);
19
19
  __exportStar(require("./cors"), exports);
20
+ __exportStar(require("./graphql"), exports);
20
21
  __exportStar(require("./http"), exports);
21
22
  __exportStar(require("./lambda"), exports);
22
23
  __exportStar(require("./multipart"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,+CAA6B;AAC7B,yCAAuB;AACvB,4CAA0B;AAC1B,yCAAuB;AACvB,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,wCAAsB;AACtB,2CAAyB;AACzB,8CAA4B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=graphql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../src/utils/graphql.ts"],"names":[],"mappings":""}
@@ -3,3 +3,4 @@ export declare function matchRoute(pattern: string, path: string): Record<string
3
3
  export declare function buildRoutePattern(parts: string[]): string;
4
4
  export declare function mergeMiddlewares(...middlewareLists: MiddlewareCB[][]): MiddlewareCB[];
5
5
  export declare function mergeInterceptors(...interceptorLists: InterceptorCB[][]): InterceptorCB[];
6
+ export declare function isClass(obj: any): boolean;
@@ -4,6 +4,7 @@ exports.matchRoute = matchRoute;
4
4
  exports.buildRoutePattern = buildRoutePattern;
5
5
  exports.mergeMiddlewares = mergeMiddlewares;
6
6
  exports.mergeInterceptors = mergeInterceptors;
7
+ exports.isClass = isClass;
7
8
  function matchRoute(pattern, path) {
8
9
  pattern = pattern.replace(/^\/+|\/+$/g, '');
9
10
  path = path.replace(/^\/+|\/+$/g, '');
@@ -59,4 +60,7 @@ function mergeMiddlewares(...middlewareLists) {
59
60
  function mergeInterceptors(...interceptorLists) {
60
61
  return interceptorLists.flat();
61
62
  }
63
+ function isClass(obj) {
64
+ return typeof obj === 'function' && /^class\s/.test(Function.prototype.toString.call(obj));
65
+ }
62
66
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/utils/helper.ts"],"names":[],"mappings":";;AAEA,gCAwDC;AAED,8CAEC;AAED,4CAEC;AAED,8CAEC;AApED,SAAgB,UAAU,CAAC,OAAe,EAAE,IAAY;IACtD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC5C,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,eAAe,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAErD,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,GAAG,CAAC,CAAC;IAEV,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,cAAc,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;YAChC,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YAEJ,SAAS;QACX,CAAC;QAED,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,CAAC,EAAE,CAAC;QACJ,CAAC,EAAE,CAAC;IACN,CAAC;IAED,OAAO,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAI,cAAc,KAAK,GAAG,EAAE,CAAC;YAC3B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;YACjB,CAAC,EAAE,CAAC;QACN,CAAC;aAAM,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACtD,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAe;IAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAgB,gBAAgB,CAAC,GAAG,eAAiC;IACnE,OAAO,eAAe,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,SAAgB,iBAAiB,CAAC,GAAG,gBAAmC;IACtE,OAAO,gBAAgB,CAAC,IAAI,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"helper.js","sourceRoot":"","sources":["../../src/utils/helper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quantum-flow",
3
- "version": "1.14.0",
3
+ "version": "1.15.0",
4
4
  "description": "Decorator-based API framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -55,6 +55,11 @@
55
55
  "import": "./dist/plugins/aws.js",
56
56
  "require": "./dist/plugins/aws.js",
57
57
  "types": "./dist/plugins/aws.js"
58
+ },
59
+ "./graphql": {
60
+ "import": "./dist/graphql/index.js",
61
+ "require": "./dist/graphql/index.js",
62
+ "types": "./dist/graphql/index.js"
58
63
  }
59
64
  },
60
65
  "repository": {
@@ -79,6 +84,8 @@
79
84
  "aws-lambda": "^1.0.7",
80
85
  "class-transformer": "^0.5.1",
81
86
  "class-validator": "^0.15.1",
87
+ "graphql": "^16.13.1",
88
+ "graphql-yoga": "^5.18.1",
82
89
  "joi": "^18.0.2",
83
90
  "parse-multipart-data": "^1.5.0",
84
91
  "reflect-metadata": "^0.2.2",