@pothos/plugin-prisma 0.17.2 → 3.0.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/CHANGELOG.md +22 -0
- package/README.md +403 -308
- package/esm/field-builder.js +11 -13
- package/esm/field-builder.js.map +1 -1
- package/esm/generator.js +4 -0
- package/esm/generator.js.map +1 -1
- package/esm/global-types.d.ts +23 -5
- package/esm/global-types.d.ts.map +1 -1
- package/esm/index.d.ts +4 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +46 -1
- package/esm/index.js.map +1 -1
- package/esm/model-loader.d.ts +5 -6
- package/esm/model-loader.d.ts.map +1 -1
- package/esm/model-loader.js +18 -78
- package/esm/model-loader.js.map +1 -1
- package/esm/prisma-field-builder.d.ts +25 -6
- package/esm/prisma-field-builder.d.ts.map +1 -1
- package/esm/prisma-field-builder.js +88 -119
- package/esm/prisma-field-builder.js.map +1 -1
- package/esm/schema-builder.js +15 -4
- package/esm/schema-builder.js.map +1 -1
- package/esm/types.d.ts +73 -77
- package/esm/types.d.ts.map +1 -1
- package/esm/types.js +1 -0
- package/esm/types.js.map +1 -1
- package/esm/{cursors.d.ts → util/cursors.d.ts} +10 -8
- package/esm/util/cursors.d.ts.map +1 -0
- package/esm/{cursors.js → util/cursors.js} +34 -13
- package/esm/util/cursors.js.map +1 -0
- package/{lib/refs.d.ts → esm/util/datamodel.d.ts} +9 -8
- package/esm/util/datamodel.d.ts.map +1 -0
- package/esm/{refs.js → util/datamodel.js} +27 -30
- package/esm/util/datamodel.js.map +1 -0
- package/esm/util/deep-equal.d.ts +2 -0
- package/esm/util/deep-equal.d.ts.map +1 -0
- package/esm/util/deep-equal.js +39 -0
- package/esm/util/deep-equal.js.map +1 -0
- package/esm/util/loader-map.d.ts +6 -0
- package/esm/util/loader-map.d.ts.map +1 -0
- package/esm/{loader-map.js → util/loader-map.js} +10 -12
- package/esm/util/loader-map.js.map +1 -0
- package/esm/util/map-query.d.ts +6 -0
- package/esm/util/map-query.d.ts.map +1 -0
- package/esm/util/map-query.js +169 -0
- package/esm/util/map-query.js.map +1 -0
- package/esm/util/relation-map.d.ts +9 -0
- package/esm/util/relation-map.d.ts.map +1 -0
- package/esm/util/relation-map.js +20 -0
- package/esm/util/relation-map.js.map +1 -0
- package/esm/util/selections.d.ts +20 -0
- package/esm/util/selections.d.ts.map +1 -0
- package/esm/util/selections.js +139 -0
- package/esm/util/selections.js.map +1 -0
- package/lib/field-builder.js +20 -18
- package/lib/field-builder.js.map +1 -1
- package/lib/generator.js +9 -1
- package/lib/generator.js.map +1 -1
- package/lib/global-types.d.ts +23 -5
- package/lib/global-types.d.ts.map +1 -1
- package/lib/index.d.ts +4 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +50 -1
- package/lib/index.js.map +1 -1
- package/lib/model-loader.d.ts +5 -6
- package/lib/model-loader.d.ts.map +1 -1
- package/lib/model-loader.js +19 -79
- package/lib/model-loader.js.map +1 -1
- package/lib/prisma-field-builder.d.ts +25 -6
- package/lib/prisma-field-builder.d.ts.map +1 -1
- package/lib/prisma-field-builder.js +92 -123
- package/lib/prisma-field-builder.js.map +1 -1
- package/lib/schema-builder.js +23 -8
- package/lib/schema-builder.js.map +1 -1
- package/lib/types.d.ts +73 -77
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -1
- package/lib/{cursors.d.ts → util/cursors.d.ts} +10 -8
- package/lib/util/cursors.d.ts.map +1 -0
- package/lib/{cursors.js → util/cursors.js} +39 -14
- package/lib/util/cursors.js.map +1 -0
- package/{esm/refs.d.ts → lib/util/datamodel.d.ts} +9 -8
- package/lib/util/datamodel.d.ts.map +1 -0
- package/lib/{refs.js → util/datamodel.js} +32 -35
- package/lib/util/datamodel.js.map +1 -0
- package/lib/util/deep-equal.d.ts +2 -0
- package/lib/util/deep-equal.d.ts.map +1 -0
- package/lib/util/deep-equal.js +43 -0
- package/lib/util/deep-equal.js.map +1 -0
- package/lib/util/loader-map.d.ts +6 -0
- package/lib/util/loader-map.d.ts.map +1 -0
- package/lib/{loader-map.js → util/loader-map.js} +10 -12
- package/lib/util/loader-map.js.map +1 -0
- package/lib/util/map-query.d.ts +6 -0
- package/lib/util/map-query.d.ts.map +1 -0
- package/lib/util/map-query.js +175 -0
- package/lib/util/map-query.js.map +1 -0
- package/lib/util/relation-map.d.ts +9 -0
- package/lib/util/relation-map.d.ts.map +1 -0
- package/lib/util/relation-map.js +24 -0
- package/lib/util/relation-map.js.map +1 -0
- package/lib/util/selections.d.ts +20 -0
- package/lib/util/selections.d.ts.map +1 -0
- package/lib/util/selections.js +148 -0
- package/lib/util/selections.js.map +1 -0
- package/package.json +8 -8
- package/src/field-builder.ts +12 -12
- package/src/generator.ts +18 -0
- package/src/global-types.ts +59 -12
- package/src/index.ts +75 -1
- package/src/model-loader.ts +27 -106
- package/src/prisma-field-builder.ts +199 -147
- package/src/schema-builder.ts +29 -7
- package/src/types.ts +149 -102
- package/src/{cursors.ts → util/cursors.ts} +45 -20
- package/src/{refs.ts → util/datamodel.ts} +36 -40
- package/src/util/deep-equal.ts +51 -0
- package/src/{loader-map.ts → util/loader-map.ts} +13 -13
- package/src/util/map-query.ts +327 -0
- package/src/util/relation-map.ts +36 -0
- package/src/util/selections.ts +192 -0
- package/esm/cursors.d.ts.map +0 -1
- package/esm/cursors.js.map +0 -1
- package/esm/loader-map.d.ts +0 -6
- package/esm/loader-map.d.ts.map +0 -1
- package/esm/loader-map.js.map +0 -1
- package/esm/refs.d.ts.map +0 -1
- package/esm/refs.js.map +0 -1
- package/esm/util/index.d.ts +0 -5
- package/esm/util/index.d.ts.map +0 -1
- package/esm/util/index.js +0 -16
- package/esm/util/index.js.map +0 -1
- package/esm/util/map-includes.d.ts +0 -6
- package/esm/util/map-includes.d.ts.map +0 -1
- package/esm/util/map-includes.js +0 -184
- package/esm/util/map-includes.js.map +0 -1
- package/esm/util/merge-includes.d.ts +0 -3
- package/esm/util/merge-includes.d.ts.map +0 -1
- package/esm/util/merge-includes.js +0 -91
- package/esm/util/merge-includes.js.map +0 -1
- package/lib/cursors.d.ts.map +0 -1
- package/lib/cursors.js.map +0 -1
- package/lib/loader-map.d.ts +0 -6
- package/lib/loader-map.d.ts.map +0 -1
- package/lib/loader-map.js.map +0 -1
- package/lib/refs.d.ts.map +0 -1
- package/lib/refs.js.map +0 -1
- package/lib/util/index.d.ts +0 -5
- package/lib/util/index.d.ts.map +0 -1
- package/lib/util/index.js +0 -30
- package/lib/util/index.js.map +0 -1
- package/lib/util/map-includes.d.ts +0 -6
- package/lib/util/map-includes.d.ts.map +0 -1
- package/lib/util/map-includes.js +0 -189
- package/lib/util/map-includes.js.map +0 -1
- package/lib/util/merge-includes.d.ts +0 -3
- package/lib/util/merge-includes.d.ts.map +0 -1
- package/lib/util/merge-includes.js +0 -96
- package/lib/util/merge-includes.js.map +0 -1
- package/src/util/index.ts +0 -26
- package/src/util/map-includes.ts +0 -328
- package/src/util/merge-includes.ts +0 -121
package/lib/index.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import './global-types';
|
|
2
2
|
import './field-builder';
|
|
3
3
|
import './schema-builder';
|
|
4
|
-
import {
|
|
4
|
+
import { GraphQLFieldResolver } from 'graphql';
|
|
5
|
+
import { BasePlugin, BuildCache, PothosOutputFieldConfig, SchemaTypes } from '@pothos/core';
|
|
5
6
|
export * from './types';
|
|
6
7
|
declare const pluginName: "prisma";
|
|
7
8
|
export default pluginName;
|
|
8
9
|
export declare class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
|
|
9
10
|
constructor(cache: BuildCache<Types>);
|
|
11
|
+
onOutputFieldConfig(fieldConfig: PothosOutputFieldConfig<Types>): PothosOutputFieldConfig<Types> | null;
|
|
12
|
+
wrapResolve(resolver: GraphQLFieldResolver<unknown, Types['Context'], object, unknown>, fieldConfig: PothosOutputFieldConfig<Types>): GraphQLFieldResolver<unknown, Types['Context'], object>;
|
|
10
13
|
}
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAgB,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAsB,EACpB,UAAU,EACV,UAAU,EACV,uBAAuB,EACvB,WAAW,EACZ,MAAM,cAAc,CAAC;AAKtB,cAAc,SAAS,CAAC;AAExB,QAAA,MAAM,UAAU,UAAoB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,qBAAa,YAAY,CAAC,KAAK,SAAS,WAAW,CAAE,SAAQ,UAAU,CAAC,KAAK,CAAC;gBAChE,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC;IAI3B,mBAAmB,CAC1B,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,uBAAuB,CAAC,KAAK,CAAC,GAAG,IAAI;IAc/B,WAAW,CAClB,QAAQ,EAAE,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAC1E,WAAW,EAAE,uBAAuB,CAAC,KAAK,CAAC,GAC1C,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CA6C3D"}
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -26,7 +30,10 @@ exports.PrismaPlugin = void 0;
|
|
|
26
30
|
require("./global-types");
|
|
27
31
|
require("./field-builder");
|
|
28
32
|
require("./schema-builder");
|
|
33
|
+
const graphql_1 = require("graphql");
|
|
29
34
|
const core_1 = __importStar(require("@pothos/core"));
|
|
35
|
+
const loader_map_1 = require("./util/loader-map");
|
|
36
|
+
const map_query_1 = require("./util/map-query");
|
|
30
37
|
__exportStar(require("./types"), exports);
|
|
31
38
|
const pluginName = 'prisma';
|
|
32
39
|
exports.default = pluginName;
|
|
@@ -34,6 +41,48 @@ class PrismaPlugin extends core_1.BasePlugin {
|
|
|
34
41
|
constructor(cache) {
|
|
35
42
|
super(cache, pluginName);
|
|
36
43
|
}
|
|
44
|
+
onOutputFieldConfig(fieldConfig) {
|
|
45
|
+
if (fieldConfig.kind === 'PrismaObject' && fieldConfig.pothosOptions.select) {
|
|
46
|
+
return {
|
|
47
|
+
...fieldConfig,
|
|
48
|
+
extensions: {
|
|
49
|
+
...fieldConfig.extensions,
|
|
50
|
+
pothosPrismaSelect: fieldConfig.pothosOptions.select,
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return fieldConfig;
|
|
55
|
+
}
|
|
56
|
+
wrapResolve(resolver, fieldConfig) {
|
|
57
|
+
var _a, _b;
|
|
58
|
+
if (fieldConfig.kind !== 'PrismaObject' || !((_a = fieldConfig.extensions) === null || _a === void 0 ? void 0 : _a.pothosPrismaSelect)) {
|
|
59
|
+
return resolver;
|
|
60
|
+
}
|
|
61
|
+
const parentConfig = this.buildCache.getTypeConfig(fieldConfig.parentType, 'Object');
|
|
62
|
+
const loadedCheck = fieldConfig.extensions.pothosPrismaLoaded;
|
|
63
|
+
const loaderCache = (_b = parentConfig.extensions) === null || _b === void 0 ? void 0 : _b.pothosPrismaLoader;
|
|
64
|
+
const fallback = fieldConfig.extensions.pothosPrismaFallback;
|
|
65
|
+
return (parent, args, context, info) => {
|
|
66
|
+
const mapping = (0, loader_map_1.getLoaderMapping)(context, info.path, info.parentType.name);
|
|
67
|
+
if ((!loadedCheck || loadedCheck(parent)) && mapping) {
|
|
68
|
+
(0, loader_map_1.setLoaderMappings)(context, info, mapping, (0, graphql_1.getNamedType)(info.returnType));
|
|
69
|
+
return resolver(parent, args, context, info);
|
|
70
|
+
}
|
|
71
|
+
if (fallback) {
|
|
72
|
+
return fallback((0, map_query_1.queryFromInfo)(context, info), parent, args, context, info);
|
|
73
|
+
}
|
|
74
|
+
const selectionState = (0, map_query_1.selectionStateFromInfo)(context, info);
|
|
75
|
+
return loaderCache(parent)
|
|
76
|
+
.loadSelection(selectionState, context)
|
|
77
|
+
.then((result) => {
|
|
78
|
+
const mappings = selectionState.mappings[info.path.key];
|
|
79
|
+
if (mappings) {
|
|
80
|
+
(0, loader_map_1.setLoaderMappings)(context, info, mappings.mappings, (0, graphql_1.getNamedType)(info.returnType));
|
|
81
|
+
}
|
|
82
|
+
return resolver(result, args, context, info);
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
}
|
|
37
86
|
}
|
|
38
87
|
exports.PrismaPlugin = PrismaPlugin;
|
|
39
88
|
core_1.default.registerPlugin(pluginName, PrismaPlugin);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/model-loader.d.ts
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import { SchemaTypes } from '@pothos/core';
|
|
2
2
|
import { PrismaDelegate } from './types';
|
|
3
|
+
import { SelectionState } from './util/selections';
|
|
3
4
|
export declare class ModelLoader {
|
|
4
5
|
model: object;
|
|
5
6
|
delegate: PrismaDelegate;
|
|
6
7
|
findUnique: (args: unknown, ctx: {}) => unknown;
|
|
7
8
|
staged: Set<{
|
|
8
9
|
promise: Promise<Record<string, unknown>>;
|
|
9
|
-
|
|
10
|
+
state: SelectionState;
|
|
10
11
|
}>;
|
|
11
12
|
constructor(model: object, delegate: PrismaDelegate, findUnique: (args: unknown, ctx: {}) => unknown);
|
|
12
|
-
static
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
loadRelation(relation: string, include: unknown, context: {}): Promise<unknown>;
|
|
16
|
-
initLoad(relation: string | null, includeArg: unknown, context: {}, count?: boolean): Promise<Record<string, unknown>>;
|
|
13
|
+
static forRef<Types extends SchemaTypes>(modelName: string, findUnique: (args: unknown, ctx: {}) => unknown, builder: PothosSchemaTypes.SchemaBuilder<Types>): import("@pothos/core").ContextCache<ModelLoader, object, []>;
|
|
14
|
+
loadSelection(selection: SelectionState, context: object): Promise<Record<string, unknown>>;
|
|
15
|
+
initLoad(state: SelectionState, context: {}): Promise<Record<string, unknown>>;
|
|
17
16
|
}
|
|
18
17
|
//# sourceMappingURL=model-loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAGL,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,WAAW;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,cAAc,CAAC;IACzB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO,CAAC;IAEhD,MAAM;iBACK,QAAQ,OAAO,MAAM,EAAE,OAAO,CAAC,CAAC;eAClC,cAAc;OAClB;gBAGH,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO;IAOjD,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,WAAW,EACrC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO,EAC/C,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;IAO3C,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM;IAcxD,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE;CAkBlD"}
|
package/lib/model-loader.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModelLoader = void 0;
|
|
4
|
-
/* eslint-disable prefer-destructuring */
|
|
5
|
-
/* eslint-disable no-underscore-dangle */
|
|
6
4
|
const core_1 = require("@pothos/core");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const loaderCache = new WeakMap();
|
|
5
|
+
const datamodel_1 = require("./util/datamodel");
|
|
6
|
+
const selections_1 = require("./util/selections");
|
|
10
7
|
class ModelLoader {
|
|
11
8
|
constructor(model, delegate, findUnique) {
|
|
12
9
|
this.staged = new Set();
|
|
@@ -14,91 +11,34 @@ class ModelLoader {
|
|
|
14
11
|
this.delegate = delegate;
|
|
15
12
|
this.findUnique = findUnique;
|
|
16
13
|
}
|
|
17
|
-
static
|
|
18
|
-
const delegate = (0,
|
|
19
|
-
|
|
20
|
-
const ref = (0, refs_1.getRefFromModel)(modelName, builder);
|
|
21
|
-
const findUnique = (0, refs_1.getFindUniqueForRef)(ref, builder);
|
|
22
|
-
loaderCache.set(delegate, (0, core_1.createContextCache)((model) => new ModelLoader(model, delegate, findUnique)));
|
|
23
|
-
}
|
|
24
|
-
return loaderCache.get(delegate);
|
|
14
|
+
static forRef(modelName, findUnique, builder) {
|
|
15
|
+
const delegate = (0, datamodel_1.getDelegateFromModel)(builder.options.prisma.client, modelName);
|
|
16
|
+
return (0, core_1.createContextCache)((model) => new ModelLoader(model, delegate, findUnique));
|
|
25
17
|
}
|
|
26
|
-
async
|
|
27
|
-
|
|
28
|
-
const entry = [...this.staged][0];
|
|
29
|
-
if (entry) {
|
|
30
|
-
if (!entry.include._count) {
|
|
31
|
-
entry.include._count = { select: {} };
|
|
32
|
-
}
|
|
33
|
-
entry.include._count.select[relation] = true;
|
|
34
|
-
promise = entry.promise;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
promise = this.initLoad(relation, null, context, true);
|
|
38
|
-
}
|
|
39
|
-
const result = await promise;
|
|
40
|
-
return result._count[relation];
|
|
41
|
-
}
|
|
42
|
-
async loadSelf(include, context) {
|
|
18
|
+
async loadSelection(selection, context) {
|
|
19
|
+
const query = (0, selections_1.selectionToQuery)(selection);
|
|
43
20
|
for (const entry of this.staged) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
entry.include = merged;
|
|
21
|
+
if ((0, selections_1.selectionCompatible)(entry.state, query)) {
|
|
22
|
+
(0, selections_1.mergeSelection)(entry.state, query);
|
|
47
23
|
return entry.promise;
|
|
48
24
|
}
|
|
49
25
|
}
|
|
50
|
-
return this.initLoad(
|
|
26
|
+
return this.initLoad(selection, context);
|
|
51
27
|
}
|
|
52
|
-
async
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (entry.include[relation] === undefined) {
|
|
56
|
-
promise = entry.promise;
|
|
57
|
-
entry.include[relation] = include;
|
|
58
|
-
break;
|
|
59
|
-
}
|
|
60
|
-
const merged = (0, util_1.mergeIncludes)(entry.include[relation], include);
|
|
61
|
-
if (merged) {
|
|
62
|
-
entry.include[relation] = merged;
|
|
63
|
-
break;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (!promise) {
|
|
67
|
-
promise = this.initLoad(relation, include, context);
|
|
68
|
-
}
|
|
69
|
-
const result = await promise;
|
|
70
|
-
return result[relation];
|
|
71
|
-
}
|
|
72
|
-
async initLoad(relation, includeArg, context, count = false) {
|
|
73
|
-
const include = (relation &&
|
|
74
|
-
(count
|
|
75
|
-
? {
|
|
76
|
-
_count: {
|
|
77
|
-
select: {
|
|
78
|
-
[relation]: true,
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
}
|
|
82
|
-
: {
|
|
83
|
-
[relation]: includeArg,
|
|
84
|
-
})) ||
|
|
85
|
-
{};
|
|
86
|
-
const promise = new Promise((resolve, reject) => {
|
|
87
|
-
setTimeout(() => {
|
|
28
|
+
async initLoad(state, context) {
|
|
29
|
+
const entry = {
|
|
30
|
+
promise: Promise.resolve().then(() => {
|
|
88
31
|
this.staged.delete(entry);
|
|
89
|
-
|
|
32
|
+
return this.delegate.findUnique({
|
|
90
33
|
rejectOnNotFound: true,
|
|
34
|
+
...(0, selections_1.selectionToQuery)(state),
|
|
91
35
|
where: { ...this.findUnique(this.model, context) },
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
});
|
|
96
|
-
const entry = {
|
|
97
|
-
promise,
|
|
98
|
-
include,
|
|
36
|
+
});
|
|
37
|
+
}),
|
|
38
|
+
state,
|
|
99
39
|
};
|
|
100
40
|
this.staged.add(entry);
|
|
101
|
-
return promise;
|
|
41
|
+
return entry.promise;
|
|
102
42
|
}
|
|
103
43
|
}
|
|
104
44
|
exports.ModelLoader = ModelLoader;
|
package/lib/model-loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"model-loader.js","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":";;;AAAA,uCAA+D;AAE/D,gDAAwD;AACxD,kDAK2B;AAE3B,MAAa,WAAW;IAUtB,YACE,KAAa,EACb,QAAwB,EACxB,UAA+C;QARjD,WAAM,GAAG,IAAI,GAAG,EAGZ,CAAC;QAOH,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,MAAM,CACX,SAAiB,EACjB,UAA+C,EAC/C,OAA+C;QAE/C,MAAM,QAAQ,GAAG,IAAA,gCAAoB,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEhF,OAAO,IAAA,yBAAkB,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAyB,EAAE,OAAe;QAC5D,MAAM,KAAK,GAAG,IAAA,6BAAgB,EAAC,SAAS,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,IAAA,gCAAmB,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;gBAC3C,IAAA,2BAAc,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAEnC,OAAO,KAAK,CAAC,OAAO,CAAC;aACtB;SACF;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,KAAqB,EAAE,OAAW;QAC/C,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE1B,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;oBAC9B,gBAAgB,EAAE,IAAI;oBACtB,GAAG,IAAA,6BAAgB,EAAC,KAAK,CAAC;oBAC1B,KAAK,EAAE,EAAE,GAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAQ,EAAE;iBAClD,CAAqC,CAAC;YAClD,CAAC,CAAC;YACF,KAAK;SACN,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvB,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;CACF;AA9DD,kCA8DC"}
|
|
@@ -1,17 +1,30 @@
|
|
|
1
|
-
import { FieldRef, InputFieldMap, NormalizeArgs,
|
|
1
|
+
import { CompatibleTypes, FieldKind, FieldRef, InputFieldMap, NormalizeArgs, ObjectRef, PluginName, SchemaTypes, TypeParam } from '@pothos/core';
|
|
2
2
|
import { PrismaObjectRef } from './object-ref';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { PrismaModelTypes, RelatedConnectionOptions, RelatedFieldOptions, RelationCountOptions, ShapeFromConnection, VariantFieldOptions } from './types';
|
|
4
|
+
import { FieldMap } from './util/relation-map';
|
|
5
|
+
declare const RootBuilder: {
|
|
6
|
+
new <Types extends SchemaTypes, Shape, Kind extends FieldKind>(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, kind: FieldKind, graphqlKind: PothosSchemaTypes.PothosKindToGraphQLType[FieldKind]): PothosSchemaTypes.RootFieldBuilder<Types, Shape, Kind>;
|
|
7
|
+
};
|
|
8
|
+
export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model extends PrismaModelTypes, NeedsResolve extends boolean, Shape extends object = Model['Shape']> extends RootBuilder<Types, Shape, 'PrismaObject'> {
|
|
7
9
|
model: string;
|
|
10
|
+
prismaFieldMap: FieldMap;
|
|
11
|
+
exposeBoolean: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "Boolean", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "Boolean", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"Boolean"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never) | null | undefined : "Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never : Nullable extends true ? ("Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never) | null | undefined : "Boolean" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Boolean"] : never, "PrismaObject">;
|
|
12
|
+
exposeFloat: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "Float", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "Float", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"Float"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never) | null | undefined : "Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never : Nullable extends true ? ("Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never) | null | undefined : "Float" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Float"] : never, "PrismaObject">;
|
|
13
|
+
exposeInt: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "Int", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "Int", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"Int"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never) | null | undefined : "Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never : Nullable extends true ? ("Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never) | null | undefined : "Int" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "Int"] : never, "PrismaObject">;
|
|
14
|
+
exposeID: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "ID", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "ID", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"ID"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never) | null | undefined : "ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never : Nullable extends true ? ("ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never) | null | undefined : "ID" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "ID"] : never, "PrismaObject">;
|
|
15
|
+
exposeString: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], "String", Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, "String", Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").FieldNullability<"String"> extends Nullable ? Types["DefaultFieldNullability"] extends true ? ("String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never) | null | undefined : "String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never : Nullable extends true ? ("String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never) | null | undefined : "String" extends keyof Types["outputShapes"] ? Types["outputShapes"][keyof Types["outputShapes"] & "String"] : never, "PrismaObject">;
|
|
16
|
+
exposeBooleanList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["Boolean"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["Boolean"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["Boolean"], Nullable>, "PrismaObject">;
|
|
17
|
+
exposeFloatList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["Float"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["Float"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["Float"], Nullable>, "PrismaObject">;
|
|
18
|
+
exposeIntList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["Int"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["Int"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["Int"], Nullable>, "PrismaObject">;
|
|
19
|
+
exposeIDList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["ID"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["ID"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["ID"], Nullable>, "PrismaObject">;
|
|
20
|
+
exposeStringList: <Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model["Shape"], ["String"], Nullable>>(...args: NormalizeArgs<[name: Name, options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, ["String"], Nullable, {}, ResolveReturnShape>, "type" | "resolve" | "select"> | undefined]>) => FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, ["String"], Nullable>, "PrismaObject">;
|
|
8
21
|
relatedConnection: 'relay' extends PluginName ? <Field extends Model['ListRelations'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(...args: NormalizeArgs<[
|
|
9
22
|
field: Field,
|
|
10
23
|
options: RelatedConnectionOptions<Types, Model, Field, Nullable, Args, NeedsResolve>,
|
|
11
24
|
connectionOptions?: PothosSchemaTypes.ConnectionObjectOptions<Types, ObjectRef<Shape>, false, false, ResolveReturnShape>,
|
|
12
25
|
edgeOptions?: PothosSchemaTypes.ConnectionEdgeObjectOptions<Types, ObjectRef<Shape>, false, ResolveReturnShape>
|
|
13
26
|
]>) => FieldRef<ShapeFromConnection<PothosSchemaTypes.ConnectionShapeHelper<Types, Shape, Nullable>>> : '@pothos/plugin-relay is required to use this method';
|
|
14
|
-
constructor(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, model: string);
|
|
27
|
+
constructor(name: string, builder: PothosSchemaTypes.SchemaBuilder<Types>, model: string, fieldMap: FieldMap);
|
|
15
28
|
relation<Field extends Model['Fields'], Nullable extends boolean, Args extends InputFieldMap, ResolveReturnShape>(...allArgs: NormalizeArgs<[
|
|
16
29
|
name: Field,
|
|
17
30
|
options?: RelatedFieldOptions<Types, Model, Field, Nullable, Args, ResolveReturnShape, NeedsResolve, Shape>
|
|
@@ -24,5 +37,11 @@ export declare class PrismaObjectFieldBuilder<Types extends SchemaTypes, Model e
|
|
|
24
37
|
variant: Variant,
|
|
25
38
|
options?: VariantFieldOptions<Types, Model, Variant extends PrismaObjectRef<Model> ? Variant : PrismaObjectRef<Model>>
|
|
26
39
|
]>): FieldRef<Model['Shape'], 'Object'>;
|
|
40
|
+
expose<Type extends TypeParam<Types>, Nullable extends boolean, ResolveReturnShape, Name extends CompatibleTypes<Types, Model['Shape'], Type, Nullable>>(...args: NormalizeArgs<[
|
|
41
|
+
name: Name,
|
|
42
|
+
options?: Omit<PothosSchemaTypes.ObjectFieldOptions<Types, Shape, Type, Nullable, {}, ResolveReturnShape>, 'resolve' | 'select'>
|
|
43
|
+
]>): FieldRef<import("@pothos/core").ShapeFromTypeParam<Types, Type, Nullable>, "PrismaObject">;
|
|
44
|
+
private createExpose;
|
|
27
45
|
}
|
|
46
|
+
export {};
|
|
28
47
|
//# sourceMappingURL=prisma-field-builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"prisma-field-builder.d.ts","sourceRoot":"","sources":["../src/prisma-field-builder.ts"],"names":[],"mappings":"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"}
|