@pothos/plugin-prisma 0.17.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +403 -308
  3. package/esm/field-builder.js +12 -14
  4. package/esm/field-builder.js.map +1 -1
  5. package/esm/generator.js +4 -0
  6. package/esm/generator.js.map +1 -1
  7. package/esm/global-types.d.ts +23 -5
  8. package/esm/global-types.d.ts.map +1 -1
  9. package/esm/index.d.ts +4 -1
  10. package/esm/index.d.ts.map +1 -1
  11. package/esm/index.js +46 -1
  12. package/esm/index.js.map +1 -1
  13. package/esm/model-loader.d.ts +5 -6
  14. package/esm/model-loader.d.ts.map +1 -1
  15. package/esm/model-loader.js +12 -69
  16. package/esm/model-loader.js.map +1 -1
  17. package/esm/prisma-field-builder.d.ts +25 -6
  18. package/esm/prisma-field-builder.d.ts.map +1 -1
  19. package/esm/prisma-field-builder.js +86 -117
  20. package/esm/prisma-field-builder.js.map +1 -1
  21. package/esm/schema-builder.js +15 -4
  22. package/esm/schema-builder.js.map +1 -1
  23. package/esm/types.d.ts +73 -77
  24. package/esm/types.d.ts.map +1 -1
  25. package/esm/types.js +1 -0
  26. package/esm/types.js.map +1 -1
  27. package/esm/{cursors.d.ts → util/cursors.d.ts} +10 -8
  28. package/esm/util/cursors.d.ts.map +1 -0
  29. package/esm/{cursors.js → util/cursors.js} +34 -13
  30. package/esm/util/cursors.js.map +1 -0
  31. package/{lib/refs.d.ts → esm/util/datamodel.d.ts} +9 -8
  32. package/esm/util/datamodel.d.ts.map +1 -0
  33. package/esm/{refs.js → util/datamodel.js} +27 -30
  34. package/esm/util/datamodel.js.map +1 -0
  35. package/esm/util/deep-equal.d.ts +2 -0
  36. package/esm/util/deep-equal.d.ts.map +1 -0
  37. package/esm/util/deep-equal.js +39 -0
  38. package/esm/util/deep-equal.js.map +1 -0
  39. package/esm/util/loader-map.d.ts +6 -0
  40. package/esm/util/loader-map.d.ts.map +1 -0
  41. package/esm/{loader-map.js → util/loader-map.js} +10 -12
  42. package/esm/util/loader-map.js.map +1 -0
  43. package/esm/util/map-query.d.ts +6 -0
  44. package/esm/util/map-query.d.ts.map +1 -0
  45. package/esm/util/map-query.js +169 -0
  46. package/esm/util/map-query.js.map +1 -0
  47. package/esm/util/relation-map.d.ts +9 -0
  48. package/esm/util/relation-map.d.ts.map +1 -0
  49. package/esm/util/relation-map.js +20 -0
  50. package/esm/util/relation-map.js.map +1 -0
  51. package/esm/util/selections.d.ts +20 -0
  52. package/esm/util/selections.d.ts.map +1 -0
  53. package/esm/util/selections.js +139 -0
  54. package/esm/util/selections.js.map +1 -0
  55. package/lib/field-builder.js +16 -18
  56. package/lib/field-builder.js.map +1 -1
  57. package/lib/generator.js +4 -0
  58. package/lib/generator.js.map +1 -1
  59. package/lib/global-types.d.ts +23 -5
  60. package/lib/global-types.d.ts.map +1 -1
  61. package/lib/index.d.ts +4 -1
  62. package/lib/index.d.ts.map +1 -1
  63. package/lib/index.js +45 -0
  64. package/lib/index.js.map +1 -1
  65. package/lib/model-loader.d.ts +5 -6
  66. package/lib/model-loader.d.ts.map +1 -1
  67. package/lib/model-loader.js +13 -70
  68. package/lib/model-loader.js.map +1 -1
  69. package/lib/prisma-field-builder.d.ts +25 -6
  70. package/lib/prisma-field-builder.d.ts.map +1 -1
  71. package/lib/prisma-field-builder.js +90 -121
  72. package/lib/prisma-field-builder.js.map +1 -1
  73. package/lib/schema-builder.js +18 -7
  74. package/lib/schema-builder.js.map +1 -1
  75. package/lib/types.d.ts +73 -77
  76. package/lib/types.d.ts.map +1 -1
  77. package/lib/types.js +2 -0
  78. package/lib/types.js.map +1 -1
  79. package/lib/{cursors.d.ts → util/cursors.d.ts} +10 -8
  80. package/lib/util/cursors.d.ts.map +1 -0
  81. package/lib/{cursors.js → util/cursors.js} +39 -14
  82. package/lib/util/cursors.js.map +1 -0
  83. package/{esm/refs.d.ts → lib/util/datamodel.d.ts} +9 -8
  84. package/lib/util/datamodel.d.ts.map +1 -0
  85. package/lib/{refs.js → util/datamodel.js} +32 -35
  86. package/lib/util/datamodel.js.map +1 -0
  87. package/lib/util/deep-equal.d.ts +2 -0
  88. package/lib/util/deep-equal.d.ts.map +1 -0
  89. package/lib/util/deep-equal.js +43 -0
  90. package/lib/util/deep-equal.js.map +1 -0
  91. package/lib/util/loader-map.d.ts +6 -0
  92. package/lib/util/loader-map.d.ts.map +1 -0
  93. package/lib/{loader-map.js → util/loader-map.js} +10 -12
  94. package/lib/util/loader-map.js.map +1 -0
  95. package/lib/util/map-query.d.ts +6 -0
  96. package/lib/util/map-query.d.ts.map +1 -0
  97. package/lib/util/map-query.js +175 -0
  98. package/lib/util/map-query.js.map +1 -0
  99. package/lib/util/relation-map.d.ts +9 -0
  100. package/lib/util/relation-map.d.ts.map +1 -0
  101. package/lib/util/relation-map.js +24 -0
  102. package/lib/util/relation-map.js.map +1 -0
  103. package/lib/util/selections.d.ts +20 -0
  104. package/lib/util/selections.d.ts.map +1 -0
  105. package/lib/util/selections.js +148 -0
  106. package/lib/util/selections.js.map +1 -0
  107. package/package.json +7 -7
  108. package/src/field-builder.ts +12 -12
  109. package/src/generator.ts +18 -0
  110. package/src/global-types.ts +59 -12
  111. package/src/index.ts +75 -1
  112. package/src/model-loader.ts +19 -92
  113. package/src/prisma-field-builder.ts +199 -147
  114. package/src/schema-builder.ts +29 -7
  115. package/src/types.ts +138 -102
  116. package/src/{cursors.ts → util/cursors.ts} +45 -20
  117. package/src/{refs.ts → util/datamodel.ts} +36 -40
  118. package/src/util/deep-equal.ts +51 -0
  119. package/src/{loader-map.ts → util/loader-map.ts} +13 -13
  120. package/src/util/map-query.ts +327 -0
  121. package/src/util/relation-map.ts +36 -0
  122. package/src/util/selections.ts +192 -0
  123. package/.turbo/turbo-build.log +0 -17
  124. package/.turbo/turbo-test.log +0 -18
  125. package/.turbo/turbo-type.log +0 -5
  126. package/babel.config.js +0 -3
  127. package/esm/cursors.d.ts.map +0 -1
  128. package/esm/cursors.js.map +0 -1
  129. package/esm/loader-map.d.ts +0 -6
  130. package/esm/loader-map.d.ts.map +0 -1
  131. package/esm/loader-map.js.map +0 -1
  132. package/esm/refs.d.ts.map +0 -1
  133. package/esm/refs.js.map +0 -1
  134. package/esm/util/index.d.ts +0 -5
  135. package/esm/util/index.d.ts.map +0 -1
  136. package/esm/util/index.js +0 -16
  137. package/esm/util/index.js.map +0 -1
  138. package/esm/util/map-includes.d.ts +0 -6
  139. package/esm/util/map-includes.d.ts.map +0 -1
  140. package/esm/util/map-includes.js +0 -184
  141. package/esm/util/map-includes.js.map +0 -1
  142. package/esm/util/merge-includes.d.ts +0 -3
  143. package/esm/util/merge-includes.d.ts.map +0 -1
  144. package/esm/util/merge-includes.js +0 -91
  145. package/esm/util/merge-includes.js.map +0 -1
  146. package/lib/cursors.d.ts.map +0 -1
  147. package/lib/cursors.js.map +0 -1
  148. package/lib/loader-map.d.ts +0 -6
  149. package/lib/loader-map.d.ts.map +0 -1
  150. package/lib/loader-map.js.map +0 -1
  151. package/lib/refs.d.ts.map +0 -1
  152. package/lib/refs.js.map +0 -1
  153. package/lib/util/index.d.ts +0 -5
  154. package/lib/util/index.d.ts.map +0 -1
  155. package/lib/util/index.js +0 -30
  156. package/lib/util/index.js.map +0 -1
  157. package/lib/util/map-includes.d.ts +0 -6
  158. package/lib/util/map-includes.d.ts.map +0 -1
  159. package/lib/util/map-includes.js +0 -189
  160. package/lib/util/map-includes.js.map +0 -1
  161. package/lib/util/merge-includes.d.ts +0 -3
  162. package/lib/util/merge-includes.d.ts.map +0 -1
  163. package/lib/util/merge-includes.js +0 -96
  164. package/lib/util/merge-includes.js.map +0 -1
  165. package/src/util/index.ts +0 -26
  166. package/src/util/map-includes.ts +0 -328
  167. package/src/util/merge-includes.ts +0 -121
  168. package/tsconfig.tsbuildinfo +0 -1
