@ptc-org/nestjs-query-graphql 2.2.0-alpha.4 → 2.2.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/package.json +2 -2
- package/src/decorators/graphql-resolve-info.utils.js +1 -34
- package/src/decorators/graphql-resolve-info.utils.js.map +1 -1
- package/src/decorators/index.d.ts +0 -2
- package/src/decorators/index.js +0 -2
- package/src/decorators/index.js.map +1 -1
- package/src/decorators/relation.decorator.d.ts +1 -8
- package/src/decorators/relation.decorator.js +1 -2
- package/src/decorators/relation.decorator.js.map +1 -1
- package/src/loader/find-relations.loader.d.ts +2 -2
- package/src/loader/find-relations.loader.js +2 -2
- package/src/loader/find-relations.loader.js.map +1 -1
- package/src/resolvers/read.resolver.d.ts +3 -3
- package/src/resolvers/read.resolver.js +6 -12
- package/src/resolvers/read.resolver.js.map +1 -1
- package/src/resolvers/relations/read-relations.resolver.js +7 -13
- package/src/resolvers/relations/read-relations.resolver.js.map +1 -1
- package/src/resolvers/relations/relations.interface.d.ts +1 -5
- package/src/decorators/graphql-look-ahead-relations.decorator.d.ts +0 -5
- package/src/decorators/graphql-look-ahead-relations.decorator.js +0 -36
- package/src/decorators/graphql-look-ahead-relations.decorator.js.map +0 -1
- package/src/decorators/graphql-resolve-info.decorator.d.ts +0 -4
- package/src/decorators/graphql-resolve-info.decorator.js +0 -20
- package/src/decorators/graphql-resolve-info.decorator.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ptc-org/nestjs-query-graphql",
|
|
3
|
-
"version": "2.2.0
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Nestjs graphql query adapter",
|
|
5
5
|
"author": "doug-martin <doug@dougamartin.com>",
|
|
6
6
|
"homepage": "https://github.com/tripss/nestjs-query#readme",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"pluralize": "^8.0.0",
|
|
40
40
|
"tslib": "^2.4.0",
|
|
41
41
|
"upper-case-first": "^2.0.2",
|
|
42
|
-
"@ptc-org/nestjs-query-core": "2.2.0
|
|
42
|
+
"@ptc-org/nestjs-query-core": "2.2.0",
|
|
43
43
|
"lodash.merge": "4.6.2",
|
|
44
44
|
"reflect-metadata": "0.1.13"
|
|
45
45
|
},
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.simplifyResolveInfo = void 0;
|
|
4
4
|
const graphql_1 = require("graphql");
|
|
5
5
|
function getFieldFromAST(fieldNode, parentType) {
|
|
6
|
-
if (fieldNode.kind ===
|
|
6
|
+
if (fieldNode.kind === 'Field') {
|
|
7
7
|
if (!(parentType instanceof graphql_1.GraphQLUnionType)) {
|
|
8
8
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
9
9
|
return parentType.getFields()[fieldNode.name.value];
|
|
@@ -14,33 +14,8 @@ function getFieldFromAST(fieldNode, parentType) {
|
|
|
14
14
|
}
|
|
15
15
|
return undefined;
|
|
16
16
|
}
|
|
17
|
-
function getDirectiveValue(directive, info) {
|
|
18
|
-
const arg = directive.arguments[0]; // only arg on an include or skip directive is "if"
|
|
19
|
-
if (arg.value.kind !== graphql_1.Kind.VARIABLE) {
|
|
20
|
-
// eslint-disable-next-line
|
|
21
|
-
return !!arg.value['value'];
|
|
22
|
-
}
|
|
23
|
-
return info.variableValues[arg.value.name.value];
|
|
24
|
-
}
|
|
25
|
-
function getDirectiveResults(fieldNode, info) {
|
|
26
|
-
const directiveResult = {
|
|
27
|
-
shouldInclude: true,
|
|
28
|
-
shouldSkip: false
|
|
29
|
-
};
|
|
30
|
-
return fieldNode.directives.reduce((result, directive) => {
|
|
31
|
-
switch (directive.name.value) {
|
|
32
|
-
case 'include':
|
|
33
|
-
return { ...result, shouldInclude: getDirectiveValue(directive, info) };
|
|
34
|
-
case 'skip':
|
|
35
|
-
return { ...result, shouldSkip: getDirectiveValue(directive, info) };
|
|
36
|
-
default:
|
|
37
|
-
return result;
|
|
38
|
-
}
|
|
39
|
-
}, directiveResult);
|
|
40
|
-
}
|
|
41
17
|
function parseFieldNodes(inASTs, resolveInfo, initTree, parentType) {
|
|
42
18
|
const asts = Array.isArray(inASTs) ? inASTs : [inASTs];
|
|
43
|
-
// TODO:: If @include is false it is still here
|
|
44
19
|
return asts.reduce((tree, fieldNode) => {
|
|
45
20
|
const alias = fieldNode?.alias?.value ?? fieldNode.name.value;
|
|
46
21
|
const field = getFieldFromAST(fieldNode, parentType);
|
|
@@ -51,14 +26,6 @@ function parseFieldNodes(inASTs, resolveInfo, initTree, parentType) {
|
|
|
51
26
|
if (!fieldGqlTypeOrUndefined) {
|
|
52
27
|
return tree;
|
|
53
28
|
}
|
|
54
|
-
if (fieldNode.directives && fieldNode.directives.length) {
|
|
55
|
-
const { shouldInclude, shouldSkip } = getDirectiveResults(fieldNode, resolveInfo);
|
|
56
|
-
// field/fragment is not included if either the @skip condition is true or the @include condition is false
|
|
57
|
-
// https://facebook.github.io/graphql/draft/#sec--include
|
|
58
|
-
if (shouldSkip || !shouldInclude) {
|
|
59
|
-
return tree;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
29
|
const parsedField = {
|
|
63
30
|
name: fieldNode.name.value,
|
|
64
31
|
alias,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-resolve-info.utils.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/graphql-resolve-info.utils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"graphql-resolve-info.utils.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/graphql-resolve-info.utils.ts"],"names":[],"mappings":";;;AAAA,qCAA8H;AAoB9H,SAAS,eAAe,CACtB,SAAkB,EAClB,UAAgC;IAEhC,IAAI,SAAS,CAAC,IAAI,KAAK,OAAO,EAAE;QAC9B,IAAI,CAAC,CAAC,UAAU,YAAY,0BAAgB,CAAC,EAAE;YAC7C,+DAA+D;YAC/D,OAAO,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;SACpD;aAAM;YACL,qCAAqC;SACtC;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,eAAe,CACtB,MAAoD,EACpD,WAAwB,EACxB,QAAwC,EACxC,UAAgC;IAEhC,MAAM,IAAI,GAA6B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAEhF,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACrC,MAAM,KAAK,GAAW,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAA;QAErE,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACpD,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO,IAAI,CAAA;SACZ;QACD,MAAM,uBAAuB,GAAG,IAAA,sBAAY,EAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACxD,IAAI,CAAC,uBAAuB,EAAE;YAC5B,OAAO,IAAI,CAAA;SACZ;QAED,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;YAC1B,KAAK;YACL,IAAI,EAAE,IAAA,2BAAiB,EAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC;YAErE,MAAM,EACJ,SAAS,CAAC,YAAY,IAAI,IAAA,yBAAe,EAAC,uBAAuB,CAAC;gBAChE,CAAC,CAAC,eAAe,CACb,SAAS,CAAC,YAAY,CAAC,UAAU,EACjC,WAAW,EACX,EAA6B,EAC7B,uBAAuB,CACxB;gBACH,CAAC,CAAC,EAAE;SACgB,CAAA;QAE1B,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,WAAW,CAAA;SACnB;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,WAAW,CAAA;SAC1B;QAED,OAAO,IAAI,CAAA;IACb,CAAC,EAAE,QAAQ,CAAC,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CAAM,IAAa;IACxC,OAAO,OAAQ,IAAoD,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAA;AAClG,CAAC;AAED,SAAS,cAAc,CAAM,IAAa;IACxC,OAAO,OAAQ,IAAoD,CAAC,MAAM,CAAC,KAAK,KAAK,WAAW,CAAA;AAClG,CAAC;AAED,SAAgB,mBAAmB,CAAM,WAAwB;IAC/D,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAGrD,CAAA;IAE/C,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE;QAC9B,OAAO,UAAU,CAAC,MAAM,CAAC,KAA8B,CAAA;KACxD;SAAM,IAAI,cAAc,CAAC,UAAU,CAAC,EAAE;QACrC,OAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAA6B,CAAA;KACpE;IAED,OAAO,UAAmC,CAAA;AAC5C,CAAC;AAbD,kDAaC"}
|
|
@@ -3,8 +3,6 @@ export * from './authorize-filter.decorator';
|
|
|
3
3
|
export * from './authorizer.decorator';
|
|
4
4
|
export * from './decorator.utils';
|
|
5
5
|
export { FilterableField, FilterableFieldDescriptor, FilterableFieldOptions, getFilterableFields } from './filterable-field.decorator';
|
|
6
|
-
export * from './graphql-look-ahead-relations.decorator';
|
|
7
|
-
export * from './graphql-resolve-info.decorator';
|
|
8
6
|
export * from './hook.decorator';
|
|
9
7
|
export * from './hook-args.decorator';
|
|
10
8
|
export * from './id-field.decorator';
|
package/src/decorators/index.js
CHANGED
|
@@ -9,8 +9,6 @@ tslib_1.__exportStar(require("./decorator.utils"), exports);
|
|
|
9
9
|
var filterable_field_decorator_1 = require("./filterable-field.decorator");
|
|
10
10
|
Object.defineProperty(exports, "FilterableField", { enumerable: true, get: function () { return filterable_field_decorator_1.FilterableField; } });
|
|
11
11
|
Object.defineProperty(exports, "getFilterableFields", { enumerable: true, get: function () { return filterable_field_decorator_1.getFilterableFields; } });
|
|
12
|
-
tslib_1.__exportStar(require("./graphql-look-ahead-relations.decorator"), exports);
|
|
13
|
-
tslib_1.__exportStar(require("./graphql-resolve-info.decorator"), exports);
|
|
14
12
|
tslib_1.__exportStar(require("./hook.decorator"), exports);
|
|
15
13
|
tslib_1.__exportStar(require("./hook-args.decorator"), exports);
|
|
16
14
|
tslib_1.__exportStar(require("./id-field.decorator"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/index.ts"],"names":[],"mappings":";;;;AAAA,4EAAiD;AACjD,uEAA4C;AAC5C,iEAAsC;AACtC,4DAAiC;AACjC,2EAKqC;AAJnC,6HAAA,eAAe,OAAA;AAGf,iIAAA,mBAAmB,OAAA;AAErB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/index.ts"],"names":[],"mappings":";;;;AAAA,4EAAiD;AACjD,uEAA4C;AAC5C,iEAAsC;AACtC,4DAAiC;AACjC,2EAKqC;AAJnC,6HAAA,eAAe,OAAA;AAGf,iIAAA,mBAAmB,OAAA;AAErB,2DAAgC;AAChC,gEAAqC;AACrC,+DAAoC;AACpC,wEAA6C;AAC7C,+EAAoD;AACpD,uEAAyD;AAAhD,wHAAA,YAAY,OAAA;AACrB,8DAAmC;AACnC,+DAAoC;AACpC,oEAAyC;AACzC,6DAA4F;AAAnF,gHAAA,SAAS,OAAA;AAClB,2DAY6B;AAX3B,sHAAA,gBAAgB,OAAA;AAChB,gIAAA,0BAA0B,OAAA;AAC1B,gIAAA,0BAA0B,OAAA;AAC1B,wHAAA,kBAAkB,OAAA;AAClB,+HAAA,yBAAyB,OAAA;AACzB,kHAAA,YAAY,OAAA;AACZ,sHAAA,gBAAgB,OAAA;AAChB,8GAAA,QAAQ,OAAA;AAGR,qHAAA,eAAe,OAAA;AAEjB,qEAA0C;AAE1C,wEAA6C;AAC7C,qEAA0C;AAC1C,qFAAwG;AAA/F,uIAAA,oBAAoB,OAAA;AAC7B,8DAAmC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ArrayReflector, Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
-
import { RelationsOpts
|
|
2
|
+
import { RelationsOpts } from '../resolvers/relations';
|
|
3
3
|
import { ResolverManyRelation, ResolverOneRelation } from '../resolvers/relations/relations.interface';
|
|
4
4
|
import { BaseResolverOptions } from './resolver-method.decorator';
|
|
5
5
|
export declare const reflector: ArrayReflector;
|
|
@@ -7,13 +7,6 @@ export type RelationOneDecoratorOpts<Relation> = Omit<ResolverOneRelation<Relati
|
|
|
7
7
|
export type RelationManyDecoratorOpts<Relation> = Omit<ResolverManyRelation<Relation>, 'DTO' | 'allowFiltering'>;
|
|
8
8
|
export type RelationTypeFunc<Relation> = () => Class<Relation>;
|
|
9
9
|
export type RelationClassDecorator<DTO> = <Cls extends Class<DTO>>(DTOClass: Cls) => Cls | void;
|
|
10
|
-
export interface RelationDescriptor<Relation> {
|
|
11
|
-
name: string;
|
|
12
|
-
relationTypeFunc: RelationTypeFunc<Relation>;
|
|
13
|
-
isMany: boolean;
|
|
14
|
-
relationOpts?: Omit<ResolverRelation<Relation>, 'DTO'>;
|
|
15
|
-
}
|
|
16
|
-
export declare function getRelationsDescriptors<DTO>(DTOClass: Class<DTO>): RelationDescriptor<unknown>[];
|
|
17
10
|
export declare function getRelations<DTO>(DTOClass: Class<DTO>, opts?: BaseResolverOptions): RelationsOpts;
|
|
18
11
|
export declare const Relation: <DTO, Relation>(name: string, relationTypeFunc: RelationTypeFunc<Relation>, options?: RelationOneDecoratorOpts<Relation>) => RelationClassDecorator<DTO>;
|
|
19
12
|
export declare const FilterableRelation: <DTO, Relation>(name: string, relationTypeFunc: RelationTypeFunc<Relation>, options?: RelationOneDecoratorOpts<Relation>) => RelationClassDecorator<DTO>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FilterableCursorConnection = exports.CursorConnection = exports.FilterableOffsetConnection = exports.OffsetConnection = exports.FilterableUnPagedRelation = exports.UnPagedRelation = exports.FilterableRelation = exports.Relation = exports.getRelations = exports.
|
|
3
|
+
exports.FilterableCursorConnection = exports.CursorConnection = exports.FilterableOffsetConnection = exports.OffsetConnection = exports.FilterableUnPagedRelation = exports.UnPagedRelation = exports.FilterableRelation = exports.Relation = exports.getRelations = exports.reflector = void 0;
|
|
4
4
|
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
5
5
|
const common_1 = require("../common");
|
|
6
6
|
const paging_1 = require("../types/query/paging");
|
|
@@ -14,7 +14,6 @@ function getRelationsDescriptors(DTOClass) {
|
|
|
14
14
|
return [...inheritedRelations, ...relations];
|
|
15
15
|
}, []);
|
|
16
16
|
}
|
|
17
|
-
exports.getRelationsDescriptors = getRelationsDescriptors;
|
|
18
17
|
function convertRelationsToOpts(relations, baseOpts) {
|
|
19
18
|
const relationOpts = {};
|
|
20
19
|
relations.forEach((relation) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/relation.decorator.ts"],"names":[],"mappings":";;;AAAA,kEAAqF;AAErF,sCAAiD;AAGjD,kDAAwD;AACxD,2CAA0C;AAG7B,QAAA,SAAS,GAAG,IAAI,kCAAc,CAAC,wBAAY,CAAC,CAAA;AAczD,
|
|
1
|
+
{"version":3,"file":"relation.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/relation.decorator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Class, FindRelationOptions, QueryService
|
|
1
|
+
import { Class, FindRelationOptions, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
2
|
import { NestjsQueryDataloader } from './relations.loader';
|
|
3
3
|
export type FindRelationsArgs<DTO, Relation> = {
|
|
4
4
|
dto: DTO;
|
|
5
|
-
} & FindRelationOptions<Relation
|
|
5
|
+
} & FindRelationOptions<Relation>;
|
|
6
6
|
type FindRelationsOpts<Relation> = Omit<FindRelationOptions<Relation>, 'filter'>;
|
|
7
7
|
export declare class FindRelationsLoader<DTO, Relation> implements NestjsQueryDataloader<DTO, FindRelationsArgs<DTO, Relation>, Relation | undefined | Error> {
|
|
8
8
|
readonly RelationDTO: Class<Relation>;
|
|
@@ -15,9 +15,9 @@ class FindRelationsLoader {
|
|
|
15
15
|
async loadResults(service, findRelationsMap) {
|
|
16
16
|
const results = [];
|
|
17
17
|
await Promise.all([...findRelationsMap.values()].map(async (args) => {
|
|
18
|
-
const { filter, withDeleted
|
|
18
|
+
const { filter, withDeleted } = args[0];
|
|
19
19
|
const dtos = args.map((a) => a.dto);
|
|
20
|
-
const opts = { filter, withDeleted
|
|
20
|
+
const opts = { filter, withDeleted };
|
|
21
21
|
const relationResults = await service.findRelation(this.RelationDTO, this.relationName, dtos, opts);
|
|
22
22
|
const dtoRelations = dtos.map((dto) => relationResults.get(dto));
|
|
23
23
|
dtoRelations.forEach((relation, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find-relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/find-relations.loader.ts"],"names":[],"mappings":";;;AAQA,MAAa,mBAAmB;IAG9B,YAAqB,WAA4B,EAAW,YAAoB;QAA3D,gBAAW,GAAX,WAAW,CAAiB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAE7E,YAAY,CAAC,OAA4C,EAAE,IAAkC;QAClG,OAAO,KAAK,EAAE,IAAqD,EAA6C,EAAE;YAChH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3C,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA4C,EAC5C,gBAAiD;QAEjD,MAAM,OAAO,GAA6B,EAAE,CAAA;QAC5C,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"find-relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/find-relations.loader.ts"],"names":[],"mappings":";;;AAQA,MAAa,mBAAmB;IAG9B,YAAqB,WAA4B,EAAW,YAAoB;QAA3D,gBAAW,GAAX,WAAW,CAAiB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAE7E,YAAY,CAAC,OAA4C,EAAE,IAAkC;QAClG,OAAO,KAAK,EAAE,IAAqD,EAA6C,EAAE;YAChH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3C,CAAC,CAAA;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA4C,EAC5C,gBAAiD;QAEjD,MAAM,OAAO,GAA6B,EAAE,CAAA;QAC5C,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;YACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACnC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;YACpC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;YACnG,MAAM,YAAY,GAA6B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YAC1F,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;YACvC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CACH,CAAA;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;IAEO,UAAU,CAChB,SAA0D,EAC1D,IAAkC;QAElC,QAAQ;QACR,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC9C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACxB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;aACxB;YACD,oEAAoE;YACpE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;YACtD,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,IAAI,GAAG,EAAoE,CAAC,CAAA;IACjF,CAAC;CACF;AA/CD,kDA+CC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Class, Filter, QueryService
|
|
1
|
+
import { Class, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
2
|
import { ConnectionOptions, FindOneArgsType, InferConnectionTypeFromStrategy, PagingStrategies, QueryArgsTypeOpts } from '../types';
|
|
3
3
|
import { CursorQueryArgsTypeOpts, QueryType, StaticQueryType } from '../types/query';
|
|
4
4
|
import { ExtractPagingStrategy, ResolverClass, ResolverOpts, ServiceResolver } from './resolver.interface';
|
|
@@ -7,8 +7,8 @@ export type ReadResolverOpts<DTO> = {
|
|
|
7
7
|
QueryArgs?: StaticQueryType<DTO, PagingStrategies>;
|
|
8
8
|
} & ResolverOpts & QueryArgsTypeOpts<DTO> & Pick<ConnectionOptions, 'enableTotalCount'>;
|
|
9
9
|
export interface ReadResolver<DTO, PS extends PagingStrategies, QS extends QueryService<DTO, unknown, unknown>> extends ServiceResolver<DTO, QS> {
|
|
10
|
-
queryMany(query: QueryType<DTO, PagingStrategies>, authorizeFilter?: Filter<DTO
|
|
11
|
-
findById(id: FindOneArgsType, authorizeFilter?: Filter<DTO
|
|
10
|
+
queryMany(query: QueryType<DTO, PagingStrategies>, authorizeFilter?: Filter<DTO>): Promise<InferConnectionTypeFromStrategy<DTO, PS>>;
|
|
11
|
+
findById(id: FindOneArgsType, authorizeFilter?: Filter<DTO>): Promise<DTO | undefined>;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* @internal
|
|
@@ -34,15 +34,11 @@ const Readable = (DTOClass, opts) => (BaseClass) => {
|
|
|
34
34
|
(0, graphql_1.ArgsType)()
|
|
35
35
|
], FO);
|
|
36
36
|
let ReadResolverBase = class ReadResolverBase extends BaseClass {
|
|
37
|
-
async findById(input, authorizeFilter
|
|
38
|
-
return this.service.getById(input.id, {
|
|
39
|
-
filter: authorizeFilter,
|
|
40
|
-
withDeleted: opts?.one?.withDeleted,
|
|
41
|
-
relations
|
|
42
|
-
});
|
|
37
|
+
async findById(input, authorizeFilter) {
|
|
38
|
+
return this.service.getById(input.id, { filter: authorizeFilter, withDeleted: opts?.one?.withDeleted });
|
|
43
39
|
}
|
|
44
|
-
async queryMany(query, authorizeFilter
|
|
45
|
-
return ConnectionType.createFromPromise((q) => this.service.query(q), (0, nestjs_query_core_1.mergeQuery)(query, { filter: authorizeFilter
|
|
40
|
+
async queryMany(query, authorizeFilter) {
|
|
41
|
+
return ConnectionType.createFromPromise((q) => this.service.query(q), (0, nestjs_query_core_1.mergeQuery)(query, { filter: authorizeFilter }), (filter) => this.service.count(filter));
|
|
46
42
|
}
|
|
47
43
|
};
|
|
48
44
|
tslib_1.__decorate([
|
|
@@ -52,9 +48,8 @@ const Readable = (DTOClass, opts) => (BaseClass) => {
|
|
|
52
48
|
operationGroup: auth_1.OperationGroup.READ,
|
|
53
49
|
many: false
|
|
54
50
|
})),
|
|
55
|
-
tslib_1.__param(2, (0, decorators_1.GraphQLLookAheadRelations)(DTOClass)),
|
|
56
51
|
tslib_1.__metadata("design:type", Function),
|
|
57
|
-
tslib_1.__metadata("design:paramtypes", [FO, Object
|
|
52
|
+
tslib_1.__metadata("design:paramtypes", [FO, Object]),
|
|
58
53
|
tslib_1.__metadata("design:returntype", Promise)
|
|
59
54
|
], ReadResolverBase.prototype, "findById", null);
|
|
60
55
|
tslib_1.__decorate([
|
|
@@ -64,9 +59,8 @@ const Readable = (DTOClass, opts) => (BaseClass) => {
|
|
|
64
59
|
operationGroup: auth_1.OperationGroup.READ,
|
|
65
60
|
many: true
|
|
66
61
|
})),
|
|
67
|
-
tslib_1.__param(2, (0, decorators_1.GraphQLLookAheadRelations)(DTOClass)),
|
|
68
62
|
tslib_1.__metadata("design:type", Function),
|
|
69
|
-
tslib_1.__metadata("design:paramtypes", [QA, Object
|
|
63
|
+
tslib_1.__metadata("design:paramtypes", [QA, Object]),
|
|
70
64
|
tslib_1.__metadata("design:returntype", Promise)
|
|
71
65
|
], ReadResolverBase.prototype, "queryMany", null);
|
|
72
66
|
ReadResolverBase = tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/read.resolver.ts"],"names":[],"mappings":";;;;AAAA,6CAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"read.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/read.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,14 +25,10 @@ const ReadOneRelationMixin = (DTOClass, relation) => (Base) => {
|
|
|
25
25
|
const loaderName = `load${baseName}For${DTOClass.name}`;
|
|
26
26
|
const findLoader = new loader_1.FindRelationsLoader(relationDTO, relationName);
|
|
27
27
|
let ReadOneMixin = class ReadOneMixin extends Base {
|
|
28
|
-
async [_a = `find${baseName}`](dto, context, authFilter
|
|
29
|
-
return loader_1.DataLoaderFactory.getOrCreateLoader(context, loaderName, findLoader.createLoader(this.service, {
|
|
30
|
-
withDeleted: relation.withDeleted,
|
|
31
|
-
lookedAhead: relation.enableLookAhead
|
|
32
|
-
})).load({
|
|
28
|
+
async [_a = `find${baseName}`](dto, context, authFilter) {
|
|
29
|
+
return loader_1.DataLoaderFactory.getOrCreateLoader(context, loaderName, findLoader.createLoader(this.service, { withDeleted: relation.withDeleted })).load({
|
|
33
30
|
dto,
|
|
34
|
-
filter: authFilter
|
|
35
|
-
relations
|
|
31
|
+
filter: authFilter
|
|
36
32
|
});
|
|
37
33
|
}
|
|
38
34
|
};
|
|
@@ -44,9 +40,8 @@ const ReadOneRelationMixin = (DTOClass, relation) => (Base) => {
|
|
|
44
40
|
operationGroup: auth_1.OperationGroup.READ,
|
|
45
41
|
many: false
|
|
46
42
|
})),
|
|
47
|
-
tslib_1.__param(3, (0, decorators_1.GraphQLLookAheadRelations)(DTOClass)),
|
|
48
43
|
tslib_1.__metadata("design:type", Function),
|
|
49
|
-
tslib_1.__metadata("design:paramtypes", [Object, Object, Object
|
|
44
|
+
tslib_1.__metadata("design:paramtypes", [Object, Object, Object]),
|
|
50
45
|
tslib_1.__metadata("design:returntype", Promise)
|
|
51
46
|
], ReadOneMixin.prototype, _a, null);
|
|
52
47
|
ReadOneMixin = tslib_1.__decorate([
|
|
@@ -81,11 +76,11 @@ const ReadManyRelationMixin = (DTOClass, relation) => (Base) => {
|
|
|
81
76
|
// disable keyset pagination for relations otherwise recursive paging will not work
|
|
82
77
|
const { ConnectionType: CT } = RelationQA;
|
|
83
78
|
let ReadManyMixin = class ReadManyMixin extends Base {
|
|
84
|
-
async [_a = `query${pluralBaseName}`](dto, q, context, relationFilter
|
|
79
|
+
async [_a = `query${pluralBaseName}`](dto, q, context, relationFilter) {
|
|
85
80
|
const relationQuery = await (0, helpers_1.transformAndValidate)(RelationQA, q);
|
|
86
81
|
const relationLoader = loader_1.DataLoaderFactory.getOrCreateLoader(context, relationLoaderName, queryLoader.createLoader(this.service));
|
|
87
82
|
const relationCountLoader = loader_1.DataLoaderFactory.getOrCreateLoader(context, countRelationLoaderName, countLoader.createLoader(this.service));
|
|
88
|
-
return CT.createFromPromise((query) => relationLoader.load({ dto, query }), (0, nestjs_query_core_1.mergeQuery)(relationQuery, { filter: relationFilter
|
|
83
|
+
return CT.createFromPromise((query) => relationLoader.load({ dto, query }), (0, nestjs_query_core_1.mergeQuery)(relationQuery, { filter: relationFilter }), (filter) => relationCountLoader.load({ dto, filter }));
|
|
89
84
|
}
|
|
90
85
|
};
|
|
91
86
|
tslib_1.__decorate([
|
|
@@ -97,9 +92,8 @@ const ReadManyRelationMixin = (DTOClass, relation) => (Base) => {
|
|
|
97
92
|
operationGroup: auth_1.OperationGroup.READ,
|
|
98
93
|
many: true
|
|
99
94
|
})),
|
|
100
|
-
tslib_1.__param(4, (0, decorators_1.GraphQLLookAheadRelations)(relationDTO)),
|
|
101
95
|
tslib_1.__metadata("design:type", Function),
|
|
102
|
-
tslib_1.__metadata("design:paramtypes", [Object, RelationQA, Object, Object
|
|
96
|
+
tslib_1.__metadata("design:paramtypes", [Object, RelationQA, Object, Object]),
|
|
103
97
|
tslib_1.__metadata("design:returntype", Promise)
|
|
104
98
|
], ReadManyMixin.prototype, _a, null);
|
|
105
99
|
ReadManyMixin = tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/read-relations.resolver.ts"],"names":[],"mappings":";;;;AACA,6CAA2E;AAC3E,
|
|
1
|
+
{"version":3,"file":"read-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/read-relations.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,10 +51,6 @@ export type ResolverRelation<Relation> = {
|
|
|
51
51
|
* Enable aggregation queries.
|
|
52
52
|
*/
|
|
53
53
|
enableAggregate?: boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Enable look ahead mode, will join and select the relation when queried.
|
|
56
|
-
*/
|
|
57
|
-
enableLookAhead?: boolean;
|
|
58
54
|
/**
|
|
59
55
|
* Indicates if soft-deleted rows should be included in relation result.
|
|
60
56
|
*/
|
|
@@ -74,7 +70,7 @@ export type ResolverRelation<Relation> = {
|
|
|
74
70
|
} & DTONamesOpts & ResolverMethodOpts & QueryArgsTypeOpts<Relation> & Pick<ConnectionOptions, 'enableTotalCount'>;
|
|
75
71
|
export type RelationTypeMap<RT> = Record<string, RT>;
|
|
76
72
|
export type ResolverOneRelation<Relation> = Omit<ResolverRelation<Relation>, 'disableFilter' | 'disableSort'>;
|
|
77
|
-
export type ResolverManyRelation<Relation> =
|
|
73
|
+
export type ResolverManyRelation<Relation> = ResolverRelation<Relation>;
|
|
78
74
|
export type RelationsOpts<Relation = unknown> = {
|
|
79
75
|
/**
|
|
80
76
|
* All relations that are a single record
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GraphQLLookAheadRelations = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
-
const graphql_resolve_info_utils_1 = require("./graphql-resolve-info.utils");
|
|
7
|
-
const relation_decorator_1 = require("./relation.decorator");
|
|
8
|
-
function createLookAheadInfo(relations, simpleResolveInfo) {
|
|
9
|
-
return relations
|
|
10
|
-
.map((relation) => {
|
|
11
|
-
if (relation.name in simpleResolveInfo.fields) {
|
|
12
|
-
return {
|
|
13
|
-
name: relation.name,
|
|
14
|
-
query: simpleResolveInfo.fields[relation.name].args || {}
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
})
|
|
19
|
-
.filter(Boolean);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* @internal this implementation is not final and subjected to change! Use at own risk!
|
|
23
|
-
*/
|
|
24
|
-
const GraphQLLookAheadRelations = (DTOClass) => {
|
|
25
|
-
// Get all relations that have look ahead enabled
|
|
26
|
-
const relations = (0, relation_decorator_1.getRelationsDescriptors)(DTOClass).filter((relation) => relation.relationOpts.enableLookAhead && !relation.isMany);
|
|
27
|
-
if (relations.length === 0) {
|
|
28
|
-
return () => [];
|
|
29
|
-
}
|
|
30
|
-
return (0, common_1.createParamDecorator)((data, ctx) => {
|
|
31
|
-
const info = graphql_1.GqlExecutionContext.create(ctx).getInfo();
|
|
32
|
-
return createLookAheadInfo(relations, (0, graphql_resolve_info_utils_1.simplifyResolveInfo)(info));
|
|
33
|
-
})();
|
|
34
|
-
};
|
|
35
|
-
exports.GraphQLLookAheadRelations = GraphQLLookAheadRelations;
|
|
36
|
-
//# sourceMappingURL=graphql-look-ahead-relations.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-look-ahead-relations.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/graphql-look-ahead-relations.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AACvE,6CAAqD;AAKrD,6EAAoF;AACpF,6DAAkF;AAElF,SAAS,mBAAmB,CAC1B,SAAwC,EACxC,iBAAwC;IAExC,OAAO,SAAS;SACb,GAAG,CAAC,CAAC,QAAQ,EAAiC,EAAE;QAC/C,IAAI,QAAQ,CAAC,IAAI,IAAI,iBAAiB,CAAC,MAAM,EAAE;YAC7C,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAG,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAA2B,CAAC,IAAI,IAAI,EAAE;aACrF,CAAA;SACF;QAED,OAAO,KAAK,CAAA;IACd,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAA0B,CAAA;AAC7C,CAAC;AAED;;GAEG;AACI,MAAM,yBAAyB,GAAG,CAAM,QAAoB,EAAsB,EAAE;IACzF,iDAAiD;IACjD,MAAM,SAAS,GAAG,IAAA,4CAAuB,EAAC,QAAQ,CAAC,CAAC,MAAM,CACxD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,IAAI,CAAC,QAAQ,CAAC,MAAM,CACxE,CAAA;IAED,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1B,OAAO,GAAG,EAAE,CAAC,EAAE,CAAA;KAChB;IAED,OAAO,IAAA,6BAAoB,EAAC,CAAC,IAAa,EAAE,GAAqB,EAAyB,EAAE;QAC1F,MAAM,IAAI,GAAG,6BAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAe,CAAA;QACnE,OAAO,mBAAmB,CAAM,SAAS,EAAE,IAAA,gDAAmB,EAAC,IAAI,CAAC,CAAC,CAAA;IACvE,CAAC,CAAC,EAAE,CAAA;AACN,CAAC,CAAA;AAdY,QAAA,yBAAyB,6BAcrC"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GraphQLResolveInfo = void 0;
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
-
const graphql_resolve_info_utils_1 = require("./graphql-resolve-info.utils");
|
|
7
|
-
/**
|
|
8
|
-
* @internal this implementation is not final and subjected to change! Use at own risk!
|
|
9
|
-
*/
|
|
10
|
-
function GraphQLResolveInfo(simplify = true) {
|
|
11
|
-
return (0, common_1.createParamDecorator)((data, ctx) => {
|
|
12
|
-
const resolveInfo = graphql_1.GqlExecutionContext.create(ctx).getInfo();
|
|
13
|
-
if (simplify) {
|
|
14
|
-
return (0, graphql_resolve_info_utils_1.simplifyResolveInfo)(resolveInfo);
|
|
15
|
-
}
|
|
16
|
-
return resolveInfo;
|
|
17
|
-
})();
|
|
18
|
-
}
|
|
19
|
-
exports.GraphQLResolveInfo = GraphQLResolveInfo;
|
|
20
|
-
//# sourceMappingURL=graphql-resolve-info.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"graphql-resolve-info.decorator.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/decorators/graphql-resolve-info.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAuE;AACvE,6CAAqD;AAIrD,6EAAoF;AAEpF;;GAEG;AACH,SAAgB,kBAAkB,CAAM,QAAQ,GAAG,IAAI;IACrD,OAAO,IAAA,6BAAoB,EAAC,CAAC,IAAa,EAAE,GAAqB,EAAuC,EAAE;QACxG,MAAM,WAAW,GAAG,6BAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAe,CAAA;QAE1E,IAAI,QAAQ,EAAE;YACZ,OAAO,IAAA,gDAAmB,EAAM,WAAW,CAAC,CAAA;SAC7C;QAED,OAAO,WAAW,CAAA;IACpB,CAAC,CAAC,EAAE,CAAA;AACN,CAAC;AAVD,gDAUC"}
|