@pothos/plugin-prisma 0.0.0-preview-20220211212258
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/.turbo/turbo-build.log +17 -0
- package/.turbo/turbo-test.log +18 -0
- package/.turbo/turbo-type.log +5 -0
- package/CHANGELOG.md +355 -0
- package/LICENSE +6 -0
- package/README.md +808 -0
- package/babel.config.js +3 -0
- package/bin/generator.js +2 -0
- package/esm/cursors.d.ts +55 -0
- package/esm/cursors.d.ts.map +1 -0
- package/esm/cursors.js +106 -0
- package/esm/cursors.js.map +1 -0
- package/esm/field-builder.d.ts +2 -0
- package/esm/field-builder.d.ts.map +1 -0
- package/esm/field-builder.js +53 -0
- package/esm/field-builder.js.map +1 -0
- package/esm/generator.d.ts +2 -0
- package/esm/generator.d.ts.map +1 -0
- package/esm/generator.js +83 -0
- package/esm/generator.js.map +1 -0
- package/esm/global-types.d.ts +52 -0
- package/esm/global-types.d.ts.map +1 -0
- package/esm/global-types.js +2 -0
- package/esm/global-types.js.map +1 -0
- package/esm/index.d.ts +11 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/index.js +14 -0
- package/esm/index.js.map +1 -0
- package/esm/loader-map.d.ts +6 -0
- package/esm/loader-map.d.ts.map +1 -0
- package/esm/loader-map.js +35 -0
- package/esm/loader-map.js.map +1 -0
- package/esm/model-loader.d.ts +18 -0
- package/esm/model-loader.d.ts.map +1 -0
- package/esm/model-loader.js +101 -0
- package/esm/model-loader.js.map +1 -0
- package/esm/node-ref.d.ts +12 -0
- package/esm/node-ref.d.ts.map +1 -0
- package/esm/node-ref.js +19 -0
- package/esm/node-ref.js.map +1 -0
- package/esm/object-ref.d.ts +7 -0
- package/esm/object-ref.d.ts.map +1 -0
- package/esm/object-ref.js +5 -0
- package/esm/object-ref.js.map +1 -0
- package/esm/package.json +3 -0
- package/esm/prisma-field-builder.d.ts +28 -0
- package/esm/prisma-field-builder.d.ts.map +1 -0
- package/esm/prisma-field-builder.js +204 -0
- package/esm/prisma-field-builder.js.map +1 -0
- package/esm/refs.d.ts +15 -0
- package/esm/refs.d.ts.map +1 -0
- package/esm/refs.js +64 -0
- package/esm/refs.js.map +1 -0
- package/esm/schema-builder.d.ts +2 -0
- package/esm/schema-builder.d.ts.map +1 -0
- package/esm/schema-builder.js +65 -0
- package/esm/schema-builder.js.map +1 -0
- package/esm/types.d.ts +177 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/types.js +2 -0
- package/esm/types.js.map +1 -0
- package/esm/util/index.d.ts +5 -0
- package/esm/util/index.d.ts.map +1 -0
- package/esm/util/index.js +16 -0
- package/esm/util/index.js.map +1 -0
- package/esm/util/map-includes.d.ts +6 -0
- package/esm/util/map-includes.d.ts.map +1 -0
- package/esm/util/map-includes.js +184 -0
- package/esm/util/map-includes.js.map +1 -0
- package/esm/util/merge-includes.d.ts +3 -0
- package/esm/util/merge-includes.d.ts.map +1 -0
- package/esm/util/merge-includes.js +91 -0
- package/esm/util/merge-includes.js.map +1 -0
- package/lib/cursors.d.ts +55 -0
- package/lib/cursors.d.ts.map +1 -0
- package/lib/cursors.js +112 -0
- package/lib/cursors.js.map +1 -0
- package/lib/field-builder.d.ts +2 -0
- package/lib/field-builder.d.ts.map +1 -0
- package/lib/field-builder.js +65 -0
- package/lib/field-builder.js.map +1 -0
- package/lib/generator.d.ts +2 -0
- package/lib/generator.d.ts.map +1 -0
- package/lib/generator.js +104 -0
- package/lib/generator.js.map +1 -0
- package/lib/global-types.d.ts +52 -0
- package/lib/global-types.d.ts.map +1 -0
- package/lib/global-types.js +3 -0
- package/lib/global-types.js.map +1 -0
- package/lib/index.d.ts +11 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +40 -0
- package/lib/index.js.map +1 -0
- package/lib/loader-map.d.ts +6 -0
- package/lib/loader-map.d.ts.map +1 -0
- package/lib/loader-map.js +41 -0
- package/lib/loader-map.js.map +1 -0
- package/lib/model-loader.d.ts +18 -0
- package/lib/model-loader.d.ts.map +1 -0
- package/lib/model-loader.js +105 -0
- package/lib/model-loader.js.map +1 -0
- package/lib/node-ref.d.ts +12 -0
- package/lib/node-ref.d.ts.map +1 -0
- package/lib/node-ref.js +22 -0
- package/lib/node-ref.js.map +1 -0
- package/lib/object-ref.d.ts +7 -0
- package/lib/object-ref.d.ts.map +1 -0
- package/lib/object-ref.js +9 -0
- package/lib/object-ref.js.map +1 -0
- package/lib/prisma-field-builder.d.ts +28 -0
- package/lib/prisma-field-builder.d.ts.map +1 -0
- package/lib/prisma-field-builder.js +208 -0
- package/lib/prisma-field-builder.js.map +1 -0
- package/lib/refs.d.ts +15 -0
- package/lib/refs.d.ts.map +1 -0
- package/lib/refs.js +73 -0
- package/lib/refs.js.map +1 -0
- package/lib/schema-builder.d.ts +2 -0
- package/lib/schema-builder.d.ts.map +1 -0
- package/lib/schema-builder.js +89 -0
- package/lib/schema-builder.js.map +1 -0
- package/lib/types.d.ts +177 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +4 -0
- package/lib/types.js.map +1 -0
- package/lib/util/index.d.ts +5 -0
- package/lib/util/index.d.ts.map +1 -0
- package/lib/util/index.js +30 -0
- package/lib/util/index.js.map +1 -0
- package/lib/util/map-includes.d.ts +6 -0
- package/lib/util/map-includes.d.ts.map +1 -0
- package/lib/util/map-includes.js +189 -0
- package/lib/util/map-includes.js.map +1 -0
- package/lib/util/merge-includes.d.ts +3 -0
- package/lib/util/merge-includes.d.ts.map +1 -0
- package/lib/util/merge-includes.js +96 -0
- package/lib/util/merge-includes.js.map +1 -0
- package/package.json +71 -0
- package/src/cursors.ts +159 -0
- package/src/field-builder.ts +117 -0
- package/src/generator.ts +191 -0
- package/src/global-types.ts +196 -0
- package/src/index.ts +18 -0
- package/src/loader-map.ts +48 -0
- package/src/model-loader.ts +152 -0
- package/src/node-ref.ts +34 -0
- package/src/object-ref.ts +8 -0
- package/src/prisma-field-builder.ts +375 -0
- package/src/refs.ts +112 -0
- package/src/schema-builder.ts +121 -0
- package/src/types.ts +502 -0
- package/src/util/index.ts +26 -0
- package/src/util/map-includes.ts +329 -0
- package/src/util/merge-includes.ts +121 -0
- package/tsconfig.json +21 -0
package/babel.config.js
ADDED
package/bin/generator.js
ADDED
package/esm/cursors.d.ts
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { MaybePromise } from '@pothos/core';
|
|
2
|
+
interface PrismaCursorConnectionQueryOptions {
|
|
3
|
+
args: PothosSchemaTypes.DefaultConnectionArguments;
|
|
4
|
+
defaultSize?: number;
|
|
5
|
+
maxSize?: number;
|
|
6
|
+
column: string;
|
|
7
|
+
}
|
|
8
|
+
interface ResolvePrismaCursorConnectionOptions extends PrismaCursorConnectionQueryOptions {
|
|
9
|
+
query: {};
|
|
10
|
+
totalCount?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function prismaCursorConnectionQuery({ args: { before, after, first, last }, maxSize, defaultSize, column, }: PrismaCursorConnectionQueryOptions): {
|
|
13
|
+
take: number;
|
|
14
|
+
skip: number;
|
|
15
|
+
cursor?: undefined;
|
|
16
|
+
} | {
|
|
17
|
+
cursor: {
|
|
18
|
+
[x: string]: string | number | Date;
|
|
19
|
+
};
|
|
20
|
+
take: number;
|
|
21
|
+
skip: number;
|
|
22
|
+
};
|
|
23
|
+
export declare function wrapConnectionResult<T extends {}>(results: T[], args: PothosSchemaTypes.DefaultConnectionArguments, take: number, column: string, totalCount?: number): {
|
|
24
|
+
totalCount: number | undefined;
|
|
25
|
+
edges: ({
|
|
26
|
+
cursor: string;
|
|
27
|
+
node: T;
|
|
28
|
+
} | null)[];
|
|
29
|
+
pageInfo: {
|
|
30
|
+
startCursor: string | undefined;
|
|
31
|
+
endCursor: string | undefined;
|
|
32
|
+
hasPreviousPage: boolean;
|
|
33
|
+
hasNextPage: boolean;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
export declare function resolvePrismaCursorConnection<T extends {}>(options: ResolvePrismaCursorConnectionOptions, resolve: (query: {
|
|
37
|
+
include?: {};
|
|
38
|
+
cursor?: {};
|
|
39
|
+
take: number;
|
|
40
|
+
skip: number;
|
|
41
|
+
}) => MaybePromise<T[]>): Promise<{
|
|
42
|
+
totalCount: number | undefined;
|
|
43
|
+
edges: ({
|
|
44
|
+
cursor: string;
|
|
45
|
+
node: T;
|
|
46
|
+
} | null)[];
|
|
47
|
+
pageInfo: {
|
|
48
|
+
startCursor: string | undefined;
|
|
49
|
+
endCursor: string | undefined;
|
|
50
|
+
hasPreviousPage: boolean;
|
|
51
|
+
hasNextPage: boolean;
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=cursors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../src/cursors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA4C5C,UAAU,kCAAkC;IAC1C,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,CAAC;IACnD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,oCAAqC,SAAQ,kCAAkC;IACvF,KAAK,EAAE,EAAE,CAAC;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EACpC,OAA0B,EAC1B,WAA0B,EAC1B,MAAM,GACP,EAAE,kCAAkC;;;;;;;;;;EA0CpC;AAED,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,EAAE,EAC/C,OAAO,EAAE,CAAC,EAAE,EACZ,IAAI,EAAE,iBAAiB,CAAC,0BAA0B,EAClD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM;;;;;;;;;;;;EA4BpB;AAED,wBAAsB,6BAA6B,CAAC,CAAC,SAAS,EAAE,EAC9D,OAAO,EAAE,oCAAoC,EAC7C,OAAO,EAAE,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,EAAE,CAAC;IAAC,MAAM,CAAC,EAAE,EAAE,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC;;;;;;;;;;;;GAejG"}
|
package/esm/cursors.js
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
const DEFAULT_MAX_SIZE = 100;
|
|
2
|
+
const DEFAULT_SIZE = 20;
|
|
3
|
+
function formatCursor(value) {
|
|
4
|
+
if (value instanceof Date) {
|
|
5
|
+
return Buffer.from(`GPC:D:${String(Number(value))}`).toString("base64");
|
|
6
|
+
}
|
|
7
|
+
switch (typeof value) {
|
|
8
|
+
case "number":
|
|
9
|
+
return Buffer.from(`GPC:N:${value}`).toString("base64");
|
|
10
|
+
case "string":
|
|
11
|
+
return Buffer.from(`GPC:S:${value}`).toString("base64");
|
|
12
|
+
default:
|
|
13
|
+
throw new TypeError(`Unsupported cursor type ${typeof value}`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function parseCursor(cursor) {
|
|
17
|
+
if (typeof cursor !== "string") {
|
|
18
|
+
throw new TypeError("Cursor must be a string");
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const decoded = Buffer.from(cursor, "base64").toString();
|
|
22
|
+
const [, type, value] = decoded.match(/^GPC:(\w):(.*)/);
|
|
23
|
+
switch (type) {
|
|
24
|
+
case "S":
|
|
25
|
+
return value;
|
|
26
|
+
case "N":
|
|
27
|
+
return Number.parseInt(value, 10);
|
|
28
|
+
case "D":
|
|
29
|
+
return new Date(Number.parseInt(value, 10));
|
|
30
|
+
default:
|
|
31
|
+
throw new TypeError(`Invalid cursor type ${type}`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
throw new Error(`Invalid cursor: ${cursor}`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function prismaCursorConnectionQuery({ args: { before, after, first, last }, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, column, }) {
|
|
39
|
+
var _a;
|
|
40
|
+
if (first != null && first < 0) {
|
|
41
|
+
throw new TypeError("Argument \"first\" must be a non-negative integer");
|
|
42
|
+
}
|
|
43
|
+
if (last != null && last < 0) {
|
|
44
|
+
throw new Error("Argument \"last\" must be a non-negative integer");
|
|
45
|
+
}
|
|
46
|
+
if (before && after) {
|
|
47
|
+
throw new Error("Arguments \"before\" and \"after\" are not supported at the same time");
|
|
48
|
+
}
|
|
49
|
+
if (before != null && last == null) {
|
|
50
|
+
throw new Error("Argument \"last\" must be provided when using \"before\"");
|
|
51
|
+
}
|
|
52
|
+
if (before != null && first != null) {
|
|
53
|
+
throw new Error("Arguments \"before\" and \"first\" are not supported at the same time");
|
|
54
|
+
}
|
|
55
|
+
if (after != null && last != null) {
|
|
56
|
+
throw new Error("Arguments \"after\" and \"last\" are not supported at the same time");
|
|
57
|
+
}
|
|
58
|
+
const cursor = before !== null && before !== void 0 ? before : after;
|
|
59
|
+
let take = Math.min((_a = first !== null && first !== void 0 ? first : last) !== null && _a !== void 0 ? _a : defaultSize, maxSize) + 1;
|
|
60
|
+
if (before) {
|
|
61
|
+
take = -take;
|
|
62
|
+
}
|
|
63
|
+
return cursor == null
|
|
64
|
+
? { take, skip: 0 }
|
|
65
|
+
: {
|
|
66
|
+
cursor: {
|
|
67
|
+
[column]: parseCursor(cursor),
|
|
68
|
+
},
|
|
69
|
+
take,
|
|
70
|
+
skip: 1,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export function wrapConnectionResult(results, args, take, column, totalCount) {
|
|
74
|
+
var _a, _b;
|
|
75
|
+
const gotFullResults = results.length === Math.abs(take);
|
|
76
|
+
const hasNextPage = args.before ? true : gotFullResults;
|
|
77
|
+
const hasPreviousPage = args.after ? true : args.before ? gotFullResults : false;
|
|
78
|
+
const nodes = gotFullResults
|
|
79
|
+
? results.slice(take < 0 ? 1 : 0, take < 0 ? results.length : -1)
|
|
80
|
+
: results;
|
|
81
|
+
const edges = nodes.map((value, index) => value == null
|
|
82
|
+
? null
|
|
83
|
+
: {
|
|
84
|
+
cursor: formatCursor(value[column]),
|
|
85
|
+
node: value,
|
|
86
|
+
});
|
|
87
|
+
return {
|
|
88
|
+
totalCount,
|
|
89
|
+
edges,
|
|
90
|
+
pageInfo: {
|
|
91
|
+
startCursor: (_a = edges[0]) === null || _a === void 0 ? void 0 : _a.cursor,
|
|
92
|
+
endCursor: (_b = edges[edges.length - 1]) === null || _b === void 0 ? void 0 : _b.cursor,
|
|
93
|
+
hasPreviousPage,
|
|
94
|
+
hasNextPage,
|
|
95
|
+
},
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
export async function resolvePrismaCursorConnection(options, resolve) {
|
|
99
|
+
const query = prismaCursorConnectionQuery(options);
|
|
100
|
+
const results = await resolve({
|
|
101
|
+
...options.query,
|
|
102
|
+
...query,
|
|
103
|
+
});
|
|
104
|
+
return wrapConnectionResult(results, options.args, query.take, options.column, options.totalCount);
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=cursors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cursors.js","sourceRoot":"","sources":["../src/cursors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builder.d.ts","sourceRoot":"","sources":["../src/field-builder.ts"],"names":[],"mappings":"AAcA,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { RootFieldBuilder, } from '@pothos/core';
|
|
2
|
+
import { resolvePrismaCursorConnection } from './cursors.js';
|
|
3
|
+
import { getRefFromModel } from './refs.js';
|
|
4
|
+
import { queryFromInfo } from './util/index.js';
|
|
5
|
+
export * from './prisma-field-builder.js';
|
|
6
|
+
const fieldBuilderProto = RootFieldBuilder.prototype;
|
|
7
|
+
fieldBuilderProto.prismaField = function prismaField({ type, resolve, ...options }) {
|
|
8
|
+
const modelOrRef = Array.isArray(type) ? type[0] : type;
|
|
9
|
+
const typeRef = typeof modelOrRef === "string"
|
|
10
|
+
? getRefFromModel(modelOrRef, this.builder)
|
|
11
|
+
: modelOrRef;
|
|
12
|
+
const typeParam = Array.isArray(type) ? [typeRef] : typeRef;
|
|
13
|
+
return this.field({
|
|
14
|
+
...options,
|
|
15
|
+
type: typeParam,
|
|
16
|
+
resolve: (parent, args, ctx, info) => {
|
|
17
|
+
const query = queryFromInfo(ctx, info);
|
|
18
|
+
return resolve(query, parent, args, ctx, info);
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
fieldBuilderProto.prismaConnection = function prismaConnection({ type, cursor, maxSize, defaultSize, resolve, ...options }, connectionOptions, edgeOptions) {
|
|
23
|
+
var _a;
|
|
24
|
+
const ref = typeof type === "string" ? getRefFromModel(type, this.builder) : type;
|
|
25
|
+
let typeName;
|
|
26
|
+
const fieldRef = this.connection({
|
|
27
|
+
...options,
|
|
28
|
+
type: ref,
|
|
29
|
+
resolve: (parent, args, ctx, info) => resolvePrismaCursorConnection({
|
|
30
|
+
query: queryFromInfo(ctx, info),
|
|
31
|
+
column: cursor,
|
|
32
|
+
maxSize,
|
|
33
|
+
defaultSize,
|
|
34
|
+
args,
|
|
35
|
+
}, (query) => resolve(query, parent, args, ctx, info)),
|
|
36
|
+
}, {
|
|
37
|
+
...connectionOptions,
|
|
38
|
+
extensions: {
|
|
39
|
+
...(_a = connectionOptions) === null || _a === void 0 ? void 0 : _a.extensions,
|
|
40
|
+
pothosPrismaIndirectInclude: {
|
|
41
|
+
getType: () => {
|
|
42
|
+
if (!typeName) {
|
|
43
|
+
typeName = this.builder.configStore.getTypeConfig(ref).name;
|
|
44
|
+
}
|
|
45
|
+
return typeName;
|
|
46
|
+
},
|
|
47
|
+
path: [{ name: "edges" }, { name: "node" }],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
}, edgeOptions);
|
|
51
|
+
return fieldRef;
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=field-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-builder.js","sourceRoot":"","sources":["../src/field-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":""}
|
package/esm/generator.js
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/* eslint-disable no-nested-ternary */
|
|
2
|
+
import { mkdir, writeFile } from 'fs';
|
|
3
|
+
import { dirname } from 'path';
|
|
4
|
+
import ts, { ListFormat, ScriptKind, ScriptTarget, SyntaxKind } from 'typescript';
|
|
5
|
+
import { generatorHandler } from '@prisma/generator-helper';
|
|
6
|
+
generatorHandler({
|
|
7
|
+
onManifest: () => ({
|
|
8
|
+
prettyName: "Pothos integration",
|
|
9
|
+
defaultOutput: "node_modules/@pothos/plugin-prisma/generated.ts",
|
|
10
|
+
requiresGenerators: ["prisma-client-js"],
|
|
11
|
+
}),
|
|
12
|
+
onGenerate: async (options) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const config = options.generator.config;
|
|
15
|
+
const prismaLocation = (_a = config.clientOutput) !== null && _a !== void 0 ? _a : options.otherGenerators.find((gen) => gen.provider.value === "prisma-client-js").output
|
|
16
|
+
.value;
|
|
17
|
+
const importStatement = ts.factory.createImportDeclaration([], [], ts.factory.createImportClause(true, undefined, ts.factory.createNamedImports([
|
|
18
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("Prisma")),
|
|
19
|
+
...options.dmmf.datamodel.models.map((model) => ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(model.name))),
|
|
20
|
+
])), ts.factory.createStringLiteral(prismaLocation));
|
|
21
|
+
const modelTypes = options.dmmf.datamodel.models.map((model) => {
|
|
22
|
+
const relations = model.fields.filter((field) => !!field.relationName);
|
|
23
|
+
const listRelations = model.fields.filter((field) => !!field.relationName && field.isList);
|
|
24
|
+
return ts.factory.createPropertySignature([], model.name, undefined, ts.factory.createTypeLiteralNode([
|
|
25
|
+
ts.factory.createPropertySignature([], "Name", undefined, ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(model.name))),
|
|
26
|
+
ts.factory.createPropertySignature([], "Shape", undefined, ts.factory.createTypeReferenceNode(model.name)),
|
|
27
|
+
ts.factory.createPropertySignature([], "Include", undefined, relations.length > 0
|
|
28
|
+
? ts.factory.createTypeReferenceNode(`Prisma.${model.name}Include`)
|
|
29
|
+
: ts.factory.createTypeReferenceNode("never")),
|
|
30
|
+
ts.factory.createPropertySignature([], "Where", undefined, ts.factory.createTypeReferenceNode(`Prisma.${model.name}WhereUniqueInput`)),
|
|
31
|
+
ts.factory.createPropertySignature([], "Fields", undefined, relations.length > 0
|
|
32
|
+
? ts.factory.createUnionTypeNode(relations.map((field) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(field.name))))
|
|
33
|
+
: ts.factory.createTypeReferenceNode("never")),
|
|
34
|
+
ts.factory.createPropertySignature([], "ListRelations", undefined, listRelations.length > 0
|
|
35
|
+
? ts.factory.createUnionTypeNode(listRelations.map((field) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(field.name))))
|
|
36
|
+
: ts.factory.createTypeReferenceNode("never")),
|
|
37
|
+
ts.factory.createPropertySignature([], "Relations", undefined, ts.factory.createTypeLiteralNode(relations.map((field) => {
|
|
38
|
+
const typeName = field.type;
|
|
39
|
+
return ts.factory.createPropertySignature([], field.name, undefined, ts.factory.createTypeLiteralNode([
|
|
40
|
+
ts.factory.createPropertySignature([], "Shape", undefined, field.isList
|
|
41
|
+
? ts.factory.createArrayTypeNode(ts.factory.createTypeReferenceNode(typeName))
|
|
42
|
+
: field.isRequired
|
|
43
|
+
? ts.factory.createTypeReferenceNode(typeName)
|
|
44
|
+
: ts.factory.createUnionTypeNode([
|
|
45
|
+
ts.factory.createTypeReferenceNode(typeName),
|
|
46
|
+
ts.factory.createLiteralTypeNode(ts.factory.createNull()),
|
|
47
|
+
])),
|
|
48
|
+
ts.factory.createPropertySignature([], "Types", undefined, ts.factory.createIndexedAccessTypeNode(ts.factory.createTypeReferenceNode("PrismaTypes"), ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(typeName)))),
|
|
49
|
+
]));
|
|
50
|
+
}))),
|
|
51
|
+
]));
|
|
52
|
+
});
|
|
53
|
+
const prismaTypes = ts.factory.createInterfaceDeclaration([], [
|
|
54
|
+
ts.factory.createModifier(SyntaxKind.ExportKeyword),
|
|
55
|
+
ts.factory.createModifier(SyntaxKind.DefaultKeyword),
|
|
56
|
+
], "PrismaTypes", [], [], modelTypes);
|
|
57
|
+
const printer = ts.createPrinter({});
|
|
58
|
+
const sourcefile = ts.createSourceFile(options.generator.output.value, "", ScriptTarget.ESNext, false, ScriptKind.TS);
|
|
59
|
+
const nodes = ts.factory.createNodeArray([importStatement, prismaTypes]);
|
|
60
|
+
const result = printer.printList(ListFormat.SourceFileStatements, nodes, sourcefile);
|
|
61
|
+
await new Promise((resolve, reject) => {
|
|
62
|
+
mkdir(dirname(sourcefile.fileName), { recursive: true }, (err) => {
|
|
63
|
+
if (err) {
|
|
64
|
+
reject(err);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
resolve();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
return new Promise((resolve, reject) => {
|
|
72
|
+
writeFile(sourcefile.fileName, result, (err) => {
|
|
73
|
+
if (err) {
|
|
74
|
+
reject(err);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
resolve();
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
},
|
|
82
|
+
});
|
|
83
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { FieldKind, FieldNullability, FieldRef, InputFieldMap, InterfaceParam, NormalizeArgs, OutputType, PluginName, SchemaTypes, ShapeFromTypeParam } from '@pothos/core';
|
|
2
|
+
import PrismaNodeRef from './node-ref';
|
|
3
|
+
import { prismaModelKey, PrismaObjectRef } from './object-ref';
|
|
4
|
+
import { PrismaConnectionFieldOptions, PrismaFieldOptions, PrismaModelTypes, PrismaNodeOptions, PrismaObjectTypeOptions, ShapeWithInclude } from './types';
|
|
5
|
+
import { PrismaPlugin, ShapeFromConnection } from '.';
|
|
6
|
+
declare global {
|
|
7
|
+
export namespace PothosSchemaTypes {
|
|
8
|
+
interface Plugins<Types extends SchemaTypes> {
|
|
9
|
+
prisma: PrismaPlugin<Types>;
|
|
10
|
+
}
|
|
11
|
+
interface SchemaBuilderOptions<Types extends SchemaTypes> {
|
|
12
|
+
prisma: {
|
|
13
|
+
client: {
|
|
14
|
+
$connect: () => Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
interface UserSchemaTypes {
|
|
19
|
+
PrismaTypes: {};
|
|
20
|
+
}
|
|
21
|
+
interface ExtendDefaultTypes<PartialTypes extends Partial<UserSchemaTypes>> {
|
|
22
|
+
PrismaTypes: undefined extends PartialTypes['PrismaTypes'] ? {} : PartialTypes['PrismaTypes'] & {};
|
|
23
|
+
}
|
|
24
|
+
interface SchemaBuilder<Types extends SchemaTypes> {
|
|
25
|
+
prismaObject: <Name extends keyof Types['PrismaTypes'], Interfaces extends InterfaceParam<Types>[], FindUnique, Model extends PrismaModelTypes & Types['PrismaTypes'][Name], Include extends Model['Include'] = {}, Shape extends object = ShapeWithInclude<Model, Include>>(name: Name, options: PrismaObjectTypeOptions<Types, Model, Interfaces, FindUnique, Include, Shape>) => PrismaObjectRef<Model, Shape>;
|
|
26
|
+
prismaNode: 'relay' extends PluginName ? <Name extends keyof Types['PrismaTypes'], Interfaces extends InterfaceParam<Types>[], Model extends PrismaModelTypes & Types['PrismaTypes'][Name], Include extends Model['Include'] = {}, Shape extends object = ShapeWithInclude<Model, Include>>(name: Name, options: PrismaNodeOptions<Types, Model, Interfaces, Include, Shape>) => PrismaNodeRef<Model, Shape> : '@pothos/plugin-relay is required to use this method';
|
|
27
|
+
}
|
|
28
|
+
interface RootFieldBuilder<Types extends SchemaTypes, ParentShape, Kind extends FieldKind = FieldKind> {
|
|
29
|
+
prismaField: <Args extends InputFieldMap, TypeParam extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'] | [keyof Types['PrismaTypes']] | [PrismaObjectRef<PrismaModelTypes>], Nullable extends FieldNullability<Type>, ResolveReturnShape, Type extends TypeParam extends [unknown] ? [ObjectRef<Model['Shape']>] : ObjectRef<Model['Shape']>, Model extends PrismaModelTypes = PrismaModelTypes & (TypeParam extends [keyof Types['PrismaTypes']] ? Types['PrismaTypes'][TypeParam[0]] : TypeParam extends [PrismaObjectRef<PrismaModelTypes>] ? TypeParam[0][typeof prismaModelKey] : TypeParam extends PrismaObjectRef<PrismaModelTypes> ? TypeParam[typeof prismaModelKey] : TypeParam extends keyof Types['PrismaTypes'] ? Types['PrismaTypes'][TypeParam] : never)>(options: PrismaFieldOptions<Types, ParentShape, TypeParam, Model, Type, Args, Nullable, ResolveReturnShape, Kind>) => FieldRef<ShapeFromTypeParam<Types, Type, Nullable>>;
|
|
30
|
+
prismaConnection: 'relay' extends PluginName ? <Type extends PrismaObjectRef<PrismaModelTypes> | keyof Types['PrismaTypes'], Nullable extends boolean, ResolveReturnShape, Args extends InputFieldMap = {}, Model extends PrismaModelTypes = Type extends PrismaObjectRef<infer T> ? T : PrismaModelTypes & Types['PrismaTypes'][Type & keyof Types['PrismaTypes']]>(...args: NormalizeArgs<[
|
|
31
|
+
options: PrismaConnectionFieldOptions<Types, ParentShape, Type, Model, ObjectRef<Model['Shape']>, Nullable, Args, ResolveReturnShape, Kind>,
|
|
32
|
+
connectionOptions?: ConnectionObjectOptions<Types, ObjectRef<Model['Shape']>, false, false, ResolveReturnShape>,
|
|
33
|
+
edgeOptions?: ConnectionEdgeObjectOptions<Types, ObjectRef<Model['Shape']>, false, ResolveReturnShape>
|
|
34
|
+
]>) => FieldRef<ShapeFromConnection<ConnectionShapeHelper<Types, Model['Shape'], Nullable>>> : '@pothos/plugin-relay is required to use this method';
|
|
35
|
+
}
|
|
36
|
+
interface ConnectionFieldOptions<Types extends SchemaTypes, ParentShape, Type extends OutputType<Types>, Nullable extends boolean, EdgeNullability extends FieldNullability<[unknown]>, NodeNullability extends boolean, Args extends InputFieldMap, ResolveReturnShape> {
|
|
37
|
+
}
|
|
38
|
+
interface ConnectionObjectOptions<Types extends SchemaTypes, Type extends OutputType<Types>, EdgeNullability extends FieldNullability<[unknown]>, NodeNullability extends boolean, Resolved> {
|
|
39
|
+
}
|
|
40
|
+
interface ConnectionEdgeObjectOptions<Types extends SchemaTypes, Type extends OutputType<Types>, NodeNullability extends boolean, Resolved> {
|
|
41
|
+
}
|
|
42
|
+
interface DefaultConnectionArguments {
|
|
43
|
+
first?: number | null | undefined;
|
|
44
|
+
last?: number | null | undefined;
|
|
45
|
+
before?: string | null | undefined;
|
|
46
|
+
after?: string | null | undefined;
|
|
47
|
+
}
|
|
48
|
+
interface ConnectionShapeHelper<Types extends SchemaTypes, T, Nullable> {
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=global-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-types.d.ts","sourceRoot":"","sources":["../src/global-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-types.js","sourceRoot":"","sources":["../src/global-types.ts"],"names":[],"mappings":""}
|
package/esm/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './global-types';
|
|
2
|
+
import './field-builder';
|
|
3
|
+
import './schema-builder';
|
|
4
|
+
import { BasePlugin, BuildCache, SchemaTypes } from '@pothos/core';
|
|
5
|
+
export * from './types';
|
|
6
|
+
declare const pluginName: "prisma";
|
|
7
|
+
export default pluginName;
|
|
8
|
+
export declare class PrismaPlugin<Types extends SchemaTypes> extends BasePlugin<Types> {
|
|
9
|
+
constructor(cache: BuildCache<Types>);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,OAAsB,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAElF,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;CAGrC"}
|
package/esm/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import './global-types.js';
|
|
2
|
+
import './field-builder.js';
|
|
3
|
+
import './schema-builder.js';
|
|
4
|
+
import SchemaBuilder, { BasePlugin } from '@pothos/core';
|
|
5
|
+
export * from './types.js';
|
|
6
|
+
const pluginName = "prisma";
|
|
7
|
+
export default pluginName;
|
|
8
|
+
export class PrismaPlugin extends BasePlugin {
|
|
9
|
+
constructor(cache) {
|
|
10
|
+
super(cache, pluginName);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
SchemaBuilder.registerPlugin(pluginName, PrismaPlugin);
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,CAAC;AACxB,OAAO,iBAAiB,CAAC;AACzB,OAAO,kBAAkB,CAAC;AAC1B,OAAO,aAAa,EAAE,EAAE,UAAU,EAA2B,MAAM,cAAc,CAAC;AAElF,cAAc,SAAS,CAAC;AAExB,MAAM,UAAU,GAAG,QAAiB,CAAC;AAErC,eAAe,UAAU,CAAC;AAE1B,MAAM,OAAO,YAAwC,SAAQ,UAAiB;IAC5E,YAAY,KAAwB;QAClC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3B,CAAC;CACF;AAED,aAAa,CAAC,cAAc,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GraphQLResolveInfo } from 'graphql';
|
|
2
|
+
import { LoaderMappings } from './types';
|
|
3
|
+
export declare function cacheKey(path: GraphQLResolveInfo['path'], subPath: string[]): string;
|
|
4
|
+
export declare function setLoaderMappings(ctx: object, path: GraphQLResolveInfo['path'], value: LoaderMappings): void;
|
|
5
|
+
export declare function getLoaderMapping(ctx: object, path: GraphQLResolveInfo['path']): LoaderMappings | null;
|
|
6
|
+
//# sourceMappingURL=loader-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-map.d.ts","sourceRoot":"","sources":["../src/loader-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAIzC,wBAAgB,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,UAgB3E;AAED,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAChC,KAAK,EAAE,cAAc,QAatB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,yBAK7E"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { createContextCache } from '@pothos/core';
|
|
2
|
+
const cache = createContextCache((ctx) => new Map());
|
|
3
|
+
export function cacheKey(path, subPath) {
|
|
4
|
+
let key = "";
|
|
5
|
+
let current = path;
|
|
6
|
+
while (current) {
|
|
7
|
+
if (typeof current.key === "string") {
|
|
8
|
+
key = key ? `${current.key}.${key}` : current.key;
|
|
9
|
+
}
|
|
10
|
+
current = current.prev;
|
|
11
|
+
}
|
|
12
|
+
for (const entry of subPath) {
|
|
13
|
+
key = `${key}.${entry}`;
|
|
14
|
+
}
|
|
15
|
+
return key;
|
|
16
|
+
}
|
|
17
|
+
export function setLoaderMappings(ctx, path, value) {
|
|
18
|
+
Object.keys(value).forEach((field) => {
|
|
19
|
+
var _a;
|
|
20
|
+
const map = cache(ctx);
|
|
21
|
+
for (const mapping of value[field]) {
|
|
22
|
+
const selectionName = (_a = mapping.alias) !== null && _a !== void 0 ? _a : mapping.field;
|
|
23
|
+
const subPath = [...mapping.indirectPath, selectionName];
|
|
24
|
+
const key = cacheKey(path, subPath);
|
|
25
|
+
map.set(key, mapping.mappings);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
export function getLoaderMapping(ctx, path) {
|
|
30
|
+
var _a;
|
|
31
|
+
const map = cache(ctx);
|
|
32
|
+
const key = cacheKey(path, []);
|
|
33
|
+
return (_a = map.get(key)) !== null && _a !== void 0 ? _a : null;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=loader-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-map.js","sourceRoot":"","sources":["../src/loader-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,MAAM,KAAK,GAAG,kBAAkB,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAA0B,CAAC,CAAC;AAE7E,MAAM,UAAU,QAAQ,CAAC,IAAgC,EAAE,OAAiB;IAC1E,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,CAAC;AACb,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,GAAW,EACX,IAAgC,EAChC,KAAqB;IAErB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;QACnC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAEvB,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;YAClC,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,OAAO,CAAC,KAAK,CAAC;YACrD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;YACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAEpC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;SAChC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAgC;;IAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;IACvB,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE/B,OAAO,MAAA,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SchemaTypes } from '@pothos/core';
|
|
2
|
+
import { PrismaDelegate } from './types';
|
|
3
|
+
export declare class ModelLoader {
|
|
4
|
+
model: object;
|
|
5
|
+
delegate: PrismaDelegate;
|
|
6
|
+
findUnique: (args: unknown, ctx: {}) => unknown;
|
|
7
|
+
staged: Set<{
|
|
8
|
+
promise: Promise<Record<string, unknown>>;
|
|
9
|
+
include: Record<string, unknown>;
|
|
10
|
+
}>;
|
|
11
|
+
constructor(model: object, delegate: PrismaDelegate, findUnique: (args: unknown, ctx: {}) => unknown);
|
|
12
|
+
static forModel<Types extends SchemaTypes>(modelName: string, builder: PothosSchemaTypes.SchemaBuilder<Types>): (model: object) => ModelLoader;
|
|
13
|
+
loadCount(relation: string, context: {}): Promise<number>;
|
|
14
|
+
loadSelf(include: unknown, context: {}): Promise<Record<string, unknown>>;
|
|
15
|
+
loadRelation(relation: string, include: unknown, context: {}): Promise<unknown>;
|
|
16
|
+
initLoad(relation: string | null, includeArg: unknown, context: {}, count?: boolean): Promise<Record<string, unknown>>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=model-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-loader.d.ts","sourceRoot":"","sources":["../src/model-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,WAAW,EAAE,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKzC,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;iBAChC,OAAO,MAAM,EAAE,OAAO,CAAC;OAC7B;gBAGH,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,cAAc,EACxB,UAAU,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,KAAK,OAAO;IAOjD,MAAM,CAAC,QAAQ,CAAC,KAAK,SAAS,WAAW,EACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;IAiB3C,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAoBzD,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IActC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE;IA8B5D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,UAAQ;CAuCxF"}
|