@@ -1,15 +1,16 @@
1
1
  import { ObjectRef, SchemaTypes } from '@pothos/core';
2
- import { Prisma } from '../tests/client';
3
- import { PrismaObjectRef } from './object-ref';
4
- import { PrismaDelegate } from './types';
5
- import { PrismaModelTypes } from '.';
2
+ import { Prisma } from '../../tests/client';
3
+ import { PrismaObjectRef } from '../object-ref';
4
+ import { PrismaDelegate, PrismaModelTypes } from '../types';
6
5
  export declare const refMap: WeakMap<object, Map<string, PrismaObjectRef<PrismaModelTypes, {}>>>;
7
6
  export declare const findUniqueMap: WeakMap<object, Map<ObjectRef<unknown, unknown>, ((args: unknown, ctx: {}) => unknown) | null>>;
8
7
  export declare const includeForRefMap: WeakMap<object, Map<ObjectRef<unknown, unknown>, Record<string, unknown> | null>>;
9
8
  export declare function getRefFromModel<Types extends SchemaTypes>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>): PrismaObjectRef<PrismaModelTypes>;
10
- export declare function getFindUniqueForRef<Types extends SchemaTypes>(ref: ObjectRef<unknown>, builder: PothosSchemaTypes.SchemaBuilder<Types>): ((args: unknown, context: Types['Context']) => unknown) | null;
11
- export declare function setFindUniqueForRef<Types extends SchemaTypes>(ref: ObjectRef<unknown>, builder: PothosSchemaTypes.SchemaBuilder<Types>, findUnique: ((args: any, context: Types['Context']) => unknown) | null): void;
12
9
  export declare function getRelation<Types extends SchemaTypes>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, relation: string): Prisma.DMMF.Field;
