@nest-boot/graphql-connection 7.3.0 → 7.5.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/dist/connection-query-builder.js +16 -53
- package/dist/connection-query-builder.js.map +1 -1
- package/dist/connection.builder.d.ts +4 -3
- package/dist/connection.builder.js +13 -3
- package/dist/connection.builder.js.map +1 -1
- package/dist/enums/index.d.ts +0 -1
- package/dist/enums/index.js +0 -1
- package/dist/enums/index.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/connection-builder-options.interface.d.ts +4 -0
- package/dist/interfaces/{replacement-args.interface.js → connection-builder-options.interface.js} +1 -1
- package/dist/interfaces/connection-builder-options.interface.js.map +1 -0
- package/dist/interfaces/connection-metadata.interface.d.ts +6 -3
- package/dist/interfaces/index.d.ts +2 -2
- package/dist/interfaces/index.js +2 -2
- package/dist/interfaces/index.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/field-options.type.d.ts +12 -0
- package/dist/{interfaces/field-options.interface.js → types/field-options.type.js} +1 -1
- package/dist/types/field-options.type.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/create-connection-args.d.ts +2 -2
- package/dist/utils/create-connection-args.js +7 -7
- package/dist/utils/create-connection-args.js.map +1 -1
- package/dist/utils/create-connection.d.ts +4 -2
- package/dist/utils/create-connection.js +2 -1
- package/dist/utils/create-connection.js.map +1 -1
- package/dist/utils/create-filter.d.ts +7 -2
- package/dist/utils/create-filter.js +14 -154
- package/dist/utils/create-filter.js.map +1 -1
- package/dist/utils/create-order.d.ts +2 -1
- package/dist/utils/create-order.js.map +1 -1
- package/package.json +5 -4
- package/dist/enums/comparator-operator.enum.d.ts +0 -11
- package/dist/enums/comparator-operator.enum.js +0 -16
- package/dist/enums/comparator-operator.enum.js.map +0 -1
- package/dist/errors/index.d.ts +0 -1
- package/dist/errors/index.js +0 -18
- package/dist/errors/index.js.map +0 -1
- package/dist/errors/unknown-field.error.d.ts +0 -4
- package/dist/errors/unknown-field.error.js +0 -12
- package/dist/errors/unknown-field.error.js.map +0 -1
- package/dist/interfaces/field-options.interface.d.ts +0 -24
- package/dist/interfaces/field-options.interface.js.map +0 -1
- package/dist/interfaces/replacement-args.interface.d.ts +0 -9
- package/dist/interfaces/replacement-args.interface.js.map +0 -1
- package/dist/interfaces/search-syntax-field-options.interface.d.ts +0 -12
- package/dist/interfaces/search-syntax-field-options.interface.js +0 -3
- package/dist/interfaces/search-syntax-field-options.interface.js.map +0 -1
- package/dist/scripts/generate-cst-dts.d.ts +0 -1
- package/dist/scripts/generate-cst-dts.js +0 -8
- package/dist/scripts/generate-cst-dts.js.map +0 -1
- package/dist/search-syntax.lexer.d.ts +0 -5
- package/dist/search-syntax.lexer.js +0 -13
- package/dist/search-syntax.lexer.js.map +0 -1
- package/dist/search-syntax.parser.d.ts +0 -6
- package/dist/search-syntax.parser.js +0 -91
- package/dist/search-syntax.parser.js.map +0 -1
- package/dist/search-syntax.visitor.d.ts +0 -24
- package/dist/search-syntax.visitor.js +0 -319
- package/dist/search-syntax.visitor.js.map +0 -1
- package/dist/tokens/Comma.d.ts +0 -1
- package/dist/tokens/Comma.js +0 -9
- package/dist/tokens/Comma.js.map +0 -1
- package/dist/tokens/Identifier.d.ts +0 -1
- package/dist/tokens/Identifier.js +0 -14
- package/dist/tokens/Identifier.js.map +0 -1
- package/dist/tokens/UnquotedLiteral.d.ts +0 -1
- package/dist/tokens/UnquotedLiteral.js +0 -11
- package/dist/tokens/UnquotedLiteral.js.map +0 -1
- package/dist/tokens/WhiteSpace.d.ts +0 -1
- package/dist/tokens/WhiteSpace.js +0 -12
- package/dist/tokens/WhiteSpace.js.map +0 -1
- package/dist/tokens/Wildcard.d.ts +0 -1
- package/dist/tokens/Wildcard.js +0 -9
- package/dist/tokens/Wildcard.js.map +0 -1
- package/dist/tokens/brackets/LeftBracket.d.ts +0 -1
- package/dist/tokens/brackets/LeftBracket.js +0 -9
- package/dist/tokens/brackets/LeftBracket.js.map +0 -1
- package/dist/tokens/brackets/RightBracket.d.ts +0 -1
- package/dist/tokens/brackets/RightBracket.js +0 -9
- package/dist/tokens/brackets/RightBracket.js.map +0 -1
- package/dist/tokens/brackets/index.d.ts +0 -3
- package/dist/tokens/brackets/index.js +0 -23
- package/dist/tokens/brackets/index.js.map +0 -1
- package/dist/tokens/comparators/Comparator.d.ts +0 -1
- package/dist/tokens/comparators/Comparator.js +0 -9
- package/dist/tokens/comparators/Comparator.js.map +0 -1
- package/dist/tokens/comparators/Equal.d.ts +0 -1
- package/dist/tokens/comparators/Equal.js +0 -11
- package/dist/tokens/comparators/Equal.js.map +0 -1
- package/dist/tokens/comparators/GreaterThan.d.ts +0 -1
- package/dist/tokens/comparators/GreaterThan.js +0 -11
- package/dist/tokens/comparators/GreaterThan.js.map +0 -1
- package/dist/tokens/comparators/GreaterThanOrEqual.d.ts +0 -1
- package/dist/tokens/comparators/GreaterThanOrEqual.js +0 -11
- package/dist/tokens/comparators/GreaterThanOrEqual.js.map +0 -1
- package/dist/tokens/comparators/LessThan.d.ts +0 -1
- package/dist/tokens/comparators/LessThan.js +0 -11
- package/dist/tokens/comparators/LessThan.js.map +0 -1
- package/dist/tokens/comparators/LessThanOrEqual.d.ts +0 -1
- package/dist/tokens/comparators/LessThanOrEqual.js +0 -11
- package/dist/tokens/comparators/LessThanOrEqual.js.map +0 -1
- package/dist/tokens/comparators/index.d.ts +0 -7
- package/dist/tokens/comparators/index.js +0 -38
- package/dist/tokens/comparators/index.js.map +0 -1
- package/dist/tokens/connectives/And.d.ts +0 -1
- package/dist/tokens/connectives/And.js +0 -11
- package/dist/tokens/connectives/And.js.map +0 -1
- package/dist/tokens/connectives/Not.d.ts +0 -1
- package/dist/tokens/connectives/Not.js +0 -11
- package/dist/tokens/connectives/Not.js.map +0 -1
- package/dist/tokens/connectives/Or.d.ts +0 -1
- package/dist/tokens/connectives/Or.js +0 -11
- package/dist/tokens/connectives/Or.js.map +0 -1
- package/dist/tokens/connectives/index.d.ts +0 -4
- package/dist/tokens/connectives/index.js +0 -25
- package/dist/tokens/connectives/index.js.map +0 -1
- package/dist/tokens/fields/Field.d.ts +0 -1
- package/dist/tokens/fields/Field.js +0 -9
- package/dist/tokens/fields/Field.js.map +0 -1
- package/dist/tokens/fields/NestedField.d.ts +0 -1
- package/dist/tokens/fields/NestedField.js +0 -13
- package/dist/tokens/fields/NestedField.js.map +0 -1
- package/dist/tokens/fields/index.d.ts +0 -3
- package/dist/tokens/fields/index.js +0 -23
- package/dist/tokens/fields/index.js.map +0 -1
- package/dist/tokens/index.d.ts +0 -1
- package/dist/tokens/index.js +0 -31
- package/dist/tokens/index.js.map +0 -1
- package/dist/tokens/values/Date.d.ts +0 -1
- package/dist/tokens/values/Date.js +0 -12
- package/dist/tokens/values/Date.js.map +0 -1
- package/dist/tokens/values/False.d.ts +0 -1
- package/dist/tokens/values/False.js +0 -13
- package/dist/tokens/values/False.js.map +0 -1
- package/dist/tokens/values/Null.d.ts +0 -1
- package/dist/tokens/values/Null.js +0 -13
- package/dist/tokens/values/Null.js.map +0 -1
- package/dist/tokens/values/Number.d.ts +0 -1
- package/dist/tokens/values/Number.js +0 -13
- package/dist/tokens/values/Number.js.map +0 -1
- package/dist/tokens/values/QuotedString.d.ts +0 -1
- package/dist/tokens/values/QuotedString.js +0 -11
- package/dist/tokens/values/QuotedString.js.map +0 -1
- package/dist/tokens/values/True.d.ts +0 -1
- package/dist/tokens/values/True.js +0 -13
- package/dist/tokens/values/True.js.map +0 -1
- package/dist/tokens/values/Value.d.ts +0 -1
- package/dist/tokens/values/Value.js +0 -9
- package/dist/tokens/values/Value.js.map +0 -1
- package/dist/tokens/values/index.d.ts +0 -7
- package/dist/tokens/values/index.js +0 -32
- package/dist/tokens/values/index.js.map +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { FieldType, ReplacementCallbackFieldOptions as FilterReplacementCallbackFieldOptions, ReplacementFieldOptions as FilterReplacementFieldOptions, SimpleFieldOptions as FilterSimpleFieldOptions } from "mikro-orm-filter-query-schema";
|
|
2
|
+
export interface BaseFieldOptions {
|
|
3
|
+
filterable?: boolean;
|
|
4
|
+
searchable?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface SortableFieldOptions {
|
|
7
|
+
sortable?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export type SimpleFieldOptions<Entity extends object, Type extends FieldType = never> = FilterSimpleFieldOptions<Entity, Type> & BaseFieldOptions & SortableFieldOptions;
|
|
10
|
+
export type ReplacementFieldOptions<Entity extends object, Type extends FieldType = never, Field extends string = never> = FilterReplacementFieldOptions<Entity, Type, Field> & BaseFieldOptions & SortableFieldOptions;
|
|
11
|
+
export type ReplacementFunctionFieldOptions<Entity extends object, Type extends FieldType = never> = FilterReplacementCallbackFieldOptions<Entity, Type> & BaseFieldOptions & SortableFieldOptions;
|
|
12
|
+
export type FieldOptions<Entity extends object, Type extends FieldType = never, Field extends string = never> = SimpleFieldOptions<Entity, Type> | ReplacementFieldOptions<Entity, Type, Field> | ReplacementFunctionFieldOptions<Entity, Type>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-options.type.js","sourceRoot":"","sources":["../../src/types/field-options.type.ts"],"names":[],"mappings":""}
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/index.js
CHANGED
|
@@ -15,4 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./connection-class.type"), exports);
|
|
18
|
+
__exportStar(require("./field-options.type"), exports);
|
|
18
19
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,uDAAqC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FilterQuery } from "@mikro-orm/core";
|
|
2
2
|
import { type Type } from "@nestjs/common";
|
|
3
3
|
import { GraphQLScalarType } from "graphql";
|
|
4
|
+
import type { FieldType } from "mikro-orm-filter-query-schema";
|
|
4
5
|
import { ConnectionArgsInterface, FieldOptions, OrderInterface } from "../interfaces";
|
|
5
|
-
|
|
6
|
-
export declare function createConnectionArgs<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, any, any>>, OrderClass: Type<OrderInterface<Entity>>, FilterScalar: GraphQLScalarType<FilterQuery<Entity>, FilterValue>): Type<ConnectionArgsInterface<Entity>>;
|
|
6
|
+
export declare function createConnectionArgs<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>, OrderClass: Type<OrderInterface<Entity>>, FilterScalar: GraphQLScalarType<FilterQuery<Entity>>): Type<ConnectionArgsInterface<Entity>>;
|
|
@@ -30,6 +30,13 @@ function createConnectionArgs(entityName, fieldOptionsMap, OrderClass, FilterSca
|
|
|
30
30
|
}),
|
|
31
31
|
__metadata("design:type", String)
|
|
32
32
|
], ConnectionArgs.prototype, "query", void 0);
|
|
33
|
+
__decorate([
|
|
34
|
+
(0, graphql_1.Field)(() => FilterScalar, {
|
|
35
|
+
nullable: true,
|
|
36
|
+
description: `Filter ${humanizeAndPluralizeEntityName} using MongoDB query syntax.`,
|
|
37
|
+
}),
|
|
38
|
+
__metadata("design:type", Object)
|
|
39
|
+
], ConnectionArgs.prototype, "filter", void 0);
|
|
33
40
|
__decorate([
|
|
34
41
|
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
35
42
|
nullable: true,
|
|
@@ -65,13 +72,6 @@ function createConnectionArgs(entityName, fieldOptionsMap, OrderClass, FilterSca
|
|
|
65
72
|
}),
|
|
66
73
|
__metadata("design:type", Object)
|
|
67
74
|
], ConnectionArgs.prototype, "orderBy", void 0);
|
|
68
|
-
__decorate([
|
|
69
|
-
(0, graphql_1.Field)(() => FilterScalar, {
|
|
70
|
-
nullable: true,
|
|
71
|
-
description: `Filter ${humanizeAndPluralizeEntityName} using MongoDB query syntax.`,
|
|
72
|
-
}),
|
|
73
|
-
__metadata("design:type", Object)
|
|
74
|
-
], ConnectionArgs.prototype, "filter", void 0);
|
|
75
75
|
ConnectionArgs = __decorate([
|
|
76
76
|
(0, graphql_1.ArgsType)(`${entityName}ConnectionArgs`)
|
|
77
77
|
], ConnectionArgs);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-connection-args.js","sourceRoot":"","sources":["../../src/utils/create-connection-args.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,oDAkEC;AA9ED,gDAA0D;AAG1D,2CAAiD;AASjD,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"create-connection-args.js","sourceRoot":"","sources":["../../src/utils/create-connection-args.ts"],"names":[],"mappings":";;;;;;;;;;;AAaA,oDAkEC;AA9ED,gDAA0D;AAG1D,2CAAiD;AASjD,SAAgB,oBAAoB,CAClC,UAAkB,EAClB,eAAqE,EACrE,UAAwC,EACxC,YAAoD;IAEpD,MAAM,8BAA8B,GAAG,IAAA,sBAAS,EAAC,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,gBAAgB,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAC3D,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAC5B,CAAC;IAGF,IAAM,cAAc,GAApB,MAAM,cAAc;KAkDnB,CAAA;IAvCC;QAVC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,QAAQ,EAAE,IAAI;YACd,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;gBAC7B,CAAC,CAAC;oBACE,WAAW,EAAE,8EAA8E,gBAAgB;yBACxG,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;yBAClC,IAAI,CAAC,IAAI,CAAC,EAAE;iBAChB;gBACH,CAAC,CAAC,EAAE,CAAC;SACR,CAAC;;iDACa;IAOf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAY,EAAE;YACzB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,UAAU,8BAA8B,8BAA8B;SACpF,CAAC;;kDAC2B;IAM7B;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qDAAqD;SACnE,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,oDAAoD;SAClE,CAAC;;gDACY;IAMd;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,4DAA4D;YACzE,QAAQ,EAAE,IAAI;SACf,CAAC;;iDACa;IAMf;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,MAAM,EAAE;YACnB,WAAW,EAAE,6DAA6D;YAC1E,QAAQ,EAAE,IAAI;SACf,CAAC;;kDACc;IAOhB;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAU,EAAE;YACvB,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,qCAAqC,8BAA8B,GAAG;SACpF,CAAC;;mDAC+B;IAjD7B,cAAc;QADnB,IAAA,kBAAQ,EAAC,GAAG,UAAU,gBAAgB,CAAC;OAClC,cAAc,CAkDnB;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -1,4 +1,6 @@
|
|
|
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 type { FieldType } from "mikro-orm-filter-query-schema";
|
|
4
|
+
import type { ZodType } from "zod";
|
|
3
5
|
import { ConnectionInterface, EdgeInterface, FieldOptions } from "../interfaces";
|
|
4
|
-
export declare function createConnection<Entity extends object>(entityClass: EntityClass<Entity>, entityName: string, EdgeClass: Type<EdgeInterface<Entity>>, fieldOptionsMap: Map<string, FieldOptions<Entity,
|
|
6
|
+
export declare function createConnection<Entity extends object>(entityClass: EntityClass<Entity>, entityName: string, EdgeClass: Type<EdgeInterface<Entity>>, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>, filterQuerySchema: ZodType<FilterQuery<Entity>>): Type<ConnectionInterface<Entity>>;
|
|
@@ -14,7 +14,7 @@ const graphql_1 = require("@nest-boot/graphql");
|
|
|
14
14
|
const inflection_1 = require("inflection");
|
|
15
15
|
const graphql_connection_constants_1 = require("../graphql-connection.constants");
|
|
16
16
|
const objects_1 = require("../objects");
|
|
17
|
-
function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap) {
|
|
17
|
+
function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap, filterQuerySchema) {
|
|
18
18
|
const pluralizeEntityName = (0, inflection_1.pluralize)(entityName);
|
|
19
19
|
let Connection = class Connection {
|
|
20
20
|
};
|
|
@@ -43,6 +43,7 @@ function createConnection(entityClass, entityName, EdgeClass, fieldOptionsMap) {
|
|
|
43
43
|
Reflect.metadata(graphql_connection_constants_1.GRAPHQL_CONNECTION_METADATA, {
|
|
44
44
|
entityClass,
|
|
45
45
|
fieldOptionsMap,
|
|
46
|
+
filterQuerySchema,
|
|
46
47
|
}),
|
|
47
48
|
(0, graphql_1.ObjectType)(`${entityName}Connection`, {
|
|
48
49
|
isAbstract: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-connection.js","sourceRoot":"","sources":["../../src/utils/create-connection.ts"],"names":[],"mappings":";;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create-connection.js","sourceRoot":"","sources":["../../src/utils/create-connection.ts"],"names":[],"mappings":";;;;;;;;;;;AAgBA,4CAwCC;AAvDD,gDAA4D;AAE5D,2CAAuC;AAIvC,kFAA8E;AAO9E,wCAAsC;AAEtC,SAAgB,gBAAgB,CAC9B,WAAgC,EAChC,UAAkB,EAClB,SAAsC,EACtC,eAAqE,EACrE,iBAA+C;IAE/C,MAAM,mBAAmB,GAAG,IAAA,sBAAS,EAAC,UAAU,CAAC,CAAC;IAWlD,IAAM,UAAU,GAAhB,MAAM,UAAU;KAmBf,CAAA;IAbC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE;YACxB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,kBAAkB;SAChC,CAAC;;6CAC8B;IAMhC;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,kBAAQ,EAAE;YACrB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,mCAAmC;SACjD,CAAC;kCACS,kBAAQ;gDAAC;IAMpB;QAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;YAChB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,wDAAwD;SACtE,CAAC;;kDACkB;IAlBhB,UAAU;QATf,OAAO,CAAC,QAAQ,CAAC,0DAA2B,EAAE;YAC7C,WAAW;YACX,eAAe;YACf,iBAAiB;SACmB,CAAC;QACtC,IAAA,oBAAU,EAAC,GAAG,UAAU,YAAY,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,0DAA0D,mBAAmB,GAAG;SAC9F,CAAC;OACI,UAAU,CAmBf;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { FilterQuery } from "@mikro-orm/core";
|
|
2
2
|
import { GraphQLScalarType } from "graphql";
|
|
3
|
+
import { FieldType, FilterOptions, FilterQuerySchemaBuilder } from "mikro-orm-filter-query-schema";
|
|
3
4
|
import { FieldOptions } from "../interfaces";
|
|
4
|
-
export type
|
|
5
|
-
export
|
|
5
|
+
export type FilterQuerySchema<Entity extends object> = ReturnType<FilterQuerySchemaBuilder<Entity>["build"]>;
|
|
6
|
+
export interface CreateFilterResult<Entity extends object> {
|
|
7
|
+
Filter: GraphQLScalarType<FilterQuery<Entity>>;
|
|
8
|
+
filterQuerySchema: FilterQuerySchema<Entity>;
|
|
9
|
+
}
|
|
10
|
+
export declare function createFilter<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>, filterOptions?: FilterOptions): CreateFilterResult<Entity>;
|
|
@@ -2,67 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createFilter = createFilter;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
|
-
const
|
|
6
|
-
const errors_1 = require("../errors");
|
|
7
|
-
const comparisonOperators = [
|
|
8
|
-
"$eq",
|
|
9
|
-
"$ne",
|
|
10
|
-
"$gt",
|
|
11
|
-
"$gte",
|
|
12
|
-
"$lt",
|
|
13
|
-
"$lte",
|
|
14
|
-
"$in",
|
|
15
|
-
"$nin",
|
|
16
|
-
"$like",
|
|
17
|
-
"$ilike",
|
|
18
|
-
"$re",
|
|
19
|
-
"$fulltext",
|
|
20
|
-
"$contains",
|
|
21
|
-
"$overlap",
|
|
22
|
-
];
|
|
23
|
-
const logicalOperators = ["$and", "$or", "$not"];
|
|
24
|
-
function createComparisonSchema() {
|
|
25
|
-
const primitiveSchema = zod_1.z.union([
|
|
26
|
-
zod_1.z.string(),
|
|
27
|
-
zod_1.z.number(),
|
|
28
|
-
zod_1.z.boolean(),
|
|
29
|
-
zod_1.z.null(),
|
|
30
|
-
]);
|
|
31
|
-
const comparisonObjectSchema = zod_1.z
|
|
32
|
-
.object({
|
|
33
|
-
$eq: primitiveSchema.optional(),
|
|
34
|
-
$ne: primitiveSchema.optional(),
|
|
35
|
-
$gt: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
|
|
36
|
-
$gte: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
|
|
37
|
-
$lt: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
|
|
38
|
-
$lte: zod_1.z.union([zod_1.z.string(), zod_1.z.number()]).optional(),
|
|
39
|
-
$in: zod_1.z.array(primitiveSchema).optional(),
|
|
40
|
-
$nin: zod_1.z.array(primitiveSchema).optional(),
|
|
41
|
-
$like: zod_1.z.string().optional(),
|
|
42
|
-
$ilike: zod_1.z.string().optional(),
|
|
43
|
-
$re: zod_1.z.string().optional(),
|
|
44
|
-
$fulltext: zod_1.z.string().optional(),
|
|
45
|
-
$contains: zod_1.z.array(primitiveSchema).optional(),
|
|
46
|
-
$overlap: zod_1.z.array(primitiveSchema).optional(),
|
|
47
|
-
})
|
|
48
|
-
.strict();
|
|
49
|
-
return zod_1.z.union([primitiveSchema, comparisonObjectSchema]);
|
|
50
|
-
}
|
|
51
|
-
function createFilterSchema() {
|
|
52
|
-
const comparisonSchema = createComparisonSchema();
|
|
53
|
-
const baseFilterSchema = zod_1.z.lazy(() => zod_1.z.union([
|
|
54
|
-
zod_1.z
|
|
55
|
-
.object({
|
|
56
|
-
$and: zod_1.z.array(baseFilterSchema).optional(),
|
|
57
|
-
$or: zod_1.z.array(baseFilterSchema).optional(),
|
|
58
|
-
$not: baseFilterSchema.optional(),
|
|
59
|
-
})
|
|
60
|
-
.catchall(comparisonSchema),
|
|
61
|
-
zod_1.z.record(zod_1.z.string(), comparisonSchema),
|
|
62
|
-
]));
|
|
63
|
-
return baseFilterSchema;
|
|
64
|
-
}
|
|
65
|
-
const filterSchema = createFilterSchema();
|
|
5
|
+
const mikro_orm_filter_query_schema_1 = require("mikro-orm-filter-query-schema");
|
|
66
6
|
function parseJson(value) {
|
|
67
7
|
if (typeof value === "string") {
|
|
68
8
|
try {
|
|
@@ -74,13 +14,6 @@ function parseJson(value) {
|
|
|
74
14
|
}
|
|
75
15
|
return value;
|
|
76
16
|
}
|
|
77
|
-
function validateSchema(value) {
|
|
78
|
-
const result = filterSchema.safeParse(value);
|
|
79
|
-
if (!result.success) {
|
|
80
|
-
throw new Error(`Invalid filter: ${result.error.message}`);
|
|
81
|
-
}
|
|
82
|
-
return result.data;
|
|
83
|
-
}
|
|
84
17
|
function parseLiteralValue(ast) {
|
|
85
18
|
switch (ast.kind) {
|
|
86
19
|
case graphql_1.Kind.STRING:
|
|
@@ -107,103 +40,30 @@ function parseLiteralValue(ast) {
|
|
|
107
40
|
throw new Error(`Unexpected AST kind: ${ast.kind}`);
|
|
108
41
|
}
|
|
109
42
|
}
|
|
110
|
-
function
|
|
111
|
-
if (filter === null || typeof filter !== "object") {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
for (const key of Object.keys(filter)) {
|
|
115
|
-
if (logicalOperators.includes(key)) {
|
|
116
|
-
const value = filter[key];
|
|
117
|
-
if (key === "$not" && value !== null && typeof value === "object") {
|
|
118
|
-
validateFilterFields(value, fieldOptionsMap, false);
|
|
119
|
-
}
|
|
120
|
-
else if (Array.isArray(value)) {
|
|
121
|
-
for (const item of value) {
|
|
122
|
-
validateFilterFields(item, fieldOptionsMap, false);
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
continue;
|
|
126
|
-
}
|
|
127
|
-
if (comparisonOperators.includes(key)) {
|
|
128
|
-
if (!inFieldComparison) {
|
|
129
|
-
throw new Error(`Comparison operator '${key}' is not allowed at root level. Use it inside a field object, e.g., { "fieldName": { "${key}": value } }`);
|
|
130
|
-
}
|
|
131
|
-
continue;
|
|
132
|
-
}
|
|
133
|
-
const fieldOptions = fieldOptionsMap.get(key);
|
|
134
|
-
if (typeof fieldOptions === "undefined") {
|
|
135
|
-
throw new errors_1.UnknownFieldError(key);
|
|
136
|
-
}
|
|
137
|
-
if (fieldOptions.filterable === false) {
|
|
138
|
-
throw new Error(`Field '${key}' is not filterable`);
|
|
139
|
-
}
|
|
140
|
-
const fieldValue = filter[key];
|
|
141
|
-
if (fieldValue !== null &&
|
|
142
|
-
typeof fieldValue === "object" &&
|
|
143
|
-
!Array.isArray(fieldValue)) {
|
|
144
|
-
validateFilterFields(fieldValue, fieldOptionsMap, true);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
function applyReplacement(filter, fieldOptionsMap) {
|
|
149
|
-
if (filter === null || typeof filter !== "object") {
|
|
150
|
-
return filter;
|
|
151
|
-
}
|
|
152
|
-
const result = {};
|
|
153
|
-
for (const key of Object.keys(filter)) {
|
|
154
|
-
const value = filter[key];
|
|
155
|
-
if (logicalOperators.includes(key)) {
|
|
156
|
-
if (key === "$not" && value !== null && typeof value === "object") {
|
|
157
|
-
result[key] = applyReplacement(value, fieldOptionsMap);
|
|
158
|
-
}
|
|
159
|
-
else if (Array.isArray(value)) {
|
|
160
|
-
result[key] = value.map((item) => applyReplacement(item, fieldOptionsMap));
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
163
|
-
result[key] = value;
|
|
164
|
-
}
|
|
165
|
-
continue;
|
|
166
|
-
}
|
|
167
|
-
const fieldOptions = fieldOptionsMap.get(key);
|
|
168
|
-
if (typeof fieldOptions !== "undefined") {
|
|
169
|
-
const replacement = fieldOptions
|
|
170
|
-
.replacement;
|
|
171
|
-
const targetKey = typeof replacement === "string" ? replacement : fieldOptions.field;
|
|
172
|
-
if (value !== null &&
|
|
173
|
-
typeof value === "object" &&
|
|
174
|
-
!Array.isArray(value)) {
|
|
175
|
-
result[targetKey] = applyReplacement(value, fieldOptionsMap);
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
result[targetKey] = value;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
else {
|
|
182
|
-
result[key] = value;
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
return result;
|
|
186
|
-
}
|
|
187
|
-
function createFilter(entityName, fieldOptionsMap) {
|
|
43
|
+
function createFilter(entityName, fieldOptionsMap, filterOptions) {
|
|
188
44
|
const filterableFields = [...fieldOptionsMap.values()]
|
|
189
|
-
.filter((field) => field.filterable)
|
|
45
|
+
.filter((field) => field.filterable !== false)
|
|
190
46
|
.map((field) => field.field);
|
|
191
|
-
|
|
47
|
+
const builder = new mikro_orm_filter_query_schema_1.FilterQuerySchemaBuilder(filterOptions);
|
|
48
|
+
for (const [, options] of fieldOptionsMap) {
|
|
49
|
+
if (options.filterable !== false) {
|
|
50
|
+
builder.addField(options);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const filterQuerySchema = builder.build();
|
|
54
|
+
const Filter = new graphql_1.GraphQLScalarType({
|
|
192
55
|
name: `${entityName}Filter`,
|
|
193
56
|
description: `A filter for ${entityName} that accepts MongoDB query syntax.\nSupported fields: ${filterableFields.join(", ")}`,
|
|
194
57
|
serialize: (value) => value,
|
|
195
58
|
parseValue: (value) => {
|
|
196
59
|
const parsed = parseJson(value);
|
|
197
|
-
|
|
198
|
-
validateFilterFields(validated, fieldOptionsMap);
|
|
199
|
-
return applyReplacement(validated, fieldOptionsMap);
|
|
60
|
+
return filterQuerySchema.parse(parsed);
|
|
200
61
|
},
|
|
201
62
|
parseLiteral: (ast) => {
|
|
202
63
|
const parsed = parseLiteralValue(ast);
|
|
203
|
-
|
|
204
|
-
validateFilterFields(validated, fieldOptionsMap);
|
|
205
|
-
return applyReplacement(validated, fieldOptionsMap);
|
|
64
|
+
return filterQuerySchema.parse(parsed);
|
|
206
65
|
},
|
|
207
66
|
});
|
|
67
|
+
return { Filter, filterQuerySchema };
|
|
208
68
|
}
|
|
209
69
|
//# sourceMappingURL=create-filter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-filter.js","sourceRoot":"","sources":["../../src/utils/create-filter.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"create-filter.js","sourceRoot":"","sources":["../../src/utils/create-filter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { type Type } from "@nestjs/common";
|
|
2
|
+
import type { FieldType } from "mikro-orm-filter-query-schema";
|
|
2
3
|
import { FieldOptions, OrderFieldType, OrderInterface } from "../interfaces";
|
|
3
4
|
export interface CreateOrderResult<Entity extends object> {
|
|
4
5
|
Order: Type<OrderInterface<Entity>>;
|
|
5
6
|
OrderField: OrderFieldType<Entity>;
|
|
6
7
|
}
|
|
7
|
-
export declare function createOrder<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity,
|
|
8
|
+
export declare function createOrder<Entity extends object>(entityName: string, fieldOptionsMap: Map<string, FieldOptions<Entity, FieldType, string>>): CreateOrderResult<Entity>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-order.js","sourceRoot":"","sources":["../../src/utils/create-order.ts"],"names":[],"mappings":";;;;;;;;;;;AAmBA,kCA2CC;AA9DD,gDAAwE;AAExE,2CAA6D;
|
|
1
|
+
{"version":3,"file":"create-order.js","sourceRoot":"","sources":["../../src/utils/create-order.ts"],"names":[],"mappings":";;;;;;;;;;;AAmBA,kCA2CC;AA9DD,gDAAwE;AAExE,2CAA6D;AAG7D,oCAA0C;AAc1C,SAAgB,WAAW,CACzB,UAAkB,EAClB,eAAqE;IAErE,MAAM,kBAAkB,GAAG,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACtD,MAAM,8BAA8B,GAAG,IAAA,sBAAS,EAAC,IAAA,qBAAQ,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,MAAM,cAAc,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,KAAK,EAAE,EAAE,CAAE,KAA8B,EAAE,QAAQ,CACrD,CAAC;IAEF,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CACtC,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE;QACvB,OAAO;YACL,GAAG,MAAM;YACT,CAAC,IAAA,uBAAU,EAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,EAC3C,YAAyC,CAAC,WAAW;gBACtD,YAAY,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC,EACD,EAAE,EAAE,EAAE,IAAI,EAAuC,CAClD,CAAC;IAEF,IAAA,0BAAgB,EAAC,UAAU,EAAE;QAC3B,IAAI,EAAE,GAAG,UAAU,YAAY;QAC/B,WAAW,EAAE,uBAAuB,kBAAkB,8BAA8B;KACrF,CAAC,CAAC;IAKH,IAAM,KAAK,GAAX,MAAM,KAAK;KASV,CAAA;IAJC;QAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAoB,EAAE;YACjC,WAAW,EAAE,sBAAsB,8BAA8B,MAAM;SACxE,CAAC;;wCAC4B;IAG9B;QADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,sBAAc,EAAE,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;;4CAC7C;IARvB,KAAK;QAHV,IAAA,mBAAS,EAAC,GAAG,UAAU,OAAO,EAAE;YAC/B,WAAW,EAAE,wBAAwB,kBAAkB,cAAc;SACtE,CAAC;OACI,KAAK,CASV;IAED,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC/B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nest-boot/graphql-connection",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.5.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "d4rkcr0w <me@d4rkcr0w.com>",
|
|
6
6
|
"homepage": "",
|
|
@@ -14,10 +14,11 @@
|
|
|
14
14
|
"dist"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"chevrotain": "10.5.0",
|
|
18
17
|
"inflection": "^3.0.2",
|
|
19
18
|
"lodash": "^4.17.21",
|
|
20
|
-
"
|
|
19
|
+
"mikro-orm-filter-query-schema": "^1.1.0",
|
|
20
|
+
"search-syntax": "^3.5.0",
|
|
21
|
+
"zod": "^4.1.13"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@mikro-orm/core": "^6.5.8",
|
|
@@ -39,7 +40,7 @@
|
|
|
39
40
|
"rxjs": "^7.8.2",
|
|
40
41
|
"ts-jest": "^29.4.4",
|
|
41
42
|
"typescript": "^5.9.3",
|
|
42
|
-
"@nest-boot/eslint-config": "^7.0.
|
|
43
|
+
"@nest-boot/eslint-config": "^7.0.2",
|
|
43
44
|
"@nest-boot/eslint-plugin": "^7.0.2",
|
|
44
45
|
"@nest-boot/graphql": "^7.1.1",
|
|
45
46
|
"@nest-boot/tsconfig": "^7.0.0"
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ComparatorOperator = void 0;
|
|
4
|
-
var ComparatorOperator;
|
|
5
|
-
(function (ComparatorOperator) {
|
|
6
|
-
ComparatorOperator["EQ"] = "$eq";
|
|
7
|
-
ComparatorOperator["LT"] = "$lt";
|
|
8
|
-
ComparatorOperator["GT"] = "$gt";
|
|
9
|
-
ComparatorOperator["LTE"] = "$lte";
|
|
10
|
-
ComparatorOperator["GTE"] = "$gte";
|
|
11
|
-
ComparatorOperator["IN"] = "$in";
|
|
12
|
-
ComparatorOperator["CONTAINS"] = "$contains";
|
|
13
|
-
ComparatorOperator["FULLTEXT"] = "$fulltext";
|
|
14
|
-
ComparatorOperator["LIKE"] = "$like";
|
|
15
|
-
})(ComparatorOperator || (exports.ComparatorOperator = ComparatorOperator = {}));
|
|
16
|
-
//# sourceMappingURL=comparator-operator.enum.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comparator-operator.enum.js","sourceRoot":"","sources":["../../src/enums/comparator-operator.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAUX;AAVD,WAAY,kBAAkB;IAC5B,gCAAU,CAAA;IACV,gCAAU,CAAA;IACV,gCAAU,CAAA;IACV,kCAAY,CAAA;IACZ,kCAAY,CAAA;IACZ,gCAAU,CAAA;IACV,4CAAsB,CAAA;IACtB,4CAAsB,CAAA;IACtB,oCAAc,CAAA;AAChB,CAAC,EAVW,kBAAkB,kCAAlB,kBAAkB,QAU7B"}
|
package/dist/errors/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./unknown-field.error";
|
package/dist/errors/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
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("./unknown-field.error"), exports);
|
|
18
|
-
//# sourceMappingURL=index.js.map
|
package/dist/errors/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnknownFieldError = void 0;
|
|
4
|
-
class UnknownFieldError extends Error {
|
|
5
|
-
constructor(field) {
|
|
6
|
-
super(`Unknown field: ${field}`);
|
|
7
|
-
this.field = field;
|
|
8
|
-
this.name = "UnknownFieldError";
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.UnknownFieldError = UnknownFieldError;
|
|
12
|
-
//# sourceMappingURL=unknown-field.error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unknown-field.error.js","sourceRoot":"","sources":["../../src/errors/unknown-field.error.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IAC1C,YAA4B,KAAa;QACvC,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;QADP,UAAK,GAAL,KAAK,CAAQ;QAEvC,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;CACF;AALD,8CAKC"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { FilterQuery } from "@mikro-orm/core";
|
|
2
|
-
import { AutoPath } from "@mikro-orm/core/typings";
|
|
3
|
-
import { ReplacementArgs } from "./replacement-args.interface";
|
|
4
|
-
export interface BaseFieldOptions<Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> {
|
|
5
|
-
type: Type;
|
|
6
|
-
field: string;
|
|
7
|
-
array?: boolean;
|
|
8
|
-
fulltext?: boolean;
|
|
9
|
-
searchable?: boolean;
|
|
10
|
-
filterable?: boolean;
|
|
11
|
-
}
|
|
12
|
-
export interface SortableFieldOptions<Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends BaseFieldOptions<Type> {
|
|
13
|
-
sortable?: boolean;
|
|
14
|
-
}
|
|
15
|
-
export interface SimpleFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends SortableFieldOptions<Type> {
|
|
16
|
-
field: Extract<keyof Entity, string>;
|
|
17
|
-
}
|
|
18
|
-
export interface ReplacementFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never, Field extends string = never> extends SortableFieldOptions<Type> {
|
|
19
|
-
replacement: Extract<AutoPath<Entity, Field>, string>;
|
|
20
|
-
}
|
|
21
|
-
export interface ReplacementFunctionFieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> extends BaseFieldOptions<Type> {
|
|
22
|
-
replacement?: (args: ReplacementArgs<Type>) => FilterQuery<Entity>;
|
|
23
|
-
}
|
|
24
|
-
export type FieldOptions<Entity extends object, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never, Field extends string = never> = SimpleFieldOptions<Entity, Type> | ReplacementFieldOptions<Entity, Type, Field> | ReplacementFunctionFieldOptions<Entity, Type>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"field-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/field-options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { EntityManager } from "@mikro-orm/core";
|
|
2
|
-
import { type ComparatorOperator } from "../enums";
|
|
3
|
-
export interface ReplacementArgs<Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> {
|
|
4
|
-
entityManager: EntityManager;
|
|
5
|
-
type: Type;
|
|
6
|
-
field: string;
|
|
7
|
-
operator: ComparatorOperator;
|
|
8
|
-
value: (Type extends "string" ? string : Type extends "number" ? number : Type extends "bigint" ? bigint : Type extends "boolean" ? boolean : Date) | (Type extends "string" ? string : Type extends "number" ? number : Type extends "bigint" ? bigint : Type extends "boolean" ? boolean : Date)[];
|
|
9
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"replacement-args.interface.js","sourceRoot":"","sources":["../../src/interfaces/replacement-args.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { FilterQuery } from "@mikro-orm/core";
|
|
2
|
-
import { AutoPath } from "@mikro-orm/core/typings";
|
|
3
|
-
import { ReplacementArgs } from "./replacement-args.interface";
|
|
4
|
-
export interface SearchSyntaxFieldOptions<Entity extends object, Fields extends string = never, Type extends "string" | "number" | "bigint" | "boolean" | "date" = never> {
|
|
5
|
-
field: string;
|
|
6
|
-
type: Type;
|
|
7
|
-
replacement?: AutoPath<Entity, Fields> | ((args: ReplacementArgs<Type>) => FilterQuery<Entity>);
|
|
8
|
-
array?: boolean;
|
|
9
|
-
fulltext?: boolean;
|
|
10
|
-
searchable?: boolean;
|
|
11
|
-
filterable?: boolean;
|
|
12
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-syntax-field-options.interface.js","sourceRoot":"","sources":["../../src/interfaces/search-syntax-field-options.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const chevrotain_1 = require("chevrotain");
|
|
4
|
-
const fs_1 = require("fs");
|
|
5
|
-
const path_1 = require("path");
|
|
6
|
-
const search_syntax_parser_1 = require("../search-syntax.parser");
|
|
7
|
-
(0, fs_1.writeFileSync)((0, path_1.resolve)(__dirname, "./cst.d.ts"), `/* eslint-disable */\n${(0, chevrotain_1.generateCstDts)(search_syntax_parser_1.searchSyntaxParser.getGAstProductions())}`);
|
|
8
|
-
//# sourceMappingURL=generate-cst-dts.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generate-cst-dts.js","sourceRoot":"","sources":["../../src/scripts/generate-cst-dts.ts"],"names":[],"mappings":";;AAAA,2CAA4C;AAC5C,2BAAmC;AACnC,+BAA+B;AAE/B,kEAA6D;AAE7D,IAAA,kBAAa,EACX,IAAA,cAAO,EAAC,SAAS,EAAE,YAAY,CAAC,EAChC,yBAAyB,IAAA,2BAAc,EAAC,yCAAkB,CAAC,kBAAkB,EAAE,CAAC,EAAE,CACnF,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.searchSyntaxLexer = exports.SearchSyntaxLexer = void 0;
|
|
4
|
-
const chevrotain_1 = require("chevrotain");
|
|
5
|
-
const tokens_1 = require("./tokens");
|
|
6
|
-
class SearchSyntaxLexer extends chevrotain_1.Lexer {
|
|
7
|
-
constructor() {
|
|
8
|
-
super(tokens_1.tokens);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
exports.SearchSyntaxLexer = SearchSyntaxLexer;
|
|
12
|
-
exports.searchSyntaxLexer = new SearchSyntaxLexer();
|
|
13
|
-
//# sourceMappingURL=search-syntax.lexer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-syntax.lexer.js","sourceRoot":"","sources":["../src/search-syntax.lexer.ts"],"names":[],"mappings":";;;AAAA,2CAAmC;AAEnC,qCAAkC;AAElC,MAAa,iBAAkB,SAAQ,kBAAK;IAC1C;QACE,KAAK,CAAC,eAAM,CAAC,CAAC;IAChB,CAAC;CACF;AAJD,8CAIC;AAEY,QAAA,iBAAiB,GAAG,IAAI,iBAAiB,EAAE,CAAC"}
|