@nest-boot/graphql-connection 7.2.1 → 7.4.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.
Files changed (157) hide show
  1. package/dist/connection-query-builder.d.ts +1 -0
  2. package/dist/connection-query-builder.js +24 -54
  3. package/dist/connection-query-builder.js.map +1 -1
  4. package/dist/connection.builder.d.ts +8 -7
  5. package/dist/connection.builder.js +19 -157
  6. package/dist/connection.builder.js.map +1 -1
  7. package/dist/enums/index.d.ts +0 -1
  8. package/dist/enums/index.js +0 -1
  9. package/dist/enums/index.js.map +1 -1
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.js +1 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/interfaces/connection-args.interface.d.ts +2 -0
  14. package/dist/interfaces/connection-builder-options.interface.d.ts +4 -0
  15. package/dist/interfaces/{replacement-args.interface.js → connection-builder-options.interface.js} +1 -1
  16. package/dist/interfaces/connection-builder-options.interface.js.map +1 -0
  17. package/dist/interfaces/connection-metadata.interface.d.ts +5 -2
  18. package/dist/interfaces/field-options.interface.d.ts +7 -19
  19. package/dist/interfaces/index.d.ts +1 -1
  20. package/dist/interfaces/index.js +1 -1
  21. package/dist/interfaces/index.js.map +1 -1
  22. package/dist/tsconfig.build.tsbuildinfo +1 -1
  23. package/dist/utils/create-connection-args.d.ts +6 -0
  24. package/dist/utils/create-connection-args.js +80 -0
  25. package/dist/utils/create-connection-args.js.map +1 -0
  26. package/dist/utils/create-connection.d.ts +6 -0
  27. package/dist/utils/create-connection.js +55 -0
  28. package/dist/utils/create-connection.js.map +1 -0
  29. package/dist/utils/create-edge.d.ts +4 -0
  30. package/dist/utils/create-edge.js +37 -0
  31. package/dist/utils/create-edge.js.map +1 -0
  32. package/dist/utils/create-filter.d.ts +10 -0
  33. package/dist/utils/create-filter.js +69 -0
  34. package/dist/utils/create-filter.js.map +1 -0
  35. package/dist/utils/create-order.d.ts +8 -0
  36. package/dist/utils/create-order.js +50 -0
  37. package/dist/utils/create-order.js.map +1 -0
  38. package/dist/utils/index.d.ts +5 -1
  39. package/dist/utils/index.js +5 -1
  40. package/dist/utils/index.js.map +1 -1
  41. package/package.json +10 -8
  42. package/dist/enums/comparator-operator.enum.d.ts +0 -11
  43. package/dist/enums/comparator-operator.enum.js +0 -16
  44. package/dist/enums/comparator-operator.enum.js.map +0 -1
  45. package/dist/interfaces/replacement-args.interface.d.ts +0 -9
  46. package/dist/interfaces/replacement-args.interface.js.map +0 -1
  47. package/dist/interfaces/search-syntax-field-options.interface.d.ts +0 -12
  48. package/dist/interfaces/search-syntax-field-options.interface.js +0 -3
  49. package/dist/interfaces/search-syntax-field-options.interface.js.map +0 -1
  50. package/dist/scripts/generate-cst-dts.d.ts +0 -1
  51. package/dist/scripts/generate-cst-dts.js +0 -8
  52. package/dist/scripts/generate-cst-dts.js.map +0 -1
  53. package/dist/search-syntax.lexer.d.ts +0 -5
  54. package/dist/search-syntax.lexer.js +0 -13
  55. package/dist/search-syntax.lexer.js.map +0 -1
  56. package/dist/search-syntax.parser.d.ts +0 -6
  57. package/dist/search-syntax.parser.js +0 -91
  58. package/dist/search-syntax.parser.js.map +0 -1
  59. package/dist/search-syntax.visitor.d.ts +0 -24
  60. package/dist/search-syntax.visitor.js +0 -325
  61. package/dist/search-syntax.visitor.js.map +0 -1
  62. package/dist/tokens/Comma.d.ts +0 -1
  63. package/dist/tokens/Comma.js +0 -9
  64. package/dist/tokens/Comma.js.map +0 -1
  65. package/dist/tokens/Identifier.d.ts +0 -1
  66. package/dist/tokens/Identifier.js +0 -14
  67. package/dist/tokens/Identifier.js.map +0 -1
  68. package/dist/tokens/UnquotedLiteral.d.ts +0 -1
  69. package/dist/tokens/UnquotedLiteral.js +0 -11
  70. package/dist/tokens/UnquotedLiteral.js.map +0 -1
  71. package/dist/tokens/WhiteSpace.d.ts +0 -1
  72. package/dist/tokens/WhiteSpace.js +0 -12
  73. package/dist/tokens/WhiteSpace.js.map +0 -1
  74. package/dist/tokens/Wildcard.d.ts +0 -1
  75. package/dist/tokens/Wildcard.js +0 -9
  76. package/dist/tokens/Wildcard.js.map +0 -1
  77. package/dist/tokens/brackets/LeftBracket.d.ts +0 -1
  78. package/dist/tokens/brackets/LeftBracket.js +0 -9
  79. package/dist/tokens/brackets/LeftBracket.js.map +0 -1
  80. package/dist/tokens/brackets/RightBracket.d.ts +0 -1
  81. package/dist/tokens/brackets/RightBracket.js +0 -9
  82. package/dist/tokens/brackets/RightBracket.js.map +0 -1
  83. package/dist/tokens/brackets/index.d.ts +0 -3
  84. package/dist/tokens/brackets/index.js +0 -23
  85. package/dist/tokens/brackets/index.js.map +0 -1
  86. package/dist/tokens/comparators/Comparator.d.ts +0 -1
  87. package/dist/tokens/comparators/Comparator.js +0 -9
  88. package/dist/tokens/comparators/Comparator.js.map +0 -1
  89. package/dist/tokens/comparators/Equal.d.ts +0 -1
  90. package/dist/tokens/comparators/Equal.js +0 -11
  91. package/dist/tokens/comparators/Equal.js.map +0 -1
  92. package/dist/tokens/comparators/GreaterThan.d.ts +0 -1
  93. package/dist/tokens/comparators/GreaterThan.js +0 -11
  94. package/dist/tokens/comparators/GreaterThan.js.map +0 -1
  95. package/dist/tokens/comparators/GreaterThanOrEqual.d.ts +0 -1
  96. package/dist/tokens/comparators/GreaterThanOrEqual.js +0 -11
  97. package/dist/tokens/comparators/GreaterThanOrEqual.js.map +0 -1
  98. package/dist/tokens/comparators/LessThan.d.ts +0 -1
  99. package/dist/tokens/comparators/LessThan.js +0 -11
  100. package/dist/tokens/comparators/LessThan.js.map +0 -1
  101. package/dist/tokens/comparators/LessThanOrEqual.d.ts +0 -1
  102. package/dist/tokens/comparators/LessThanOrEqual.js +0 -11
  103. package/dist/tokens/comparators/LessThanOrEqual.js.map +0 -1
  104. package/dist/tokens/comparators/index.d.ts +0 -7
  105. package/dist/tokens/comparators/index.js +0 -38
  106. package/dist/tokens/comparators/index.js.map +0 -1
  107. package/dist/tokens/connectives/And.d.ts +0 -1
  108. package/dist/tokens/connectives/And.js +0 -11
  109. package/dist/tokens/connectives/And.js.map +0 -1
  110. package/dist/tokens/connectives/Not.d.ts +0 -1
  111. package/dist/tokens/connectives/Not.js +0 -11
  112. package/dist/tokens/connectives/Not.js.map +0 -1
  113. package/dist/tokens/connectives/Or.d.ts +0 -1
  114. package/dist/tokens/connectives/Or.js +0 -11
  115. package/dist/tokens/connectives/Or.js.map +0 -1
  116. package/dist/tokens/connectives/index.d.ts +0 -4
  117. package/dist/tokens/connectives/index.js +0 -25
  118. package/dist/tokens/connectives/index.js.map +0 -1
  119. package/dist/tokens/fields/Field.d.ts +0 -1
  120. package/dist/tokens/fields/Field.js +0 -9
  121. package/dist/tokens/fields/Field.js.map +0 -1
  122. package/dist/tokens/fields/NestedField.d.ts +0 -1
  123. package/dist/tokens/fields/NestedField.js +0 -13
  124. package/dist/tokens/fields/NestedField.js.map +0 -1
  125. package/dist/tokens/fields/index.d.ts +0 -3
  126. package/dist/tokens/fields/index.js +0 -23
  127. package/dist/tokens/fields/index.js.map +0 -1
  128. package/dist/tokens/index.d.ts +0 -1
  129. package/dist/tokens/index.js +0 -31
  130. package/dist/tokens/index.js.map +0 -1
  131. package/dist/tokens/values/Date.d.ts +0 -1
  132. package/dist/tokens/values/Date.js +0 -12
  133. package/dist/tokens/values/Date.js.map +0 -1
  134. package/dist/tokens/values/False.d.ts +0 -1
  135. package/dist/tokens/values/False.js +0 -13
  136. package/dist/tokens/values/False.js.map +0 -1
  137. package/dist/tokens/values/Null.d.ts +0 -1
  138. package/dist/tokens/values/Null.js +0 -13
  139. package/dist/tokens/values/Null.js.map +0 -1
  140. package/dist/tokens/values/Number.d.ts +0 -1
  141. package/dist/tokens/values/Number.js +0 -13
  142. package/dist/tokens/values/Number.js.map +0 -1
  143. package/dist/tokens/values/QuotedString.d.ts +0 -1
  144. package/dist/tokens/values/QuotedString.js +0 -11
  145. package/dist/tokens/values/QuotedString.js.map +0 -1
  146. package/dist/tokens/values/True.d.ts +0 -1
  147. package/dist/tokens/values/True.js +0 -13
  148. package/dist/tokens/values/True.js.map +0 -1
  149. package/dist/tokens/values/Value.d.ts +0 -1
  150. package/dist/tokens/values/Value.js +0 -9
  151. package/dist/tokens/values/Value.js.map +0 -1
  152. package/dist/tokens/values/index.d.ts +0 -7
  153. package/dist/tokens/values/index.js +0 -32
  154. package/dist/tokens/values/index.js.map +0 -1
  155. package/dist/utils/infer-type.d.ts +0 -1
  156. package/dist/utils/infer-type.js +0 -14
  157. package/dist/utils/infer-type.js.map +0 -1