13
- export declare function getRelatedDelegate<Types extends SchemaTypes>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, relation: string): string;
10
+ export declare function getModel<Types extends SchemaTypes>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>): Prisma.DMMF.Model;
11
+ export declare function getCursorFormatter<Types extends SchemaTypes>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, cursor: string): (value: Record<string, unknown>) => string;
12
+ export declare function getCursorParser<Types extends SchemaTypes>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, cursor: string): (rawCursor: string) => {
13
+ [x: string]: unknown;
14
+ };
14
15
  export declare function getDelegateFromModel(client: Record<string, unknown>, model: string): PrismaDelegate;
15
- //# sourceMappingURL=refs.d.ts.map
16
+ //# sourceMappingURL=datamodel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datamodel.d.ts","sourceRoot":"","sources":["../../src/util/datamodel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5D,eAAO,MAAM,MAAM,qEAAwE,CAAC;AAC5F,eAAO,MAAM,aAAa,2DAEQ,OAAO,OAAO,EAAE,KAAK,OAAO,UAC3D,CAAC;AAEJ,eAAO,MAAM,gBAAgB,mFAG1B,CAAC;AAEJ,wBAAgB,eAAe,CAAC,KAAK,SAAS,WAAW,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,GAC9C,eAAe,CAAC,gBAAgB,CAAC,CAWnC;AAED,wBAAgB,WAAW,CAAC,KAAK,SAAS,WAAW,EACnD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,QAAQ,EAAE,MAAM,qBAejB;AAED,wBAAgB,QAAQ,CAAC,KAAK,SAAS,WAAW,EAChD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,qBAahD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,WAAW,EAC1D,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,MAAM,EAAE,MAAM,8CAMf;AAED,wBAAgB,eAAe,CAAC,KAAK,SAAS,WAAW,EACvD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,EAC/C,MAAM,EAAE,MAAM,eAQK,MAAM;;EAG1B;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,kBAUlF"}
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDelegateFromModel = exports.getRelatedDelegate = exports.getRelation = exports.setFindUniqueForRef = exports.getFindUniqueForRef = exports.getRefFromModel = exports.includeForRefMap = exports.findUniqueMap = exports.refMap = void 0;
4
- const object_ref_1 = require("./object-ref");
3
+ exports.getDelegateFromModel = exports.getCursorParser = exports.getCursorFormatter = exports.getModel = exports.getRelation = exports.getRefFromModel = exports.includeForRefMap = exports.findUniqueMap = exports.refMap = void 0;
4
+ const object_ref_1 = require("../object-ref");
5
+ const cursors_1 = require("./cursors");
5
6
  exports.refMap = new WeakMap();
6
7
  exports.findUniqueMap = new WeakMap();
7
8
  exports.includeForRefMap = new WeakMap();
@@ -16,28 +17,19 @@ function getRefFromModel(name, builder) {
16
17
  return cache.get(name);
17
18
  }
18
19
  exports.getRefFromModel = getRefFromModel;
