@smartive/graphql-magic 11.1.2 → 11.3.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/.env ADDED
@@ -0,0 +1,4 @@
1
+ DATABASE_HOST=localhost
2
+ DATABASE_NAME=postgres
3
+ DATABASE_USER=postgres
4
+ DATABAE_PASSWORD=password
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
- ## [11.1.2](https://github.com/smartive/graphql-magic/compare/v11.1.1...v11.1.2) (2023-11-21)
1
+ # [11.3.0](https://github.com/smartive/graphql-magic/compare/v11.2.0...v11.3.0) (2023-12-20)
2
2
 
3
3
 
4
- ### Bug Fixes
4
+ ### Features
5
5
 
6
- * **deps:** move pg and simple-git from devDependencies to dependencies ([#106](https://github.com/smartive/graphql-magic/issues/106)) ([028b95d](https://github.com/smartive/graphql-magic/commit/028b95daa711c6b9952a53e4ea48654280c56814))
6
+ * Reverse filter none ([b5c1478](https://github.com/smartive/graphql-magic/commit/b5c14787b97b72b2891ae2705f9675651ebd3542))
package/dist/bin/gqm.cjs CHANGED
@@ -1400,10 +1400,20 @@ var generateDefinitions = ({
1400
1400
  { name: `${field.name}_LT`, type: field.type },
1401
1401
  { name: `${field.name}_LTE`, type: field.type }
1402
1402
  ]),
1403
- ...model.fields.filter(isRelation).filter(({ filterable }) => filterable).map(({ name: name2, type }) => ({
1403
+ ...model.relations.filter(({ field: { filterable } }) => filterable).map(({ name: name2, targetModel }) => ({
1404
1404
  name: name2,
1405
- type: `${type}Where`
1406
- }))
1405
+ type: `${targetModel.name}Where`
1406
+ })),
1407
+ ...model.reverseRelations.filter(({ field: { reverseFilterable } }) => reverseFilterable).flatMap((relation) => [
1408
+ {
1409
+ name: `${relation.name}_SOME`,
1410
+ type: `${relation.targetModel.name}Where`
1411
+ },
1412
+ {
1413
+ name: `${relation.name}_NONE`,
1414
+ type: `${relation.targetModel.name}Where`
1415
+ }
1416
+ ])
1407
1417
  ]),
1408
1418
  input(
1409
1419
  `${model.name}WhereUnique`,
@@ -2083,11 +2083,38 @@ var applyFilters = (node, query, joins) => {
2083
2083
  }
2084
2084
  };
2085
2085
  var applyWhere2 = (node, where, ops, joins) => {
2086
+ const aliases = node.ctx.aliases;
2086
2087
  for (const key of Object.keys(where)) {
2087
2088
  const value2 = where[key];
2088
2089
  const specialFilter = key.match(/^(\w+)_(\w+)$/);
2089
2090
  if (specialFilter) {
2090
2091
  const [, actualKey, filter] = specialFilter;
2092
+ if (filter === "SOME" || filter === "NONE") {
2093
+ const reverseRelation = node.model.getReverseRelation(actualKey);
2094
+ const rootTableAlias = `${node.tableAlias}__W__${key}`;
2095
+ const targetModel = reverseRelation.targetModel;
2096
+ const tableAlias = targetModel === targetModel.rootModel ? rootTableAlias : `${node.tableAlias}__WS_${key}`;
2097
+ const subWhereNode = {
2098
+ ctx: node.ctx,
2099
+ rootTableAlias,
2100
+ model: targetModel,
2101
+ tableAlias
2102
+ };
2103
+ const subOps = [];
2104
+ const subJoins = [];
2105
+ applyWhere2(subWhereNode, value2, subOps, subJoins);
2106
+ ops.push(
2107
+ (query) => query[filter === "SOME" ? "whereExists" : "whereNotExists"]((subQuery) => {
2108
+ void subQuery.from(`${targetModel.name} as ${aliases.getShort(tableAlias)}`).whereRaw(`?? = ??`, [
2109
+ `${aliases.getShort(tableAlias)}.${reverseRelation.field.foreignKey}`,
2110
+ `${aliases.getShort(node.tableAlias)}.id`
2111
+ ]);
2112
+ void apply(subQuery, subOps);
2113
+ applyJoins(aliases, subQuery, subJoins);
2114
+ })
2115
+ );
2116
+ continue;
2117
+ }
2091
2118
  if (!SPECIAL_FILTERS[filter]) {
2092
2119
  throw new Error(`Invalid filter ${key}.`);
2093
2120
  }
@@ -2098,12 +2125,10 @@ var applyWhere2 = (node, where, ops, joins) => {
2098
2125
  if (field.kind === "relation") {
2099
2126
  const relation = node.model.getRelation(field.name);
2100
2127
  const targetModel = relation.targetModel;
2101
- const rootModel = targetModel.parentModel || targetModel;
2102
2128
  const rootTableAlias = `${node.model.name}__W__${key}`;
2103
- const tableAlias = targetModel === rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
2129
+ const tableAlias = targetModel === targetModel.rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
2104
2130
  const subNode = {
2105
2131
  ctx: node.ctx,
2106
- rootModel,
2107
2132
  rootTableAlias,
2108
2133
  model: targetModel,
2109
2134
  tableAlias
@@ -3019,10 +3044,20 @@ var generateDefinitions = ({
3019
3044
  { name: `${field.name}_LT`, type: field.type },
3020
3045
  { name: `${field.name}_LTE`, type: field.type }
3021
3046
  ]),
3022
- ...model.fields.filter(isRelation).filter(({ filterable }) => filterable).map(({ name: name2, type }) => ({
3047
+ ...model.relations.filter(({ field: { filterable } }) => filterable).map(({ name: name2, targetModel }) => ({
3023
3048
  name: name2,
3024
- type: `${type}Where`
3025
- }))
3049
+ type: `${targetModel.name}Where`
3050
+ })),
3051
+ ...model.reverseRelations.filter(({ field: { reverseFilterable } }) => reverseFilterable).flatMap((relation) => [
3052
+ {
3053
+ name: `${relation.name}_SOME`,
3054
+ type: `${relation.targetModel.name}Where`
3055
+ },
3056
+ {
3057
+ name: `${relation.name}_NONE`,
3058
+ type: `${relation.targetModel.name}Where`
3059
+ }
3060
+ ])
3026
3061
  ]),
3027
3062
  input(
3028
3063
  `${model.name}WhereUnique`,
@@ -58,6 +58,7 @@ export type EntityFieldDefinition = FieldDefinitionBase & (FieldDefinitionBase2
58
58
  filterable?: boolean | {
59
59
  default?: Value;
60
60
  };
61
+ reverseFilterable?: boolean;
61
62
  searchable?: boolean;
62
63
  orderable?: boolean;
63
64
  comparable?: boolean;
@@ -40,6 +40,7 @@ export declare const isEnum: (field: EntityField) => field is {
40
40
  filterable?: boolean | {
41
41
  default?: any;
42
42
  };
43
+ reverseFilterable?: boolean;
43
44
  searchable?: boolean;
44
45
  orderable?: boolean;
45
46
  comparable?: boolean;
@@ -84,6 +85,7 @@ export declare const isCustomField: (field: EntityField) => field is {
84
85
  filterable?: boolean | {
85
86
  default?: any;
86
87
  };
88
+ reverseFilterable?: boolean;
87
89
  searchable?: boolean;
88
90
  orderable?: boolean;
89
91
  comparable?: boolean;
@@ -5,7 +5,6 @@ import { Joins } from './utils';
5
5
  export declare const SPECIAL_FILTERS: Record<string, string>;
6
6
  export type WhereNode = {
7
7
  ctx: FullContext;
8
- rootModel: EntityModel;
9
8
  rootTableAlias: string;
10
9
  model: EntityModel;
11
10
  tableAlias: string;
@@ -1,6 +1,6 @@
1
1
  import { ForbiddenError, UserInputError } from '../errors';
2
2
  import { normalizeArguments } from './arguments';
3
- import { addJoin, apply, getColumn, ors } from './utils';
3
+ import { addJoin, apply, applyJoins, getColumn, ors } from './utils';
4
4
  export const SPECIAL_FILTERS = {
5
5
  GT: '?? > ?',
6
6
  GTE: '?? >= ?',
@@ -58,11 +58,39 @@ export const applyFilters = (node, query, joins) => {
58
58
  }
59
59
  };
60
60
  const applyWhere = (node, where, ops, joins) => {
61
+ const aliases = node.ctx.aliases;
61
62
  for (const key of Object.keys(where)) {
62
63
  const value = where[key];
63
64
  const specialFilter = key.match(/^(\w+)_(\w+)$/);
64
65
  if (specialFilter) {
65
66
  const [, actualKey, filter] = specialFilter;
67
+ if (filter === 'SOME' || filter === 'NONE') {
68
+ const reverseRelation = node.model.getReverseRelation(actualKey);
69
+ const rootTableAlias = `${node.tableAlias}__W__${key}`;
70
+ const targetModel = reverseRelation.targetModel;
71
+ const tableAlias = targetModel === targetModel.rootModel ? rootTableAlias : `${node.tableAlias}__WS_${key}`;
72
+ const subWhereNode = {
73
+ ctx: node.ctx,
74
+ rootTableAlias,
75
+ model: targetModel,
76
+ tableAlias,
77
+ };
78
+ const subOps = [];
79
+ const subJoins = [];
80
+ applyWhere(subWhereNode, value, subOps, subJoins);
81
+ // TODO: make this work with subtypes
82
+ ops.push((query) => query[filter === 'SOME' ? 'whereExists' : 'whereNotExists']((subQuery) => {
83
+ void subQuery
84
+ .from(`${targetModel.name} as ${aliases.getShort(tableAlias)}`)
85
+ .whereRaw(`?? = ??`, [
86
+ `${aliases.getShort(tableAlias)}.${reverseRelation.field.foreignKey}`,
87
+ `${aliases.getShort(node.tableAlias)}.id`,
88
+ ]);
89
+ void apply(subQuery, subOps);
90
+ applyJoins(aliases, subQuery, subJoins);
91
+ }));
92
+ continue;
93
+ }
66
94
  if (!SPECIAL_FILTERS[filter]) {
67
95
  // Should not happen
68
96
  throw new Error(`Invalid filter ${key}.`);
@@ -74,12 +102,10 @@ const applyWhere = (node, where, ops, joins) => {
74
102
  if (field.kind === 'relation') {
75
103
  const relation = node.model.getRelation(field.name);
76
104
  const targetModel = relation.targetModel;
77
- const rootModel = targetModel.parentModel || targetModel;
78
105
  const rootTableAlias = `${node.model.name}__W__${key}`;
79
- const tableAlias = targetModel === rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
106
+ const tableAlias = targetModel === targetModel.rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
80
107
  const subNode = {
81
108
  ctx: node.ctx,
82
- rootModel,
83
109
  rootTableAlias,
84
110
  model: targetModel,
85
111
  tableAlias,
@@ -1 +1 @@
1
- {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/resolvers/filters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filters.js","sourceRoot":"","sources":["../../../src/resolvers/filters.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,7 @@ export declare function hydrate<T extends Entry>(node: FieldResolverNode, raw: {
26
26
  export declare const ors: (query: Knex.QueryBuilder, [first, ...rest]: ((query: Knex.QueryBuilder) => Knex.QueryBuilder)[]) => Knex.QueryBuilder<any, any>;
27
27
  export declare const getNameOrAlias: (node: FieldNode) => string;
28
28
  export type Ops<T> = ((target: T) => T)[];
29
+ export type QueryBuilderOps = Ops<Knex.QueryBuilder>;
29
30
  export declare const apply: <T>(target: T, ops: ((target: T) => T)[]) => T;
30
31
  type Join = {
31
32
  table1Alias: string;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/resolvers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/resolvers/utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { buildASTSchema, print } from 'graphql';
2
- import { isQueriableField, isRelation, isRootModel, typeToField } from '../models/utils';
2
+ import { isQueriableField, isRootModel, typeToField } from '../models/utils';
3
3
  import { document, enm, iface, input, object, scalar } from './utils';
4
4
  export const generateDefinitions = ({ scalars, rawEnums, enums, inputs, interfaces, entities, objects, }) => {
5
5
  return [
@@ -58,13 +58,24 @@ export const generateDefinitions = ({ scalars, rawEnums, enums, inputs, interfac
58
58
  { name: `${field.name}_LT`, type: field.type },
59
59
  { name: `${field.name}_LTE`, type: field.type },
60
60
  ]),
61
- ...model.fields
62
- .filter(isRelation)
63
- .filter(({ filterable }) => filterable)
64
- .map(({ name, type }) => ({
61
+ ...model.relations
62
+ .filter(({ field: { filterable } }) => filterable)
63
+ .map(({ name, targetModel }) => ({
65
64
  name,
66
- type: `${type}Where`,
65
+ type: `${targetModel.name}Where`,
67
66
  })),
67
+ ...model.reverseRelations
68
+ .filter(({ field: { reverseFilterable } }) => reverseFilterable)
69
+ .flatMap((relation) => [
70
+ {
71
+ name: `${relation.name}_SOME`,
72
+ type: `${relation.targetModel.name}Where`,
73
+ },
74
+ {
75
+ name: `${relation.name}_NONE`,
76
+ type: `${relation.targetModel.name}Where`,
77
+ },
78
+ ]),
68
79
  ]),
69
80
  input(`${model.name}WhereUnique`, model.fields.filter(({ unique }) => unique).map((field) => ({ name: field.name, type: field.type }))),
70
81
  ...(model.fields.some(({ orderable }) => orderable)
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/schema/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/schema/generate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smartive/graphql-magic",
3
- "version": "11.1.2",
3
+ "version": "11.3.0",
4
4
  "description": "",
5
5
  "source": "src/index.ts",
6
6
  "type": "module",
@@ -70,21 +70,21 @@
70
70
  "devDependencies": {
71
71
  "@smartive/eslint-config": "3.3.0",
72
72
  "@smartive/prettier-config": "3.1.2",
73
- "@types/jest": "29.5.9",
73
+ "@types/jest": "29.5.11",
74
74
  "@types/lodash": "4.14.202",
75
- "@types/luxon": "3.3.5",
75
+ "@types/luxon": "3.3.7",
76
76
  "@types/pg": "8.10.9",
77
77
  "@types/uuid": "9.0.7",
78
78
  "create-ts-index": "1.14.0",
79
79
  "del-cli": "5.1.0",
80
- "esbuild": "0.19.7",
81
- "eslint": "8.54.0",
80
+ "esbuild": "0.19.10",
81
+ "eslint": "8.56.0",
82
82
  "graphql-request": "6.1.0",
83
83
  "jest": "29.7.0",
84
- "mock-knex": "0.4.12",
84
+ "mock-knex": "0.4.13",
85
85
  "prettier": "2.8.8",
86
86
  "ts-jest": "29.1.1",
87
- "ts-node": "10.9.1",
88
- "typescript": "5.3.2"
87
+ "ts-node": "10.9.2",
88
+ "typescript": "5.3.3"
89
89
  }
90
90
  }
@@ -63,6 +63,7 @@ export type EntityFieldDefinition = FieldDefinitionBase &
63
63
  | {
64
64
  default?: Value;
65
65
  };
66
+ reverseFilterable?: boolean;
66
67
  searchable?: boolean;
67
68
  orderable?: boolean;
68
69
  comparable?: boolean;
@@ -3,7 +3,7 @@ import { EntityModel, FullContext } from '..';
3
3
  import { ForbiddenError, UserInputError } from '../errors';
4
4
  import { OrderBy, Where, normalizeArguments } from './arguments';
5
5
  import { FieldResolverNode } from './node';
6
- import { Joins, Ops, addJoin, apply, getColumn, ors } from './utils';
6
+ import { Joins, QueryBuilderOps, addJoin, apply, applyJoins, getColumn, ors } from './utils';
7
7
 
8
8
  export const SPECIAL_FILTERS: Record<string, string> = {
9
9
  GT: '?? > ?',
@@ -15,7 +15,6 @@ export const SPECIAL_FILTERS: Record<string, string> = {
15
15
  export type WhereNode = {
16
16
  ctx: FullContext;
17
17
 
18
- rootModel: EntityModel;
19
18
  rootTableAlias: string;
20
19
 
21
20
  model: EntityModel;
@@ -69,7 +68,7 @@ export const applyFilters = (node: FieldResolverNode, query: Knex.QueryBuilder,
69
68
  }
70
69
 
71
70
  if (where) {
72
- const ops: Ops<Knex.QueryBuilder> = [];
71
+ const ops: QueryBuilderOps = [];
73
72
  applyWhere(node, where, ops, joins);
74
73
  void apply(query, ops);
75
74
  }
@@ -79,13 +78,48 @@ export const applyFilters = (node: FieldResolverNode, query: Knex.QueryBuilder,
79
78
  }
80
79
  };
81
80
 
82
- const applyWhere = (node: WhereNode, where: Where, ops: Ops<Knex.QueryBuilder>, joins: Joins) => {
81
+ const applyWhere = (node: WhereNode, where: Where, ops: QueryBuilderOps, joins: Joins) => {
82
+ const aliases = node.ctx.aliases;
83
+
83
84
  for (const key of Object.keys(where)) {
84
85
  const value = where[key];
85
86
 
86
87
  const specialFilter = key.match(/^(\w+)_(\w+)$/);
87
88
  if (specialFilter) {
88
89
  const [, actualKey, filter] = specialFilter;
90
+
91
+ if (filter === 'SOME' || filter === 'NONE') {
92
+ const reverseRelation = node.model.getReverseRelation(actualKey);
93
+ const rootTableAlias = `${node.tableAlias}__W__${key}`;
94
+ const targetModel = reverseRelation.targetModel;
95
+ const tableAlias = targetModel === targetModel.rootModel ? rootTableAlias : `${node.tableAlias}__WS_${key}`;
96
+
97
+ const subWhereNode: WhereNode = {
98
+ ctx: node.ctx,
99
+ rootTableAlias,
100
+ model: targetModel,
101
+ tableAlias,
102
+ };
103
+ const subOps: QueryBuilderOps = [];
104
+ const subJoins: Joins = [];
105
+ applyWhere(subWhereNode, value as Where, subOps, subJoins);
106
+
107
+ // TODO: make this work with subtypes
108
+ ops.push((query) =>
109
+ query[filter === 'SOME' ? 'whereExists' : 'whereNotExists']((subQuery) => {
110
+ void subQuery
111
+ .from(`${targetModel.name} as ${aliases.getShort(tableAlias)}`)
112
+ .whereRaw(`?? = ??`, [
113
+ `${aliases.getShort(tableAlias)}.${reverseRelation.field.foreignKey}`,
114
+ `${aliases.getShort(node.tableAlias)}.id`,
115
+ ]);
116
+ void apply(subQuery, subOps);
117
+ applyJoins(aliases, subQuery, subJoins);
118
+ })
119
+ );
120
+ continue;
121
+ }
122
+
89
123
  if (!SPECIAL_FILTERS[filter]) {
90
124
  // Should not happen
91
125
  throw new Error(`Invalid filter ${key}.`);
@@ -99,15 +133,11 @@ const applyWhere = (node: WhereNode, where: Where, ops: Ops<Knex.QueryBuilder>,
99
133
  if (field.kind === 'relation') {
100
134
  const relation = node.model.getRelation(field.name);
101
135
  const targetModel = relation.targetModel;
102
- const rootModel = targetModel.parentModel || targetModel;
103
136
  const rootTableAlias = `${node.model.name}__W__${key}`;
104
- const tableAlias = targetModel === rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
137
+ const tableAlias = targetModel === targetModel.rootModel ? rootTableAlias : `${node.model.name}__WS__${key}`;
105
138
  const subNode: WhereNode = {
106
139
  ctx: node.ctx,
107
-
108
- rootModel,
109
140
  rootTableAlias,
110
-
111
141
  model: targetModel,
112
142
  tableAlias,
113
143
  };
@@ -126,6 +126,8 @@ export const getNameOrAlias = (node: FieldNode) => {
126
126
 
127
127
  export type Ops<T> = ((target: T) => T)[];
128
128
 
129
+ export type QueryBuilderOps = Ops<Knex.QueryBuilder>;
130
+
129
131
  export const apply = <T>(target: T, ops: ((target: T) => T)[]) => ops.reduce((target, op) => op(target), target);
130
132
 
131
133
  type Join = { table1Alias: string; column1: string; table2Name: string; table2Alias: string; column2: string };
@@ -1,6 +1,6 @@
1
1
  import { DefinitionNode, DocumentNode, GraphQLSchema, buildASTSchema, print } from 'graphql';
2
2
  import { Models } from '../models/models';
3
- import { isQueriableField, isRelation, isRootModel, typeToField } from '../models/utils';
3
+ import { isQueriableField, isRootModel, typeToField } from '../models/utils';
4
4
  import { Field, document, enm, iface, input, object, scalar } from './utils';
5
5
 
6
6
  export const generateDefinitions = ({
@@ -77,13 +77,24 @@ export const generateDefinitions = ({
77
77
  { name: `${field.name}_LT`, type: field.type },
78
78
  { name: `${field.name}_LTE`, type: field.type },
79
79
  ]),
80
- ...model.fields
81
- .filter(isRelation)
82
- .filter(({ filterable }) => filterable)
83
- .map(({ name, type }) => ({
80
+ ...model.relations
81
+ .filter(({ field: { filterable } }) => filterable)
82
+ .map(({ name, targetModel }) => ({
84
83
  name,
85
- type: `${type}Where`,
84
+ type: `${targetModel.name}Where`,
86
85
  })),
86
+ ...model.reverseRelations
87
+ .filter(({ field: { reverseFilterable } }) => reverseFilterable)
88
+ .flatMap((relation) => [
89
+ {
90
+ name: `${relation.name}_SOME`,
91
+ type: `${relation.targetModel.name}Where`,
92
+ },
93
+ {
94
+ name: `${relation.name}_NONE`,
95
+ type: `${relation.targetModel.name}Where`,
96
+ },
97
+ ]),
87
98
  ]),
88
99
  input(
89
100
  `${model.name}WhereUnique`,
@@ -3,6 +3,20 @@
3
3
  exports[`query can be executed 1`] = `
4
4
  {
5
5
  "manyObjects": [
6
+ {
7
+ "another": {
8
+ "id": "226a20e8-5c18-4423-99ca-eb0df6ff4fdd",
9
+ "manyObjects": [
10
+ {
11
+ "field": null,
12
+ "id": "604ab55d-ec3e-4857-9f27-219158f80e64",
13
+ },
14
+ ],
15
+ },
16
+ "field": null,
17
+ "id": "fc4e013e-4cb0-4ef8-9f2e-3d475bdf2b90",
18
+ "xyz": 2,
19
+ },
6
20
  {
7
21
  "another": {
8
22
  "id": "226a20e8-5c18-4423-99ca-eb0df6ff4fdd",
@@ -20,3 +34,95 @@ exports[`query can be executed 1`] = `
20
34
  ],
21
35
  }
22
36
  `;
37
+
38
+ exports[`query processes reverseFilters correctly 1`] = `
39
+ {
40
+ "all": [
41
+ {
42
+ "id": "226a20e8-5c18-4423-99ca-eb0df6ff4fdd",
43
+ "manyObjects": [
44
+ {
45
+ "float": 0.5,
46
+ },
47
+ {
48
+ "float": 0,
49
+ },
50
+ ],
51
+ },
52
+ {
53
+ "id": "ba5d94a8-0035-4e45-9258-2f7676eb8d18",
54
+ "manyObjects": [
55
+ {
56
+ "float": 0.5,
57
+ },
58
+ ],
59
+ },
60
+ ],
61
+ "noneFloat0": [
62
+ {
63
+ "id": "ba5d94a8-0035-4e45-9258-2f7676eb8d18",
64
+ "manyObjects": [
65
+ {
66
+ "float": 0.5,
67
+ },
68
+ ],
69
+ },
70
+ ],
71
+ "noneFloat0_5": [],
72
+ "noneFloat2": [
73
+ {
74
+ "id": "226a20e8-5c18-4423-99ca-eb0df6ff4fdd",
75
+ "manyObjects": [
76
+ {
77
+ "float": 0.5,
78
+ },
79
+ {
80
+ "float": 0,
81
+ },
82
+ ],
83
+ },
84
+ {
85
+ "id": "ba5d94a8-0035-4e45-9258-2f7676eb8d18",
86
+ "manyObjects": [
87
+ {
88
+ "float": 0.5,
89
+ },
90
+ ],
91
+ },
92
+ ],
93
+ "withFloat0": [
94
+ {
95
+ "id": "226a20e8-5c18-4423-99ca-eb0df6ff4fdd",
96
+ "manyObjects": [
97
+ {
98
+ "float": 0.5,
99
+ },
100
+ {
101
+ "float": 0,
102
+ },
103
+ ],
104
+ },
105
+ ],
106
+ "withFloat0_5": [
107
+ {
108
+ "id": "226a20e8-5c18-4423-99ca-eb0df6ff4fdd",
109
+ "manyObjects": [
110
+ {
111
+ "float": 0.5,
112
+ },
113
+ {
114
+ "float": 0,
115
+ },
116
+ ],
117
+ },
118
+ {
119
+ "id": "ba5d94a8-0035-4e45-9258-2f7676eb8d18",
120
+ "manyObjects": [
121
+ {
122
+ "float": 0.5,
123
+ },
124
+ ],
125
+ },
126
+ ],
127
+ }
128
+ `;
@@ -25,4 +25,51 @@ describe('query', () => {
25
25
  ).toMatchSnapshot();
26
26
  });
27
27
  });
28
+
29
+ it('processes reverseFilters correctly', async () => {
30
+ await withServer(async (request) => {
31
+ expect(
32
+ await request(gql`
33
+ query ReverseFiltersQuery {
34
+ all: anotherObjects {
35
+ id
36
+ manyObjects {
37
+ float
38
+ }
39
+ }
40
+ withFloat0: anotherObjects(where: { manyObjects_SOME: { float: 0 } }) {
41
+ id
42
+ manyObjects {
43
+ float
44
+ }
45
+ }
46
+ withFloat0_5: anotherObjects(where: { manyObjects_SOME: { float: 0.5 } }) {
47
+ id
48
+ manyObjects {
49
+ float
50
+ }
51
+ }
52
+ noneFloat0: anotherObjects(where: { manyObjects_NONE: { float: 0 } }) {
53
+ id
54
+ manyObjects {
55
+ float
56
+ }
57
+ }
58
+ noneFloat0_5: anotherObjects(where: { manyObjects_NONE: { float: 0.5 } }) {
59
+ id
60
+ manyObjects {
61
+ float
62
+ }
63
+ }
64
+ noneFloat2: anotherObjects(where: { manyObjects_NONE: { float: 2 } }) {
65
+ id
66
+ manyObjects {
67
+ float
68
+ }
69
+ }
70
+ }
71
+ `)
72
+ ).toMatchSnapshot();
73
+ });
74
+ });
28
75
  });
@@ -56,6 +56,8 @@ export type AnotherObjectOrderBy = {
56
56
  export type AnotherObjectWhere = {
57
57
  deleted?: InputMaybe<Array<Scalars['Boolean']['input']>>;
58
58
  id?: InputMaybe<Array<Scalars['ID']['input']>>;
59
+ manyObjects_NONE?: InputMaybe<SomeObjectWhere>;
60
+ manyObjects_SOME?: InputMaybe<SomeObjectWhere>;
59
61
  };
60
62
 
61
63
  export type AnotherObjectWhereUnique = {
@@ -612,6 +614,7 @@ export type SomeObjectOrderBy = {
612
614
  export type SomeObjectWhere = {
613
615
  another?: InputMaybe<AnotherObjectWhere>;
614
616
  deleted?: InputMaybe<Array<Scalars['Boolean']['input']>>;
617
+ float?: InputMaybe<Array<Scalars['Float']['input']>>;
615
618
  id?: InputMaybe<Array<Scalars['ID']['input']>>;
616
619
  };
617
620
 
@@ -53,6 +53,8 @@ export type AnotherObjectOrderBy = {
53
53
  export type AnotherObjectWhere = {
54
54
  deleted?: InputMaybe<Array<Scalars['Boolean']['input']>>;
55
55
  id?: InputMaybe<Array<Scalars['ID']['input']>>;
56
+ manyObjects_NONE?: InputMaybe<SomeObjectWhere>;
57
+ manyObjects_SOME?: InputMaybe<SomeObjectWhere>;
56
58
  };
57
59
 
58
60
  export type AnotherObjectWhereUnique = {
@@ -609,6 +611,7 @@ export type SomeObjectOrderBy = {
609
611
  export type SomeObjectWhere = {
610
612
  another?: InputMaybe<AnotherObjectWhere>;
611
613
  deleted?: InputMaybe<Array<Scalars['Boolean']['input']>>;
614
+ float?: InputMaybe<Array<Scalars['Float']['input']>>;
612
615
  id?: InputMaybe<Array<Scalars['ID']['input']>>;
613
616
  };
614
617
 
@@ -851,6 +854,11 @@ export type SomeQueryQueryVariables = Exact<{ [key: string]: never; }>;
851
854
 
852
855
  export type SomeQueryQuery = { manyObjects: Array<{ __typename: 'SomeObject', id: string, field: string | null, xyz: number, another: { __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', id: string, field: string | null }> } }> };
853
856
 
857
+ export type ReverseFiltersQueryQueryVariables = Exact<{ [key: string]: never; }>;
858
+
859
+
860
+ export type ReverseFiltersQueryQuery = { all: Array<{ __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', float: number }> }>, withFloat0: Array<{ __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', float: number }> }>, withFloat0_5: Array<{ __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', float: number }> }>, noneFloat0: Array<{ __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', float: number }> }>, noneFloat0_5: Array<{ __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', float: number }> }> };
861
+
854
862
  export type DeleteAnotherObjectMutationMutationVariables = Exact<{
855
863
  id: Scalars['ID']['input'];
856
864
  }>;
@@ -981,16 +989,6 @@ export type RestoreAnswerMutationMutationVariables = Exact<{
981
989
 
982
990
  export type RestoreAnswerMutationMutation = { restoreAnswer: string };
983
991
 
984
- export type AnotherQueryQueryVariables = Exact<{ [key: string]: never; }>;
985
-
986
-
987
- export type AnotherQueryQuery = { manyObjects: Array<{ __typename: 'SomeObject', id: string, field: string | null, another: { __typename: 'AnotherObject', id: string, manyObjects: Array<{ __typename: 'SomeObject', id: string, field: string | null }> } }> };
988
-
989
- export type YetAnotherQueryQueryVariables = Exact<{ [key: string]: never; }>;
990
-
991
-
992
- export type YetAnotherQueryQuery = { someObject: { __typename: 'SomeObject', id: string, field: string | null } };
993
-
994
992
  type DiscriminateUnion<T, U> = T extends U ? T : never;
995
993
 
996
994
  export namespace DeleteAnotherObject {
@@ -1050,6 +1048,21 @@ export namespace SomeQuery {
1050
1048
  export type _manyObjects = NonNullable<(NonNullable<(NonNullable<NonNullable<(NonNullable<SomeQueryQuery['manyObjects']>)[number]>['another']>)['manyObjects']>)[number]>;
1051
1049
  }
1052
1050
 
1051
+ export namespace ReverseFiltersQuery {
1052
+ export type Variables = ReverseFiltersQueryQueryVariables;
1053
+ export type query = ReverseFiltersQueryQuery;
1054
+ export type all = NonNullable<(NonNullable<ReverseFiltersQueryQuery['all']>)[number]>;
1055
+ export type manyObjects = NonNullable<(NonNullable<NonNullable<(NonNullable<ReverseFiltersQueryQuery['all']>)[number]>['manyObjects']>)[number]>;
1056
+ export type withFloat0 = NonNullable<(NonNullable<ReverseFiltersQueryQuery['withFloat0']>)[number]>;
1057
+ export type _manyObjects = NonNullable<(NonNullable<NonNullable<(NonNullable<ReverseFiltersQueryQuery['withFloat0']>)[number]>['manyObjects']>)[number]>;
1058
+ export type withFloat0_5 = NonNullable<(NonNullable<ReverseFiltersQueryQuery['withFloat0_5']>)[number]>;
1059
+ export type __manyObjects = NonNullable<(NonNullable<NonNullable<(NonNullable<ReverseFiltersQueryQuery['withFloat0_5']>)[number]>['manyObjects']>)[number]>;
1060
+ export type noneFloat0 = NonNullable<(NonNullable<ReverseFiltersQueryQuery['noneFloat0']>)[number]>;
1061
+ export type ___manyObjects = NonNullable<(NonNullable<NonNullable<(NonNullable<ReverseFiltersQueryQuery['noneFloat0']>)[number]>['manyObjects']>)[number]>;
1062
+ export type noneFloat0_5 = NonNullable<(NonNullable<ReverseFiltersQueryQuery['noneFloat0_5']>)[number]>;
1063
+ export type ____manyObjects = NonNullable<(NonNullable<NonNullable<(NonNullable<ReverseFiltersQueryQuery['noneFloat0_5']>)[number]>['manyObjects']>)[number]>;
1064
+ }
1065
+
1053
1066
  export namespace DeleteAnotherObjectMutation {
1054
1067
  export type Variables = DeleteAnotherObjectMutationMutationVariables;
1055
1068
  export type mutation = DeleteAnotherObjectMutationMutation;
@@ -1147,17 +1160,3 @@ export namespace RestoreAnswerMutation {
1147
1160
  export type Variables = RestoreAnswerMutationMutationVariables;
1148
1161
  export type mutation = RestoreAnswerMutationMutation;
1149
1162
  }
1150
-
1151
- export namespace AnotherQuery {
1152
- export type Variables = AnotherQueryQueryVariables;
1153
- export type query = AnotherQueryQuery;
1154
- export type manyObjects = NonNullable<(NonNullable<AnotherQueryQuery['manyObjects']>)[number]>;
1155
- export type another = (NonNullable<NonNullable<(NonNullable<AnotherQueryQuery['manyObjects']>)[number]>['another']>);
1156
- export type _manyObjects = NonNullable<(NonNullable<(NonNullable<NonNullable<(NonNullable<AnotherQueryQuery['manyObjects']>)[number]>['another']>)['manyObjects']>)[number]>;
1157
- }
1158
-
1159
- export namespace YetAnotherQuery {
1160
- export type Variables = YetAnotherQueryQueryVariables;
1161
- export type query = YetAnotherQueryQuery;
1162
- export type someObject = (NonNullable<YetAnotherQueryQuery['someObject']>);
1163
- }
@@ -132,6 +132,7 @@
132
132
  "kind": "relation",
133
133
  "type": "AnotherObject",
134
134
  "filterable": true,
135
+ "reverseFilterable": true,
135
136
  "updatable": true,
136
137
  "nonNull": true,
137
138
  "foreignKey": "anotherId"
@@ -141,7 +142,8 @@
141
142
  "type": "Float",
142
143
  "scale": 1,
143
144
  "precision": 1,
144
- "nonNull": true
145
+ "nonNull": true,
146
+ "filterable": true
145
147
  },
146
148
  {
147
149
  "kind": "enum",
@@ -17,6 +17,8 @@ input AnotherObjectOrderBy {
17
17
  input AnotherObjectWhere {
18
18
  id: [ID!]
19
19
  deleted: [Boolean!]
20
+ manyObjects_SOME: SomeObjectWhere
21
+ manyObjects_NONE: SomeObjectWhere
20
22
  }
21
23
 
22
24
  input AnotherObjectWhereUnique {
@@ -262,6 +264,7 @@ input SomeObjectOrderBy {
262
264
 
263
265
  input SomeObjectWhere {
264
266
  id: [ID!]
267
+ float: [Float!]
265
268
  deleted: [Boolean!]
266
269
  another: AnotherObjectWhere
267
270
  }
@@ -8,7 +8,10 @@ import { models } from '../models';
8
8
  export const ADMIN_ID = '04e45b48-04cf-4b38-bb25-b9af5ae0b2c4';
9
9
 
10
10
  export const SOME_ID = '604ab55d-ec3e-4857-9f27-219158f80e64';
11
+ export const SOME_ID_2 = 'fc4e013e-4cb0-4ef8-9f2e-3d475bdf2b90';
12
+ export const SOME_ID_3 = '37a23870-e7f5-45c8-86e5-f14d9f2405f9';
11
13
  export const ANOTHER_ID = '226a20e8-5c18-4423-99ca-eb0df6ff4fdd';
14
+ export const ANOTHER_ID_2 = 'ba5d94a8-0035-4e45-9258-2f7676eb8d18';
12
15
  export const QUESTION_ID = '3d0f3254-282f-4f1f-95e3-c1f699f3c1e5';
13
16
  export const ANSWER_ID = 'f2d7b3f1-8ea1-4c2c-91ec-024432da1b0d';
14
17
  export const REVIEW_ID = '817c55de-2f77-4159-bd44-9837d868f889';
@@ -26,6 +29,10 @@ export const seed: SeedData = {
26
29
  id: ANOTHER_ID,
27
30
  myselfId: ANOTHER_ID,
28
31
  },
32
+ {
33
+ id: ANOTHER_ID_2,
34
+ myselfId: ANOTHER_ID,
35
+ },
29
36
  ],
30
37
  SomeObject: [
31
38
  {
@@ -35,6 +42,20 @@ export const seed: SeedData = {
35
42
  list: ['A'],
36
43
  xyz: 1,
37
44
  },
45
+ {
46
+ id: SOME_ID_2,
47
+ anotherId: ANOTHER_ID,
48
+ float: 0.5,
49
+ list: ['B'],
50
+ xyz: 2,
51
+ },
52
+ {
53
+ id: SOME_ID_3,
54
+ anotherId: ANOTHER_ID_2,
55
+ float: 0.5,
56
+ list: ['B'],
57
+ xyz: 2,
58
+ },
38
59
  ],
39
60
  Question: [
40
61
  {
@@ -76,6 +76,7 @@ const modelDefinitions: ModelDefinitions = [
76
76
  kind: 'relation',
77
77
  type: 'AnotherObject',
78
78
  filterable: true,
79
+ reverseFilterable: true,
79
80
  updatable: true,
80
81
  nonNull: true,
81
82
  },
@@ -85,6 +86,7 @@ const modelDefinitions: ModelDefinitions = [
85
86
  scale: 1,
86
87
  precision: 1,
87
88
  nonNull: true,
89
+ filterable: true,
88
90
  },
89
91
  {
90
92
  kind: 'enum',