@@ -17,6 +17,7 @@ export declare class ConnectionQueryBuilder<Entity extends object, Hint extends
17
17
  private readonly optionFilterQuery;
18
18
  private readonly cursorFilterQuery;
19
19
  private readonly queryStringFilterQuery;
20
+ private readonly argsFilterQuery;
20
21
  private readonly totalCountFilterQuery;
21
22
  private readonly allFilterQuery;
22
23
  constructor(entityManager: EntityManager, connectionClass: ConnectionClass<Entity>, args: ConnectionArgsInterface<Entity>, options?: ConnectionFindOptions<Entity, Hint, Fields, Excludes> | undefined);
@@ -8,35 +8,10 @@ const core_1 = require("@mikro-orm/core");
8
8
  const compact_1 = __importDefault(require("lodash/compact"));
9
9
  const get_1 = __importDefault(require("lodash/get"));
10
10
  const set_1 = __importDefault(require("lodash/set"));
11
+ const search_syntax_1 = require("search-syntax");
11
12
  const cursor_1 = require("./cursor");
12
13
  const enums_1 = require("./enums");
13
14
  const graphql_connection_constants_1 = require("./graphql-connection.constants");
14
- const search_syntax_lexer_1 = require("./search-syntax.lexer");
15
- const search_syntax_parser_1 = require("./search-syntax.parser");
16
- const search_syntax_visitor_1 = require("./search-syntax.visitor");
17
- function entityPropertyToSimpleType(type) {
18
- switch (type) {
19
- case "boolean":
20
- case "BooleanType":
21
- return "boolean";
22
- case "number":
23
- case "IntegerType":
24
- case "SmallIntType":
25
- case "MediumIntType":
26
- case "FloatType":
27
- case "DoubleType":
28
- return "number";
29
- case "Date":
30
- case "DateType":
31
- case "DateTimeType":
32
- return "date";
33
- case "bigint":
34
- case "BigIntType":
35
- return "bigint";
36
- default:
37
- return "string";
38
- }
39
- }
40
15
  class ConnectionQueryBuilder {
41
16
  constructor(entityManager, connectionClass, args, options) {
42
17
  this.entityManager = entityManager;
@@ -49,6 +24,7 @@ class ConnectionQueryBuilder {
49
24
  this.optionFilterQuery = null;
50
25
  this.cursorFilterQuery = null;
51
26
  this.queryStringFilterQuery = null;
27
+ this.argsFilterQuery = null;
52
28
  this.totalCountFilterQuery = null;
53
29
  this.allFilterQuery = null;
54
30
  this.metadata = Reflect.getMetadata(graphql_connection_constants_1.GRAPHQL_CONNECTION_METADATA, connectionClass);
@@ -64,11 +40,17 @@ class ConnectionQueryBuilder {
64
40
  this.optionFilterQuery = this.options?.where ?? null;
65
41
  this.cursorFilterQuery = this.getCursorFilterQuery();
66
42
  this.queryStringFilterQuery = this.getQueryStringToFilterQuery();
67
- this.totalCountFilterQuery = this.mergeFilterQuery((0, compact_1.default)([this.optionFilterQuery, this.queryStringFilterQuery]));
43
+ this.argsFilterQuery = this.args.filter ?? null;
44
+ this.totalCountFilterQuery = this.mergeFilterQuery((0, compact_1.default)([
45
+ this.optionFilterQuery,
46
+ this.queryStringFilterQuery,
47
+ this.argsFilterQuery,
48
+ ]));
68
49
  this.allFilterQuery = this.mergeFilterQuery((0, compact_1.default)([
69
50
  this.cursorFilterQuery,
70
51
  this.optionFilterQuery,
71
52
  this.queryStringFilterQuery,
53
+ this.argsFilterQuery,
72
54
  ]));
73
55
  }
74
56
  getLimit() {
@@ -163,35 +145,23 @@ class ConnectionQueryBuilder {
163
145
  getQueryStringToFilterQuery() {
164
146
  if (typeof this.args.query !== "undefined" &&
165
147
  this.args.query.trim() !== "") {
166
- const { entityClass, fieldOptionsMap } = this.metadata;
167
- const entityMetadata = this.entityManager.getMetadata().get(entityClass);
168
- if (typeof entityMetadata === "undefined") {
169
- throw new Error("Entity metadata not found");
148
+ const { fieldOptionsMap, filterQuerySchema } = this.metadata;
149
+ // 构建 ParseOptions,只包含 filterable 的字段
150
+ const fields = {};
151
+ for (const [key, options] of fieldOptionsMap) {
152
+ if (options.filterable === true) {
153
+ fields[key] = {
154
+ type: options.type,
155
+ array: options.array,
156
+ searchable: options.searchable,
157
+ };
158
+ }
170
159
  }
171
- const visitor = new search_syntax_visitor_1.SearchSyntaxVisitor(this.entityManager, [...fieldOptionsMap.values()].reduce((result, fieldOptions) => {
172
- const replacedField = typeof fieldOptions.replacement === "string"
173
- ? fieldOptions.replacement
174
- : fieldOptions.field;
175
- const prop = (0, get_1.default)(entityMetadata.properties, replacedField.split(".").join(".targetMeta.properties."));
176
- result.set(fieldOptions.field, {
177
- field: fieldOptions.field,
178
- type: fieldOptions.type ??
179
- entityPropertyToSimpleType(prop?.type),
180
- replacement: fieldOptions
181
- .replacement,
182
- array: fieldOptions.array ?? prop?.array,
183
- fulltext: fieldOptions.fulltext ??
184
- entityMetadata.indexes.some(({ type, properties }) => type === "fulltext" && properties === replacedField),
185
- searchable: fieldOptions.searchable,
186
- filterable: fieldOptions.filterable,
187
- });
188
- return result;
189
- }, new Map()));
190
- search_syntax_parser_1.searchSyntaxParser.input = search_syntax_lexer_1.searchSyntaxLexer.tokenize(this.args.query).tokens;
191
- if (search_syntax_parser_1.searchSyntaxParser.errors.length > 0) {
192
- throw Error(search_syntax_parser_1.searchSyntaxParser.errors[0].message);
160
+ const rawFilter = (0, search_syntax_1.parse)(this.args.query, { fields });
161
+ if (rawFilter === null) {
162
+ return null;
193
163
  }
194
- return visitor.visit(search_syntax_parser_1.searchSyntaxParser.query()) ?? null;
164
+ return filterQuerySchema.parse(rawFilter);
195
165
  }
196
166
  return null;
197
167
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection-query-builder.js","sourceRoot":"","sources":["../src/connection-query-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-query-builder.js","sourceRoot":"","sources":["../src/connection-query-builder.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,22 @@
1
- import type { EntityClass } from "@mikro-orm/core";
1
+ import type { EntityClass, FilterQuery } from "@mikro-orm/core";
2
2
  import { type Type } from "@nestjs/common";
3
- import { ConnectionArgsInterface, ConnectionInterface, EdgeInterface, FieldOptions, OrderFieldType, OrderInterface } from "./interfaces";
3
+ import { GraphQLScalarType } from "graphql";
4
+ import { ConnectionArgsInterface, ConnectionBuilderOptions, ConnectionInterface, EdgeInterface, FieldOptions, OrderFieldType, OrderInterface } from "./interfaces";
4
5
  type ConnectionBuildResult<Entity extends object> = {
5
6
  Connection: Type<ConnectionInterface<Entity>>;
6
7
  ConnectionArgs: Type<ConnectionArgsInterface<Entity>>;
7
8
  Edge: Type<EdgeInterface<Entity>>;
8
9
  Order: Type<OrderInterface<Entity>>;
9
10
  OrderField?: OrderFieldType<Entity>;
10
- } & Record<`${EntityClass<Entity>["name"]}Connection`, Type<ConnectionInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}ConnectionArgs`, Type<ConnectionArgsInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}Edge`, Type<EdgeInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}Order`, Type<OrderInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}OrderField`, OrderFieldType<Entity>>;
11
+ Filter: GraphQLScalarType<FilterQuery<Entity>>;
12
+ } & Record<`${EntityClass<Entity>["name"]}Connection`, Type<ConnectionInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}ConnectionArgs`, Type<ConnectionArgsInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}Edge`, Type<EdgeInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}Order`, Type<OrderInterface<Entity>>> & Record<`${EntityClass<Entity>["name"]}OrderField`, OrderFieldType<Entity>> & Record<`${EntityClass<Entity>["name"]}Filter`, GraphQLScalarType<FilterQuery<Entity>>>;
11
13
  export declare class ConnectionBuilder<Entity extends object> {
12
14
  private readonly entityClass;
13
15
  private readonly entityName;
16
+ private readonly options;
14
17
  private readonly fieldOptionsMap;
15
- constructor(entityClass: EntityClass<Entity>);
16
- private get filterableFields();
17
- private get sortableFields();
18
- addField<Field extends string = never, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never>(options: FieldOptions<Entity, Field, Type>): this;
18
+ constructor(entityClass: EntityClass<Entity>, options?: Partial<ConnectionBuilderOptions>);
19
+ addField<Type extends "string" | "number" | "boolean" | "date" = never, Field extends string = never>(options: FieldOptions<Entity, Type, Field>): this;
19
20
  build(): ConnectionBuildResult<Entity>;
20
21
  }
21
22
  export {};
@@ -1,184 +1,46 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.ConnectionBuilder = void 0;
13
- const graphql_1 = require("@nest-boot/graphql");
14
- const inflection_1 = require("inflection");
15
- const enums_1 = require("./enums");
16
- const graphql_connection_constants_1 = require("./graphql-connection.constants");
17
- const objects_1 = require("./objects");
4
+ const utils_1 = require("./utils");
18
5
  class ConnectionBuilder {
19
- constructor(entityClass) {
6
+ constructor(entityClass, options) {
20
7
  this.entityClass = entityClass;
21
8
  this.fieldOptionsMap = new Map();
22
9
  this.entityName = entityClass.name;
23
- }
24
- get filterableFields() {
25
- return [...this.fieldOptionsMap.values()].filter((field) => field.filterable);
26
- }
27
- get sortableFields() {
28
- return [...this.fieldOptionsMap.values()].filter((field) => field?.sortable);
10
+ this.options = {
11
+ ...options,
12
+ filter: {
13
+ maxDepth: 5,
14
+ maxConditions: 20,
15
+ maxOrBranches: 5,
16
+ maxArrayLength: 100,
17
+ ...options?.filter,
18
+ },
19
+ };
29
20
  }
30
21
  addField(options) {
31
22
  this.fieldOptionsMap.set(options.field, options);
32
23
  return this;
33
24
  }
34
25
  build() {
35
- // eslint-disable-next-line @typescript-eslint/no-this-alias
36
- const builder = this;
37
- const pluralizeEntityName = (0, inflection_1.pluralize)(builder.entityName);
38
- const humanizeEntityName = (0, inflection_1.humanize)(builder.entityName, true);
39
- const humanizeAndPluralizeAndEntityName = (0, inflection_1.pluralize)((0, inflection_1.humanize)(builder.entityName, true));
40
- let Edge = class Edge {
41
- };
42
- __decorate([
43
- (0, graphql_1.Field)(() => builder.entityClass, {
44
- description: `The item at the end of ${builder.entityName}Edge.`,
45
- }),
46
- __metadata("design:type", Object)
47
- ], Edge.prototype, "node", void 0);
48
- __decorate([
49
- (0, graphql_1.Field)(() => String, {
50
- complexity: 0,
51
- description: `A cursor for use in pagination.`,
52
- }),
53
- __metadata("design:type", String)
54
- ], Edge.prototype, "cursor", void 0);
55
- Edge = __decorate([
56
- (0, graphql_1.ObjectType)(`${builder.entityName}Edge`, {
57
- description: `An auto-generated type which holds one ${builder.entityName} and a cursor during pagination.`,
58
- })
59
- ], Edge);
60
- let Connection = class Connection {
61
- };
62
- __decorate([
63
- (0, graphql_1.Field)(() => [Edge], { complexity: 0, description: `A list of edges.` }),
64
- __metadata("design:type", Array)
65
- ], Connection.prototype, "edges", void 0);
66
- __decorate([
67
- (0, graphql_1.Field)(() => objects_1.PageInfo, {
68
- complexity: 0,
69
- description: `Information to aid in pagination.`,
70
- }),
71
- __metadata("design:type", objects_1.PageInfo)
72
- ], Connection.prototype, "pageInfo", void 0);
73
- __decorate([
74
- (0, graphql_1.Field)(() => graphql_1.Int, {
75
- complexity: 0,
76
- description: `Identifies the total count of items in the connection.`,
77
- }),
78
- __metadata("design:type", Number)
79
- ], Connection.prototype, "totalCount", void 0);
80
- Connection = __decorate([
81
- Reflect.metadata(graphql_connection_constants_1.GRAPHQL_CONNECTION_METADATA, {
82
- entityClass: builder.entityClass,
83
- fieldOptionsMap: builder.fieldOptionsMap,
84
- }),
85
- (0, graphql_1.ObjectType)(`${builder.entityName}Connection`, {
86
- isAbstract: true,
87
- description: `An auto-generated type for paginating through multiple ${pluralizeEntityName}.`,
88
- })
89
- ], Connection);
90
- const OrderField = builder.sortableFields.reduce((result, fieldOptions) => {
91
- return {
92
- ...result,
93
- [(0, inflection_1.underscore)(fieldOptions.field).toUpperCase()]: fieldOptions.replacement ??
94
- fieldOptions.field,
95
- };
96
- }, { ID: "id" });
97
- (0, graphql_1.registerEnumType)(OrderField, {
98
- name: `${builder.entityName}OrderField`,
99
- description: `Properties by which ${humanizeEntityName} connections can be ordered.`,
100
- });
101
- let Order = class Order {
102
- };
103
- __decorate([
104
- (0, graphql_1.Field)(() => OrderField, {
105
- description: `The field to order ${humanizeAndPluralizeAndEntityName} by.`,
106
- }),
107
- __metadata("design:type", String)
108
- ], Order.prototype, "field", void 0);
109
- __decorate([
110
- (0, graphql_1.Field)(() => enums_1.OrderDirection, { description: `The ordering direction.` }),
111
- __metadata("design:type", String)
112
- ], Order.prototype, "direction", void 0);
113
- Order = __decorate([
114
- (0, graphql_1.InputType)(`${builder.entityName}Order`, {
115
- description: `Ordering options for ${humanizeEntityName} connections`,
116
- })
117
- ], Order);
118
- let ConnectionArgs = class ConnectionArgs {
119
- };
120
- __decorate([
121
- (0, graphql_1.Field)(() => String, {
122
- nullable: true,
123
- ...(builder.filterableFields.length > 0
124
- ? {
125
- description: `Apply one or multiple filters to the query.\nSupported filter parameters:\n${builder.filterableFields
126
- .map(({ field }) => `\`${String(field)}\``)
127
- .join(", ")}`,
128
- }
129
- : {}),
130
- }),
131
- __metadata("design:type", String)
132
- ], ConnectionArgs.prototype, "query", void 0);
133
- __decorate([
134
- (0, graphql_1.Field)(() => graphql_1.Int, {
135
- nullable: true,
136
- description: "Returns up to the first `n` elements from the list.",
137
- }),
138
- __metadata("design:type", Number)
139
- ], ConnectionArgs.prototype, "first", void 0);
140
- __decorate([
141
- (0, graphql_1.Field)(() => graphql_1.Int, {
142
- nullable: true,
143
- description: "Returns up to the last `n` elements from the list.",
144
- }),
145
- __metadata("design:type", Number)
146
- ], ConnectionArgs.prototype, "last", void 0);
147
- __decorate([
148
- (0, graphql_1.Field)(() => String, {
149
- description: `Returns the elements that come after the specified cursor.`,
150
- nullable: true,
151
- }),
152
- __metadata("design:type", String)
153
- ], ConnectionArgs.prototype, "after", void 0);
154
- __decorate([
155
- (0, graphql_1.Field)(() => String, {
156
- description: `Returns the elements that come before the specified cursor.`,
157
- nullable: true,
158
- }),
159
- __metadata("design:type", String)
160
- ], ConnectionArgs.prototype, "before", void 0);
161
- __decorate([
162
- (0, graphql_1.Field)(() => Order, {
163
- nullable: true,
164
- description: `Ordering options for the returned topics.`,
165
- }),
166
- __metadata("design:type", Order)
167
- ], ConnectionArgs.prototype, "orderBy", void 0);
168
- ConnectionArgs = __decorate([
169
- (0, graphql_1.ArgsType)(`${builder.entityName}ConnectionArgs`)
170
- ], ConnectionArgs);
26
+ const Edge = (0, utils_1.createEdge)(this.entityClass, this.entityName);
27
+ const { Order, OrderField } = (0, utils_1.createOrder)(this.entityName, this.fieldOptionsMap);
28
+ const { Filter, filterQuerySchema } = (0, utils_1.createFilter)(this.entityName, this.fieldOptionsMap, this.options?.filter);
29
+ const Connection = (0, utils_1.createConnection)(this.entityClass, this.entityName, Edge, this.fieldOptionsMap, filterQuerySchema);
30
+ const ConnectionArgs = (0, utils_1.createConnectionArgs)(this.entityName, this.fieldOptionsMap, Order, Filter);
171
31
  return {
172
32
  Connection,
173
33
  ConnectionArgs,
174
34
  Edge,
175
35
  Order,
176
36
  OrderField,
37
+ Filter,
177
38
  [`${this.entityName}Connection`]: Connection,
178
39
  [`${this.entityName}ConnectionArgs`]: ConnectionArgs,
179
40
  [`${this.entityName}Edge`]: Edge,
180
41
  [`${this.entityName}Order`]: Order,
181
42
  [`${this.entityName}OrderField`]: OrderField,
43
+ [`${this.entityName}Filter`]: Filter,
182
44
  };
183
45
  }
184
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"connection.builder.js","sourceRoot":"","sources":["../src/connection.builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection.builder.js","sourceRoot":"","sources":["../src/connection.builder.ts"],"names":[],"mappings":";;;AAcA,mCAMiB;AAyBjB,MAAa,iBAAiB;IAU5B,YACmB,WAAgC,EACjD,OAA2C;QAD1B,gBAAW,GAAX,WAAW,CAAqB;QANlC,oBAAe,GAAG,IAAI,GAAG,EAGvC,CAAC;QAMF,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC;QAEnC,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,OAAO;YACV,MAAM,EAAE;gBACN,QAAQ,EAAE,CAAC;gBACX,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,GAAG;gBACnB,GAAG,OAAO,EAAE,MAAM;aACnB;SACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAGN,OAA0C;QAC1C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,MAAM,IAAI,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3D,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAA,mBAAW,EACvC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,CACrB,CAAC;QAEF,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,oBAAY,EAChD,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,OAAO,EAAE,MAAM,CACrB,CAAC;QAEF,MAAM,UAAU,GAAG,IAAA,wBAAgB,EACjC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,EACf,IAAI,EACJ,IAAI,CAAC,eAAe,EACpB,iBAAiB,CAClB,CAAC;QAEF,MAAM,cAAc,GAAG,IAAA,4BAAoB,EACzC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,eAAe,EACpB,KAAK,EACL,MAAM,CACP,CAAC;QAEF,OAAO;YACL,UAAU;YACV,cAAc;YACd,IAAI;YACJ,KAAK;YACL,UAAU;YACV,MAAM;YACN,CAAC,GAAG,IAAI,CAAC,UAAU,YAAY,CAAC,EAAE,UAAU;YAC5C,CAAC,GAAG,IAAI,CAAC,UAAU,gBAAgB,CAAC,EAAE,cAAc;YACpD,CAAC,GAAG,IAAI,CAAC,UAAU,MAAM,CAAC,EAAE,IAAI;YAChC,CAAC,GAAG,IAAI,CAAC,UAAU,OAAO,CAAC,EAAE,KAAK;YAClC,CAAC,GAAG,IAAI,CAAC,UAAU,YAAY,CAAC,EAAE,UAAU;YAC5C,CAAC,GAAG,IAAI,CAAC,UAAU,QAAQ,CAAC,EAAE,MAAM;SACJ,CAAC;IACrC,CAAC;CACF;AAhFD,8CAgFC"}
@@ -1,3 +1,2 @@
1
- export * from "./comparator-operator.enum";
2
1
  export * from "./order-direction.enum";
3
2
  export * from "./paging-type.enum";
@@ -14,7 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./comparator-operator.enum"), exports);
18
17
  __exportStar(require("./order-direction.enum"), exports);
19
18
  __exportStar(require("./paging-type.enum"), exports);
20
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,yDAAuC;AACvC,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/enums/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,qDAAmC"}
package/dist/index.d.ts CHANGED
@@ -4,3 +4,4 @@ export * from "./enums";
4
4
  export * from "./graphql-connection.module";
5
5
  export * from "./interfaces";
6
6
  export * from "./objects";
7
+ export * from "./utils";
package/dist/index.js CHANGED
@@ -20,4 +20,5 @@ __exportStar(require("./enums"), exports);
20
20
  __exportStar(require("./graphql-connection.module"), exports);
21
21
  __exportStar(require("./interfaces"), exports);
22
22
  __exportStar(require("./objects"), exports);
23
+ __exportStar(require("./utils"), exports);
23
24
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,0CAAwB;AACxB,8DAA4C;AAC5C,+CAA6B;AAC7B,4CAA0B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,uDAAqC;AACrC,0CAAwB;AACxB,8DAA4C;AAC5C,+CAA6B;AAC7B,4CAA0B;AAC1B,0CAAwB"}
@@ -1,3 +1,4 @@
1
+ import { FilterQuery } from "@mikro-orm/core";
1
2
  import { OrderInterface } from "./order.interface";
2
3
  export interface ConnectionArgsInterface<Entity extends object> {
3
4
  after?: string;
@@ -5,5 +6,6 @@ export interface ConnectionArgsInterface<Entity extends object> {
5
6
  first?: number;
6
7
  last?: number;
7
8
  query?: string;
9
+ filter?: FilterQuery<Entity>;
8
10
  orderBy?: OrderInterface<Entity>;
9
11
  }
@@ -0,0 +1,4 @@
1
+ import type { FilterOptions } from "mikro-orm-filter-query-schema";
2
+ export interface ConnectionBuilderOptions {
3
+ filter?: FilterOptions;
4
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=replacement-args.interface.js.map
3
+ //# sourceMappingURL=connection-builder-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-builder-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/connection-builder-options.interface.ts"],"names":[],"mappings":""}
@@ -1,6 +1,9 @@
1
- import { EntityClass } from "@mikro-orm/core";
1
+ import { EntityClass, FilterQuery } from "@mikro-orm/core";
2
+ import type { FieldType } from "mikro-orm-filter-query-schema";
3
+ import type { ZodType } from "zod";
2
4
  import { FieldOptions } from "./field-options.interface";
3
5
  export interface ConnectionMetadata<Entity extends object> {
4
6
  entityClass: EntityClass<Entity>;
5
- fieldOptionsMap: Map<string, FieldOptions<Entity, any, any>>;
7
+ fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>;
8
+ filterQuerySchema: ZodType<FilterQuery<Entity>>;
6
9
  }
@@ -1,27 +1,15 @@
1
- import type { FilterQuery } from "@mikro-orm/core";
2
- import { AutoPath } from "@mikro-orm/core/typings";
3
- import { ReplacementArgs } from "./replacement-args.interface";
1
+ import type { FieldType, ReplacementCallbackFieldOptions as FilterReplacementCallbackFieldOptions, ReplacementFieldOptions as FilterReplacementFieldOptions, SimpleFieldOptions as FilterSimpleFieldOptions } from "mikro-orm-filter-query-schema";
4
2
  export interface BaseFieldOptions {
5
- array?: boolean;
6
- fulltext?: boolean;
7
- searchable?: boolean;
8
3
  filterable?: boolean;
4
+ searchable?: boolean;
9
5
  }
10
- export interface SortableFieldOptions extends BaseFieldOptions {
6
+ export interface SortableFieldOptions {
11
7
  sortable?: boolean;
12
8
  }
13
- export interface SimpleFieldOptions<Entity extends object, Fields extends string = never> extends SortableFieldOptions {
14
- field: AutoPath<Entity, Fields>;
15
- sortable?: boolean;
9
+ export interface SimpleFieldOptions<Entity extends object, Type extends FieldType = never> extends FilterSimpleFieldOptions<Entity, Type>, BaseFieldOptions, SortableFieldOptions {
16
10
  }
17
- export interface ReplacementFieldOptions<Entity extends object, Fields extends string = never> extends SortableFieldOptions {
18
- field: string;
19
- replacement: AutoPath<Entity, Fields>;
20
- sortable?: boolean;
11
+ export interface ReplacementFieldOptions<Entity extends object, Type extends FieldType = never, Field extends string = never> extends FilterReplacementFieldOptions<Entity, Type, Field>, BaseFieldOptions, SortableFieldOptions {
21
12
  }
22
- export interface ReplacementFunctionFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends SortableFieldOptions {
23
- field: string;
24
- type: Type;
25
- replacement?: (args: ReplacementArgs<Type>) => FilterQuery<Entity>;
13
+ export interface ReplacementFunctionFieldOptions<Entity extends object, Type extends FieldType = never> extends FilterReplacementCallbackFieldOptions<Entity, Type>, BaseFieldOptions, SortableFieldOptions {
26
14
  }
27
- export type FieldOptions<Entity extends object, Fields extends string = never, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> = SimpleFieldOptions<Entity, Fields> | ReplacementFieldOptions<Entity, Fields> | ReplacementFunctionFieldOptions<Entity, Type>;
15
+ export type FieldOptions<Entity extends object, Type extends FieldType = never, Field extends string = never> = SimpleFieldOptions<Entity, Type> | ReplacementFieldOptions<Entity, Type, Field> | ReplacementFunctionFieldOptions<Entity, Type>;
@@ -1,8 +1,8 @@
1
1
  export * from "./connection.interface";
2
2
  export * from "./connection-args.interface";
3
+ export * from "./connection-builder-options.interface";
3
4
  export * from "./connection-metadata.interface";
4
5
  export * from "./edge.interface";
5
6
  export * from "./field-options.interface";
6
7
  export * from "./order.interface";
7
8
  export * from "./order-field.type";
8
- export * from "./replacement-args.interface";
@@ -16,10 +16,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./connection.interface"), exports);
18
18
  __exportStar(require("./connection-args.interface"), exports);
19
+ __exportStar(require("./connection-builder-options.interface"), exports);
19
20
  __exportStar(require("./connection-metadata.interface"), exports);
20
21
  __exportStar(require("./edge.interface"), exports);
21
22
  __exportStar(require("./field-options.interface"), exports);
22
23
  __exportStar(require("./order.interface"), exports);
23
24
  __exportStar(require("./order-field.type"), exports);
24
- __exportStar(require("./replacement-args.interface"), exports);
25
25
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,8DAA4C;AAC5C,kEAAgD;AAChD,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,qDAAmC;AACnC,+DAA6C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,8DAA4C;AAC5C,yEAAuD;AACvD,kEAAgD;AAChD,mDAAiC;AACjC,4DAA0C;AAC1C,oDAAkC;AAClC,qDAAmC"}