19
- function getFindUniqueForRef(ref, builder) {
20
- if (!exports.findUniqueMap.has(builder)) {
21
- exports.findUniqueMap.set(builder, new Map());
22
- }
23
- const cache = exports.findUniqueMap.get(builder);
24
- if (!cache.has(ref)) {
25
- return null;
20
+ function getRelation(name, builder, relation) {
21
+ const modelData = getModel(name, builder);
22
+ const fieldData = modelData.fields.find((field) => field.name === relation);
23
+ if (!fieldData) {
24
+ throw new Error(`Field '${relation}' not found in model '${name}'`);
26
25
  }
27
- return cache.get(ref);
28
- }
29
- exports.getFindUniqueForRef = getFindUniqueForRef;
30
- function setFindUniqueForRef(ref, builder,
31
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
- findUnique) {
33
- if (!exports.findUniqueMap.has(builder)) {
34
- exports.findUniqueMap.set(builder, new Map());
26
+ if (fieldData.kind !== 'object') {
27
+ throw new Error(`Field ${relation} of model '${name}' is not a relation (${fieldData.kind})`);
35
28
  }
36
- const cache = exports.findUniqueMap.get(builder);
37
- cache.set(ref, findUnique);
29
+ return fieldData;
38
30
  }
39
- exports.setFindUniqueForRef = setFindUniqueForRef;
40
- function getRelation(name, builder, relation) {
31
+ exports.getRelation = getRelation;
32
+ function getModel(name, builder) {
41
33
  const { client } = builder.options.prisma;
42
34
  // eslint-disable-next-line no-underscore-dangle
43
35
  const dmmf = client
@@ -46,21 +38,26 @@ function getRelation(name, builder, relation) {
46
38
  if (!modelData) {
47
39
  throw new Error(`Model '${name}' not found in DMMF`);
48
40
  }
49
- const fieldData = modelData.fields.find((field) => field.name === relation);
50
- if (!fieldData) {
51
- throw new Error(`Field '${relation}' not found in model '${name}'`);
52
- }
53
- if (fieldData.kind !== 'object') {
54
- throw new Error(`Field ${relation} of model '${name}' is not a relation (${fieldData.kind})`);
55
- }
56
- return fieldData;
41
+ return modelData;
57
42
  }
58
- exports.getRelation = getRelation;
59
- function getRelatedDelegate(name, builder, relation) {
60
- const fieldData = getRelation(name, builder, relation);
61
- return fieldData.type;
43
+ exports.getModel = getModel;
44
+ function getCursorFormatter(name, builder, cursor) {
45
+ var _a, _b, _c;
46
+ const modelData = getModel(name, builder);
47
+ const primaryKey = (_b = (_a = modelData.primaryKey) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : (_c = modelData.primaryKey) === null || _c === void 0 ? void 0 : _c.fields.join('_');
48
+ return (0, cursors_1.formatCursor)(cursor === primaryKey ? modelData.primaryKey.fields : cursor);
49
+ }
50
+ exports.getCursorFormatter = getCursorFormatter;
51
+ function getCursorParser(name, builder, cursor) {
52
+ var _a, _b, _c;
53
+ const modelData = getModel(name, builder);
54
+ const primaryKey = (_b = (_a = modelData.primaryKey) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : (_c = modelData.primaryKey) === null || _c === void 0 ? void 0 : _c.fields.join('_');
55
+ const parser = cursor === primaryKey ? (0, cursors_1.parseCompositeCursor)(modelData.primaryKey.fields) : cursors_1.parseRawCursor;
56
+ return (rawCursor) => ({
57
+ [cursor]: parser(rawCursor),
58
+ });
62
59
  }
63
- exports.getRelatedDelegate = getRelatedDelegate;
60
+ exports.getCursorParser = getCursorParser;
64
61
  function getDelegateFromModel(client, model) {
65
62
  const lowerCase = `${model.slice(0, 1).toLowerCase()}${model.slice(1)}`;
66
63
  const delegate = lowerCase in client ? client[lowerCase] : null;
@@ -70,4 +67,4 @@ function getDelegateFromModel(client, model) {
70
67
  return delegate;
71
68
  }
72
69
  exports.getDelegateFromModel = getDelegateFromModel;
73
- //# sourceMappingURL=refs.js.map
70
+ //# sourceMappingURL=datamodel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datamodel.js","sourceRoot":"","sources":["../../src/util/datamodel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function deepEqual(left: unknown, right: unknown, ignore?: Set<string>): boolean;
2
+ //# sourceMappingURL=deep-equal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-equal.d.ts","sourceRoot":"","sources":["../../src/util/deep-equal.ts"],"names":[],"mappings":"AACA,wBAAgB,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,WAiD5E"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deepEqual = void 0;
4
+ /* eslint-disable no-continue */
5
+ function deepEqual(left, right, ignore) {
6
+ if (left === right) {
7
+ return true;
8
+ }
9
+ if (left && right && typeof left === 'object' && typeof right === 'object') {
10
+ if (Array.isArray(left)) {
11
+ if (!Array.isArray(right)) {
12
+ return false;
13
+ }
14
+ const { length } = left;
15
+ if (right.length !== length) {
16
+ return false;
17
+ }
18
+ for (let i = 0; i < length; i += 1) {
19
+ if (!deepEqual(left[i], right[i])) {
20
+ return false;
21
+ }
22
+ }
23
+ return true;
24
+ }
25
+ const keys = Object.keys(left);
26
+ const keyLength = keys.length;
27
+ if (keyLength !== Object.keys(right).length) {
28
+ return false;
29
+ }
30
+ for (const key of keys) {
31
+ if (ignore === null || ignore === void 0 ? void 0 : ignore.has(key)) {
32
+ continue;
33
+ }
34
+ if (!deepEqual(left[key], right[key])) {
35
+ return false;
36
+ }
37
+ }
38
+ return true;
39
+ }
40
+ return false;
41
+ }
42
+ exports.deepEqual = deepEqual;
43
+ //# sourceMappingURL=deep-equal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deep-equal.js","sourceRoot":"","sources":["../../src/util/deep-equal.ts"],"names":[],"mappings":";;;AAAA,gCAAgC;AAChC,SAAgB,SAAS,CAAC,IAAa,EAAE,KAAc,EAAE,MAAoB;IAC3E,IAAI,IAAI,KAAK,KAAK,EAAE;QAClB,OAAO,IAAI,CAAC;KACb;IAED,IAAI,IAAI,IAAI,KAAK,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACzB,OAAO,KAAK,CAAC;aACd;YAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;YAExB,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE;gBAC3B,OAAO,KAAK,CAAC;aACd;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;oBACjC,OAAO,KAAK,CAAC;iBACd;aACF;YAED,OAAO,IAAI,CAAC;SACb;QAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9B,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE;YAC3C,OAAO,KAAK,CAAC;SACd;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;YACtB,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,GAAG,CAAC,GAAG,CAAC,EAAE;gBACpB,SAAS;aACV;YAED,IACE,CAAC,SAAS,CAAE,IAAgC,CAAC,GAAG,CAAC,EAAG,KAAiC,CAAC,GAAG,CAAC,CAAC,EAC3F;gBACA,OAAO,KAAK,CAAC;aACd;SACF;QAED,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAjDD,8BAiDC"}
@@ -0,0 +1,6 @@
1
+ import { GraphQLNamedType, GraphQLResolveInfo } from 'graphql';
2
+ import { LoaderMappings } from '../types';
3
+ export declare function cacheKey(type: string, path: GraphQLResolveInfo['path'], subPath: string[]): string;
4
+ export declare function setLoaderMappings(ctx: object, info: GraphQLResolveInfo, value: LoaderMappings, type: GraphQLNamedType): void;
5
+ export declare function getLoaderMapping(ctx: object, path: GraphQLResolveInfo['path'], type: string): LoaderMappings | null;
6
+ //# sourceMappingURL=loader-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-map.d.ts","sourceRoot":"","sources":["../../src/util/loader-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAK1C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAgBzF;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,EACxB,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,gBAAgB,QAWvB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,yBAK3F"}
@@ -2,8 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getLoaderMapping = exports.setLoaderMappings = exports.cacheKey = void 0;
4
4
  const core_1 = require("@pothos/core");
5
+ const map_query_1 = require("./map-query");
5
6
  const cache = (0, core_1.createContextCache)((ctx) => new Map());
6
- function cacheKey(path, subPath) {
7
+ function cacheKey(type, path, subPath) {
7
8
  let key = '';
8
9
  let current = path;
9
10
  while (current) {
@@ -15,26 +16,23 @@ function cacheKey(path, subPath) {
15
16
  for (const entry of subPath) {
16
17
  key = `${key}.${entry}`;
17
18
  }
18
- return key;
19
+ return `${type}@${key}`;
19
20
  }
20
21
  exports.cacheKey = cacheKey;
21
- function setLoaderMappings(ctx, path, value) {
22
+ function setLoaderMappings(ctx, info, value, type) {
22
23
  Object.keys(value).forEach((field) => {
23
- var _a;
24
24
  const map = cache(ctx);
25
- for (const mapping of value[field]) {
26
- const selectionName = (_a = mapping.alias) !== null && _a !== void 0 ? _a : mapping.field;
27
- const subPath = [...mapping.indirectPath, selectionName];
28
- const key = cacheKey(path, subPath);
29
- map.set(key, mapping.mappings);
30
- }
25
+ const mapping = value[field];
26
+ const subPath = [...mapping.indirectPath, field];
27
+ const key = cacheKey((0, map_query_1.getIndirectType)(type, info).name, info.path, subPath);
28
+ map.set(key, mapping.mappings);
31
29
  });
32
30
  }
33
31
  exports.setLoaderMappings = setLoaderMappings;
34
- function getLoaderMapping(ctx, path) {
32
+ function getLoaderMapping(ctx, path, type) {
35
33
  var _a;
36
34
  const map = cache(ctx);
37
- const key = cacheKey(path, []);
35
+ const key = cacheKey(type, path, []);
38
36
  return (_a = map.get(key)) !== null && _a !== void 0 ? _a : null;
39
37
  }
40
38
  exports.getLoaderMapping = getLoaderMapping;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-map.js","sourceRoot":"","sources":["../../src/util/loader-map.ts"],"names":[],"mappings":";;;AACA,uCAAkD;AAElD,2CAA8C;AAE9C,MAAM,KAAK,GAAG,IAAA,yBAAkB,EAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAA0B,CAAC,CAAC;AAE7E,SAAgB,QAAQ,CAAC,IAAY,EAAE,IAAgC,EAAE,OAAiB;IACxF,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,OAAO,GAA2C,IAAI,CAAC;IAE3D,OAAO,OAAO,EAAE;QACd,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,EAAE;YACnC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;SACnD;QACD,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;KACxB;IAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;KACzB;IAED,OAAO,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC;AAC1B,CAAC;AAhBD,4BAgBC;AAED,SAAgB,iBAAiB,CAC/B,GAAW,EACX,IAAwB,EACxB,KAAqB,EACrB,IAAsB;IAEtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAA,2BAAe,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAE3E,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;AACL,CAAC;AAfD,8CAeC;AAED,SAAgB,gBAAgB,CAAC,GAAW,EAAE,IAAgC,EAAE,IAAY;;IAC1F,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;AAC9B,CAAC;AALD,4CAKC"}
@@ -0,0 +1,6 @@
1
+ import { GraphQLNamedType, GraphQLResolveInfo } from 'graphql';
2
+ import { SelectionState } from './selections';
3
+ export declare function queryFromInfo(context: object, info: GraphQLResolveInfo, typeName?: string): {};
4
+ export declare function selectionStateFromInfo(context: object, info: GraphQLResolveInfo, typeName?: string): SelectionState;
5
+ export declare function getIndirectType(type: GraphQLNamedType, info: GraphQLResolveInfo): GraphQLNamedType;
6
+ //# sourceMappingURL=map-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-query.d.ts","sourceRoot":"","sources":["../../src/util/map-query.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,gBAAgB,EAEhB,kBAAkB,EAKnB,MAAM,SAAS,CAAC;AAIjB,OAAO,EAIL,cAAc,EAEf,MAAM,cAAc,CAAC;AAwPtB,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,EAAE,CAS9F;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,EACxB,QAAQ,CAAC,EAAE,MAAM,kBAalB;AAkBD,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,kBAAkB,oBAU/E"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIndirectType = exports.selectionStateFromInfo = exports.queryFromInfo = void 0;
4
+ /* eslint-disable no-param-reassign */
5
+ /* eslint-disable no-continue */
6
+ const graphql_1 = require("graphql");
7
+ const values_1 = require("graphql/execution/values");
8
+ const loader_map_1 = require("./loader-map");
9
+ const selections_1 = require("./selections");
10
+ function addTypeSelectionsForField(type, context, info, state, selection, indirectPath) {
11
+ var _a;
12
+ if (selection.name.value.startsWith('__')) {
13
+ return;
14
+ }
15
+ const { pothosPrismaInclude, pothosPrismaSelect, pothosPrismaIndirectInclude, pothosPrismaModel, } = ((_a = type.extensions) !== null && _a !== void 0 ? _a : {});
16
+ if (pothosPrismaIndirectInclude) {
17
+ resolveIndirectInclude(type, info, selection, pothosPrismaIndirectInclude.path, indirectPath, (resolvedType, field, path) => {
18
+ addTypeSelectionsForField(resolvedType, context, info, state, field, path);
19
+ });
20
+ }
21
+ if (!(0, graphql_1.isObjectType)(type)) {
22
+ return;
23
+ }
24
+ if (pothosPrismaModel && !pothosPrismaSelect) {
25
+ state.mode = 'include';
26
+ }
27
+ if (pothosPrismaInclude || pothosPrismaSelect) {
28
+ (0, selections_1.mergeSelection)(state, {
29
+ select: pothosPrismaSelect ? { ...pothosPrismaSelect } : undefined,
30
+ include: pothosPrismaInclude ? { ...pothosPrismaInclude } : undefined,
31
+ });
32
+ }
33
+ if (selection.selectionSet) {
34
+ addNestedSelections(type, context, info, state, selection.selectionSet, indirectPath);
35
+ }
36
+ }
37
+ function resolveIndirectInclude(type, info, selection, includePath, path, resolve) {
38
+ var _a, _b, _c, _d;
39
+ const [include, ...rest] = includePath;
40
+ if (!selection.selectionSet || !include) {
41
+ return;
42
+ }
43
+ for (const sel of selection.selectionSet.selections) {
44
+ switch (sel.kind) {
45
+ case graphql_1.Kind.FIELD:
46
+ if (sel.name.value === include.name && (0, graphql_1.isObjectType)(type)) {
47
+ const returnType = (0, graphql_1.getNamedType)(type.getFields()[sel.name.value].type);
48
+ if (rest.length === 0) {
49
+ resolve(returnType, sel, [...path, (_b = (_a = sel.alias) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : sel.name.value]);
50
+ }
51
+ else {
52
+ resolveIndirectInclude(returnType, info, sel, rest, [...path, (_d = (_c = sel.alias) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : sel.name.value], resolve);
53
+ }
54
+ }
55
+ continue;
56
+ case graphql_1.Kind.FRAGMENT_SPREAD:
57
+ if (info.fragments[sel.name.value].typeCondition.name.value === include.type) {
58
+ resolveIndirectInclude(info.schema.getType(include.type), info, info.fragments[sel.name.value], includePath, path, resolve);
59
+ }
60
+ continue;
61
+ case graphql_1.Kind.INLINE_FRAGMENT:
62
+ if (!sel.typeCondition || sel.typeCondition.name.value === include.type) {
63
+ resolveIndirectInclude(sel.typeCondition ? info.schema.getType(sel.typeCondition.name.value) : type, info, sel, includePath, path, resolve);
64
+ }
65
+ continue;
66
+ default:
67
+ throw new Error(`Unsupported selection kind ${selection.kind}`);
68
+ }
69
+ }
70
+ }
71
+ function addNestedSelections(type, context, info, state, selections, indirectPath) {
72
+ for (const selection of selections.selections) {
73
+ switch (selection.kind) {
74
+ case graphql_1.Kind.FIELD:
75
+ addFieldSelection(type, context, info, state, selection, indirectPath);
76
+ continue;
77
+ case graphql_1.Kind.FRAGMENT_SPREAD:
78
+ if (info.fragments[selection.name.value].typeCondition.name.value !== type.name) {
79
+ continue;
80
+ }
81
+ addNestedSelections(type, context, info, state, info.fragments[selection.name.value].selectionSet, indirectPath);
82
+ continue;
83
+ case graphql_1.Kind.INLINE_FRAGMENT:
84
+ if (selection.typeCondition && selection.typeCondition.name.value !== type.name) {
85
+ continue;
86
+ }
87
+ addNestedSelections(type, context, info, state, selection.selectionSet, indirectPath);
88
+ continue;
89
+ default:
90
+ throw new Error(`Unsupported selection kind ${selection.kind}`);
91
+ }
92
+ }
93
+ }
94
+ function addFieldSelection(type, context, info, state, selection, indirectPath) {
95
+ var _a, _b, _c, _d, _e, _f;
96
+ if (selection.name.value.startsWith('__')) {
97
+ return;
98
+ }
99
+ const field = type.getFields()[selection.name.value];
100
+ if (!field) {
101
+ throw new Error(`Unknown field ${selection.name.value} on ${type.name}`);
102
+ }
103
+ const fieldSelect = (_a = field.extensions) === null || _a === void 0 ? void 0 : _a.pothosPrismaSelect;
104
+ let fieldSelectionMap;
105
+ const fieldParentSelect = (_b = field.extensions) === null || _b === void 0 ? void 0 : _b.pothosPrismaParentSelect;
106
+ let mappings = {};
107
+ if (typeof fieldSelect === 'function') {
108
+ const args = (0, values_1.getArgumentValues)(field, selection, info.variableValues);
109
+ fieldSelectionMap = fieldSelect(args, context, (rawQuery) => {
110
+ const returnType = (0, graphql_1.getNamedType)(field.type);
111
+ const query = typeof rawQuery === 'function' ? rawQuery(args, context) : rawQuery;
112
+ const fieldState = createStateForType(returnType, info, state);
113
+ if (typeof query === 'object' && Object.keys(query).length > 0) {
114
+ (0, selections_1.mergeSelection)(fieldState, { select: {}, ...query });
115
+ }
116
+ addTypeSelectionsForField(returnType, context, info, fieldState, selection, []);
117
+ // eslint-disable-next-line prefer-destructuring
118
+ mappings = fieldState.mappings;
119
+ return (0, selections_1.selectionToQuery)(fieldState);
120
+ });
121
+ }
122
+ else {
123
+ fieldSelectionMap = { select: fieldSelect };
124
+ }
125
+ if (fieldSelect && (0, selections_1.selectionCompatible)(state, fieldSelectionMap, true)) {
126
+ (0, selections_1.mergeSelection)(state, fieldSelectionMap);
127
+ state.mappings[(_d = (_c = selection.alias) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : selection.name.value] = {
128
+ field: selection.name.value,
129
+ mappings,
130
+ indirectPath,
131
+ };
132
+ }
133
+ else if (fieldParentSelect &&
134
+ state.parent &&
135
+ (0, selections_1.selectionCompatible)(state.parent, { select: fieldParentSelect }, true)) {
136
+ (0, selections_1.mergeSelection)(state.parent, { select: fieldParentSelect });
137
+ state.mappings[(_f = (_e = selection.alias) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : selection.name.value] = {
138
+ field: selection.name.value,
139
+ mappings,
140
+ indirectPath,
141
+ };
142
+ }
143
+ }
144
+ function queryFromInfo(context, info, typeName) {
145
+ const type = typeName ? info.schema.getTypeMap()[typeName] : (0, graphql_1.getNamedType)(info.returnType);
146
+ const state = createStateForType(type, info);
147
+ addTypeSelectionsForField(type, context, info, state, info.fieldNodes[0], []);
148
+ (0, loader_map_1.setLoaderMappings)(context, info, state.mappings, type);
149
+ return (0, selections_1.selectionToQuery)(state);
150
+ }
151
+ exports.queryFromInfo = queryFromInfo;
152
+ function selectionStateFromInfo(context, info, typeName) {
153
+ const type = typeName ? info.schema.getTypeMap()[typeName] : info.parentType;
154
+ const state = createStateForType(type, info);
155
+ if (!(0, graphql_1.isObjectType)(type)) {
156
+ throw new Error('Prisma plugin can only resolve includes for object types');
157
+ }
158
+ addFieldSelection(type, context, info, state, info.fieldNodes[0], []);
159
+ return state;
160
+ }
161
+ exports.selectionStateFromInfo = selectionStateFromInfo;
162
+ function createStateForType(type, info, parent) {
163
+ const targetType = getIndirectType(type, info);
164
+ const fieldMap = targetType.extensions.pothosPrismaFieldMap;
165
+ return (0, selections_1.createState)(fieldMap, targetType.extensions.pothosPrismaSelect ? 'select' : 'include', parent);
166
+ }
167
+ function getIndirectType(type, info) {
168
+ let targetType = type;
169
+ while (targetType.extensions.pothosPrismaIndirectInclude) {
170
+ targetType = info.schema.getType(targetType.extensions.pothosPrismaIndirectInclude.getType());
171
+ }
172
+ return targetType;
173
+ }
174
+ exports.getIndirectType = getIndirectType;
175
+ //# sourceMappingURL=map-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-query.js","sourceRoot":"","sources":["../../src/util/map-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { DMMF } from '@prisma/generator-helper';
2
+ export interface FieldMap {
3
+ model: string;
4
+ relations: Map<string, FieldMap>;
5
+ }
6
+ export declare type RelationMap = Map<string, FieldMap>;
7
+ export declare const getRelationMap: import("@pothos/core").ContextCache<RelationMap, object, []>;
8
+ export declare function createRelationMap({ models }: DMMF.Datamodel): RelationMap;
9
+ //# sourceMappingURL=relation-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-map.d.ts","sourceRoot":"","sources":["../../src/util/relation-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAClC;AAED,oBAAY,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,cAAc,8DAK1B,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,eAkB3D"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRelationMap = exports.getRelationMap = void 0;
4
+ const core_1 = require("@pothos/core");
5
+ exports.getRelationMap = (0, core_1.createContextCache)((client) => createRelationMap(
6
+ // eslint-disable-next-line no-underscore-dangle
7
+ client._dmmf.datamodel));
8
+ function createRelationMap({ models }) {
9
+ const relationMap = new Map();
10
+ models.forEach((model) => {
11
+ relationMap.set(model.name, { model: model.name, relations: new Map() });
12
+ });
13
+ models.forEach((model) => {
14
+ const map = relationMap.get(model.name).relations;
15
+ model.fields.forEach((field) => {
16
+ if (field.kind === 'object' && relationMap.has(field.type)) {
17
+ map.set(field.name, relationMap.get(field.type));
18
+ }
19
+ });
20
+ });
21
+ return relationMap;
22
+ }
23
+ exports.createRelationMap = createRelationMap;
24
+ //# sourceMappingURL=relation-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relation-map.js","sourceRoot":"","sources":["../../src/util/relation-map.ts"],"names":[],"mappings":";;;AAAA,uCAAkD;AAUrC,QAAA,cAAc,GAAG,IAAA,yBAAkB,EAAC,CAAC,MAAc,EAAE,EAAE,CAClE,iBAAiB;AACf,gDAAgD;AAC/C,MAA8D,CAAC,KAAK,CAAC,SAAS,CAChF,CACF,CAAC;AAEF,SAAgB,iBAAiB,CAAC,EAAE,MAAM,EAAkB;IAC1D,MAAM,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE3C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QACvB,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,SAAS,CAAC;QAEnD,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBAC1D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC,CAAC;aACnD;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAlBD,8CAkBC"}
@@ -0,0 +1,20 @@
1
+ import { FieldMap } from './relation-map';
2
+ import { LoaderMappings, SelectionMap } from '..';
3
+ export declare type SelectionMode = 'select' | 'include';
4
+ export interface SelectionState {
5
+ fieldMap: FieldMap;
6
+ query: object;
7
+ mode: SelectionMode;
8
+ fields: Set<string>;
9
+ counts: Set<string>;
10
+ relations: Map<string, SelectionState>;
11
+ mappings: LoaderMappings;
12
+ parent?: SelectionState;
13
+ }
14
+ export declare function selectionCompatible(state: SelectionState, selectionMap: SelectionMap | boolean, ignoreQuery?: boolean): boolean;
15
+ export declare function stateCompatible(state: SelectionState, newState: SelectionState, ignoreQuery?: boolean): boolean;
16
+ export declare function mergeState(state: SelectionState, newState: SelectionState): void;
17
+ export declare function createState(fieldMap: FieldMap, mode: SelectionMode, parent?: SelectionState): SelectionState;
18
+ export declare function mergeSelection(state: SelectionState, { select, include, ...query }: SelectionMap): void;
19
+ export declare function selectionToQuery(state: SelectionState): SelectionMap;
20
+ //# sourceMappingURL=selections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selections.d.ts","sourceRoot":"","sources":["../../src/util/selections.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElD,oBAAY,aAAa,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACvC,QAAQ,EAAE,cAAc,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,EAAE,YAAY,GAAG,OAAO,EACpC,WAAW,UAAQ,GAClB,OAAO,CAyBT;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,QAAQ,EAAE,cAAc,EACxB,WAAW,UAAQ,GAClB,OAAO,CAQT;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,cAAc,QAczE;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,aAAa,EACnB,MAAM,CAAC,EAAE,cAAc,GACtB,cAAc,CAWhB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,QAkDhG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAyCpE"}