@model-ts/graphql 0.0.0-stage → 7.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 +21 -0
- package/README.md +1280 -2
- package/dist/.tsbuildinfo +1 -0
- package/dist/Assembly.d.ts +24 -0
- package/dist/Assembly.d.ts.map +1 -0
- package/dist/Assembly.js +236 -0
- package/dist/Assembly.js.map +1 -0
- package/dist/Builder.d.ts +27 -0
- package/dist/Builder.d.ts.map +1 -0
- package/dist/Builder.js +40 -0
- package/dist/Builder.js.map +1 -0
- package/dist/Connections.d.ts +41 -0
- package/dist/Connections.d.ts.map +1 -0
- package/dist/Connections.js +243 -0
- package/dist/Connections.js.map +1 -0
- package/dist/Definitions.d.ts +139 -0
- package/dist/Definitions.d.ts.map +1 -0
- package/dist/Definitions.js +117 -0
- package/dist/Definitions.js.map +1 -0
- package/dist/Errors.d.ts +39 -0
- package/dist/Errors.d.ts.map +1 -0
- package/dist/Errors.js +103 -0
- package/dist/Errors.js.map +1 -0
- package/dist/Execution.d.ts +52 -0
- package/dist/Execution.d.ts.map +1 -0
- package/dist/Execution.js +174 -0
- package/dist/Execution.js.map +1 -0
- package/dist/FieldRuntime.d.ts +5 -0
- package/dist/FieldRuntime.d.ts.map +1 -0
- package/dist/FieldRuntime.js +27 -0
- package/dist/FieldRuntime.js.map +1 -0
- package/dist/FieldTypes.d.ts +232 -0
- package/dist/FieldTypes.d.ts.map +1 -0
- package/dist/FieldTypes.js +6 -0
- package/dist/FieldTypes.js.map +1 -0
- package/dist/Fields.d.ts +8 -0
- package/dist/Fields.d.ts.map +1 -0
- package/dist/Fields.js +72 -0
- package/dist/Fields.js.map +1 -0
- package/dist/Formatting.d.ts +25 -0
- package/dist/Formatting.d.ts.map +1 -0
- package/dist/Formatting.js +29 -0
- package/dist/Formatting.js.map +1 -0
- package/dist/GraphQL.d.ts +10 -0
- package/dist/GraphQL.d.ts.map +1 -0
- package/dist/GraphQL.js +5 -0
- package/dist/GraphQL.js.map +1 -0
- package/dist/InputTypes.d.ts +27 -0
- package/dist/InputTypes.d.ts.map +1 -0
- package/dist/InputTypes.js +203 -0
- package/dist/InputTypes.js.map +1 -0
- package/dist/Registry.d.ts +70 -0
- package/dist/Registry.d.ts.map +1 -0
- package/dist/Registry.js +3 -0
- package/dist/Registry.js.map +1 -0
- package/dist/Resolver.d.ts +30 -0
- package/dist/Resolver.d.ts.map +1 -0
- package/dist/Resolver.js +76 -0
- package/dist/Resolver.js.map +1 -0
- package/dist/Results.d.ts +20 -0
- package/dist/Results.d.ts.map +1 -0
- package/dist/Results.js +79 -0
- package/dist/Results.js.map +1 -0
- package/dist/ScalarBoundary.d.ts +9 -0
- package/dist/ScalarBoundary.d.ts.map +1 -0
- package/dist/ScalarBoundary.js +31 -0
- package/dist/ScalarBoundary.js.map +1 -0
- package/dist/Scalars.d.ts +9 -0
- package/dist/Scalars.d.ts.map +1 -0
- package/dist/Scalars.js +104 -0
- package/dist/Scalars.js.map +1 -0
- package/dist/SchemaTypes.d.ts +55 -0
- package/dist/SchemaTypes.d.ts.map +1 -0
- package/dist/SchemaTypes.js +47 -0
- package/dist/SchemaTypes.js.map +1 -0
- package/dist/Subscription.d.ts +6 -0
- package/dist/Subscription.d.ts.map +1 -0
- package/dist/Subscription.js +60 -0
- package/dist/Subscription.js.map +1 -0
- package/dist/Testing.d.ts +52 -0
- package/dist/Testing.d.ts.map +1 -0
- package/dist/Testing.js +74 -0
- package/dist/Testing.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/SubscriptionRule.d.ts +8 -0
- package/dist/internal/SubscriptionRule.d.ts.map +1 -0
- package/dist/internal/SubscriptionRule.js +73 -0
- package/dist/internal/SubscriptionRule.js.map +1 -0
- package/package.json +55 -4
- package/src/Assembly.ts +352 -0
- package/src/Builder.ts +110 -0
- package/src/Connections.ts +374 -0
- package/src/Definitions.ts +465 -0
- package/src/Errors.ts +188 -0
- package/src/Execution.ts +354 -0
- package/src/FieldRuntime.ts +32 -0
- package/src/FieldTypes.ts +667 -0
- package/src/Fields.ts +117 -0
- package/src/Formatting.ts +54 -0
- package/src/GraphQL.ts +50 -0
- package/src/InputTypes.ts +266 -0
- package/src/Registry.ts +157 -0
- package/src/Resolver.ts +176 -0
- package/src/Results.ts +128 -0
- package/src/ScalarBoundary.ts +30 -0
- package/src/Scalars.ts +143 -0
- package/src/SchemaTypes.ts +90 -0
- package/src/Subscription.ts +93 -0
- package/src/Testing.ts +144 -0
- package/src/index.ts +1 -0
- package/src/internal/SubscriptionRule.ts +90 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { formatResult } from "./Formatting.js";
|
|
2
|
+
import { ScalarInputFailure } from "./ScalarBoundary.js";
|
|
3
|
+
import { Cause, Effect, Stream } from "effect";
|
|
4
|
+
import { GraphQLError, execute as graphqlExecute, subscribe as graphqlSubscribe, parse, validate, specifiedRules, SingleFieldSubscriptionsRule, } from "graphql";
|
|
5
|
+
import { defaultErrorPolicy, isBoundaryError, recoverCause, } from "./Errors.js";
|
|
6
|
+
import {} from "./FieldTypes.js";
|
|
7
|
+
import { singleRootFieldSubscriptionsRule } from "./internal/SubscriptionRule.js";
|
|
8
|
+
// Replace the native rule: v15 counts selections, while v16 evaluates root
|
|
9
|
+
// directives without variables. Both execution paths must use the same semantics.
|
|
10
|
+
const validationRules = specifiedRules.map((rule) => rule === SingleFieldSubscriptionsRule
|
|
11
|
+
? singleRootFieldSubscriptionsRule
|
|
12
|
+
: rule);
|
|
13
|
+
export const schemaRequirements = Symbol("GraphQL schema requirements");
|
|
14
|
+
export const schemaErrorPolicy = Symbol("GraphQL schema error policy");
|
|
15
|
+
function bridge(services, context, signal, pending, sources) {
|
|
16
|
+
// The builder collects heterogeneous resolver requirements in BuiltSchema.R.
|
|
17
|
+
// Restore that union only here, when crossing into graphql-js's Promise API.
|
|
18
|
+
return {
|
|
19
|
+
context,
|
|
20
|
+
stream: (stream) => {
|
|
21
|
+
// GraphQL consumes one iterator per subscription. Own it before handing
|
|
22
|
+
// it off so closing the lifetime can join its actual source scope cleanup.
|
|
23
|
+
const source = Stream.toAsyncIterableWith(stream, services)[Symbol.asyncIterator]();
|
|
24
|
+
sources?.add(source);
|
|
25
|
+
return { [Symbol.asyncIterator]: () => source };
|
|
26
|
+
},
|
|
27
|
+
run: (effect) => {
|
|
28
|
+
const promise = Effect.runPromiseWith(services)(effect, { signal });
|
|
29
|
+
pending?.add(promise);
|
|
30
|
+
return promise.finally(() => pending?.delete(promise));
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/** graphql-js can also fail in scalar serialization or abstract resolution. */
|
|
35
|
+
const sanitize = (result, policy, requestStage = false) => Effect.gen(function* () {
|
|
36
|
+
if (!result.errors)
|
|
37
|
+
return result;
|
|
38
|
+
const errors = yield* Effect.forEach(result.errors, (error) => Effect.gen(function* () {
|
|
39
|
+
let original = error;
|
|
40
|
+
let scalarFailure = false;
|
|
41
|
+
while (true) {
|
|
42
|
+
if (original instanceof ScalarInputFailure) {
|
|
43
|
+
scalarFailure = true;
|
|
44
|
+
original = original.original;
|
|
45
|
+
}
|
|
46
|
+
else if (original instanceof GraphQLError &&
|
|
47
|
+
!isBoundaryError(original) &&
|
|
48
|
+
original.originalError) {
|
|
49
|
+
original = original.originalError;
|
|
50
|
+
}
|
|
51
|
+
else
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
// Only request-stage diagnostics without application callback provenance
|
|
55
|
+
// are graphql-js's own messages. Execution errors never gain trust from
|
|
56
|
+
// a missing originalError (prelocated errors are forwarded unchanged).
|
|
57
|
+
if ((requestStage || !error.path) &&
|
|
58
|
+
!scalarFailure &&
|
|
59
|
+
original instanceof GraphQLError &&
|
|
60
|
+
!isBoundaryError(original))
|
|
61
|
+
return error;
|
|
62
|
+
const mapped = yield* recoverCause(Cause.die(original), [], policy, {
|
|
63
|
+
coordinate: error.path?.join(".") ?? "operation",
|
|
64
|
+
phase: "execute",
|
|
65
|
+
});
|
|
66
|
+
if (!(mapped instanceof GraphQLError))
|
|
67
|
+
throw new Error("Error policy must return a GraphQL error");
|
|
68
|
+
return new GraphQLError(mapped.message, {
|
|
69
|
+
nodes: error.nodes,
|
|
70
|
+
source: error.source,
|
|
71
|
+
positions: error.positions,
|
|
72
|
+
path: error.path,
|
|
73
|
+
originalError: mapped,
|
|
74
|
+
extensions: mapped.extensions,
|
|
75
|
+
});
|
|
76
|
+
}));
|
|
77
|
+
return { ...result, errors };
|
|
78
|
+
});
|
|
79
|
+
const unexpected = (cause, policy) => Effect.map(recoverCause(cause, [], policy, {
|
|
80
|
+
coordinate: "operation",
|
|
81
|
+
phase: "execute",
|
|
82
|
+
}), (error) => {
|
|
83
|
+
if (!(error instanceof GraphQLError))
|
|
84
|
+
throw new Error("Error policy must return a GraphQL error");
|
|
85
|
+
return { errors: [error] };
|
|
86
|
+
});
|
|
87
|
+
function executeDocument(built, document, request, context) {
|
|
88
|
+
const policy = built[schemaErrorPolicy] ?? defaultErrorPolicy;
|
|
89
|
+
return Effect.gen(function* () {
|
|
90
|
+
const errors = validate(built.schema, document, validationRules);
|
|
91
|
+
if (errors.length)
|
|
92
|
+
return yield* sanitize({ errors }, policy, true);
|
|
93
|
+
const services = yield* Effect.context();
|
|
94
|
+
const result = yield* Effect.promise((signal) => Promise.resolve(graphqlExecute({
|
|
95
|
+
schema: built.schema,
|
|
96
|
+
document,
|
|
97
|
+
variableValues: request.variableValues,
|
|
98
|
+
operationName: request.operationName,
|
|
99
|
+
contextValue: bridge(services, context, signal),
|
|
100
|
+
})));
|
|
101
|
+
return yield* sanitize(result, policy);
|
|
102
|
+
}).pipe(Effect.catchCause((cause) => unexpected(cause, policy)), Effect.withSpan("GraphQL.execute"));
|
|
103
|
+
}
|
|
104
|
+
function subscribeDocument(built, document, request, context) {
|
|
105
|
+
const policy = built[schemaErrorPolicy] ?? defaultErrorPolicy;
|
|
106
|
+
return Stream.unwrap(Effect.gen(function* () {
|
|
107
|
+
const errors = validate(built.schema, document, validationRules);
|
|
108
|
+
if (errors.length)
|
|
109
|
+
return Stream.fromEffect(sanitize({ errors }, policy, true));
|
|
110
|
+
const lifetime = yield* Effect.acquireRelease(Effect.sync(() => ({
|
|
111
|
+
controller: new AbortController(),
|
|
112
|
+
pending: new Set(),
|
|
113
|
+
sources: new Set(),
|
|
114
|
+
})), ({ controller, pending, sources }) => Effect.promise(async () => {
|
|
115
|
+
controller.abort();
|
|
116
|
+
// fromAsyncIterable does not await return() during a pending pull.
|
|
117
|
+
// Closing the owned Effect iterators joins their scope finalizers,
|
|
118
|
+
// including any close already started by graphql-js or the consumer.
|
|
119
|
+
const closing = Array.from(sources, (source) => source.return?.());
|
|
120
|
+
await Promise.allSettled([...pending, ...closing]);
|
|
121
|
+
}));
|
|
122
|
+
const services = yield* Effect.context();
|
|
123
|
+
const result = yield* Effect.promise(() => graphqlSubscribe({
|
|
124
|
+
schema: built.schema,
|
|
125
|
+
document,
|
|
126
|
+
variableValues: request.variableValues,
|
|
127
|
+
operationName: request.operationName,
|
|
128
|
+
contextValue: bridge(services, context, lifetime.controller.signal, lifetime.pending, lifetime.sources),
|
|
129
|
+
}));
|
|
130
|
+
return (Symbol.asyncIterator in result
|
|
131
|
+
? Stream.fromAsyncIterable(result, (error) => error)
|
|
132
|
+
: Stream.succeed(result)).pipe(Stream.mapEffect((result) => sanitize(result, policy)));
|
|
133
|
+
})).pipe(Stream.catchCause((cause) => Stream.fromEffect(unexpected(cause, policy))), Stream.withSpan("GraphQL.subscribe"));
|
|
134
|
+
}
|
|
135
|
+
function parsed(source) {
|
|
136
|
+
try {
|
|
137
|
+
return parse(source);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
if (!(error instanceof GraphQLError))
|
|
141
|
+
throw error;
|
|
142
|
+
return { errors: [error] };
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export const execute = (built, request, ...context) => Effect.suspend(() => {
|
|
146
|
+
const document = parsed(request.source);
|
|
147
|
+
return "kind" in document
|
|
148
|
+
? executeDocument(built, document, request, context.length === 0 ? {} : context[0])
|
|
149
|
+
: Effect.succeed(document);
|
|
150
|
+
});
|
|
151
|
+
export const subscribe = (built, request, ...context) => Stream.suspend(() => {
|
|
152
|
+
const document = parsed(request.source);
|
|
153
|
+
return "kind" in document
|
|
154
|
+
? subscribeDocument(built, document, request, context.length === 0 ? {} : context[0])
|
|
155
|
+
: Stream.succeed(document);
|
|
156
|
+
});
|
|
157
|
+
export const executor = (built) => {
|
|
158
|
+
const request = (input) => ({
|
|
159
|
+
source: input.request.query,
|
|
160
|
+
...(input.request.variables
|
|
161
|
+
? { variableValues: input.request.variables }
|
|
162
|
+
: {}),
|
|
163
|
+
...(input.request.operationName != null
|
|
164
|
+
? { operationName: input.request.operationName }
|
|
165
|
+
: {}),
|
|
166
|
+
});
|
|
167
|
+
return {
|
|
168
|
+
validation: "executor",
|
|
169
|
+
schema: built.schema,
|
|
170
|
+
execute: (input) => executeDocument(built, input.document, request(input), input.context).pipe(Effect.flatMap((result) => formatResult(result))),
|
|
171
|
+
subscribe: (input) => subscribeDocument(built, input.document, request(input), input.context).pipe(Stream.mapEffect((result) => formatResult(result))),
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
//# sourceMappingURL=Execution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Execution.js","sourceRoot":"","sources":["../src/Execution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAA;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAGxD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC9C,OAAO,EACL,YAAY,EAGZ,OAAO,IAAI,cAAc,EACzB,SAAS,IAAI,gBAAgB,EAC7B,KAAK,EACL,QAAQ,EACR,cAAc,EACd,4BAA4B,GAE7B,MAAM,SAAS,CAAA;AAChB,OAAO,EAEL,kBAAkB,EAClB,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAA;AACpB,OAAO,EAAwC,MAAM,iBAAiB,CAAA;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,gCAAgC,CAAA;AAEjF,2EAA2E;AAC3E,kFAAkF;AAClF,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAClD,IAAI,KAAK,4BAA4B;IACnC,CAAC,CAAC,gCAAgC;IAClC,CAAC,CAAC,IAAI,CACT,CAAA;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAkB,MAAM,CACrD,6BAA6B,CAC9B,CAAA;AACD,MAAM,CAAC,MAAM,iBAAiB,GAAkB,MAAM,CACpD,6BAA6B,CAC9B,CAAA;AAsDD,SAAS,MAAM,CACb,QAA4B,EAC5B,OAAgB,EAChB,MAAoB,EACpB,OAA+B,EAC/B,OAA8C;IAE9C,6EAA6E;IAC7E,6EAA6E;IAC7E,OAAO;QACL,OAAO;QACP,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YACjB,wEAAwE;YACxE,2EAA2E;YAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAmB,CACvC,MAA0C,EAC1C,QAAQ,CACT,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAA;YACzB,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACpB,OAAO,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAA;QACjD,CAAC;QACD,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YACd,MAAM,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAC7C,MAA0C,EAC1C,EAAE,MAAM,EAAE,CACX,CAAA;YACD,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;QACxD,CAAC;KACF,CAAA;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,QAAQ,GAAG,CACf,MAAuB,EACvB,MAAmB,EACnB,YAAY,GAAG,KAAK,EACY,EAAE,CAClC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAC5D,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,IAAI,QAAQ,GAAY,KAAK,CAAA;QAC7B,IAAI,aAAa,GAAG,KAAK,CAAA;QACzB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,QAAQ,YAAY,kBAAkB,EAAE,CAAC;gBAC3C,aAAa,GAAG,IAAI,CAAA;gBACpB,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;YAC9B,CAAC;iBAAM,IACL,QAAQ,YAAY,YAAY;gBAChC,CAAC,eAAe,CAAC,QAAQ,CAAC;gBAC1B,QAAQ,CAAC,aAAa,EACtB,CAAC;gBACD,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAA;YACnC,CAAC;;gBAAM,MAAK;QACd,CAAC;QACD,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,IACE,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,CAAC,aAAa;YACd,QAAQ,YAAY,YAAY;YAChC,CAAC,eAAe,CAAC,QAAQ,CAAC;YAE1B,OAAO,KAAK,CAAA;QACd,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE;YAClE,UAAU,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,WAAW;YAChD,KAAK,EAAE,SAAS;SACjB,CAAC,CAAA;QACF,IAAI,CAAC,CAAC,MAAM,YAAY,YAAY,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;QAC7D,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE;YACtC,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,aAAa,EAAE,MAAM;YACrB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAC,CAAA;IACJ,CAAC,CAAC,CACH,CAAA;IACD,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEJ,MAAM,UAAU,GAAG,CACjB,KAA2B,EAC3B,MAAmB,EACa,EAAE,CAClC,MAAM,CAAC,GAAG,CACR,YAAY,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE;IAC9B,UAAU,EAAE,WAAW;IACvB,KAAK,EAAE,SAAS;CACjB,CAAC,EACF,CAAC,KAAK,EAAE,EAAE;IACR,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAA;IAC7D,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;AAC5B,CAAC,CACF,CAAA;AAEH,SAAS,eAAe,CACtB,KAAwB,EACxB,QAAsB,EACtB,OAAgB,EAChB,OAAgB;IAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,kBAAkB,CAAA;IAC7D,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QAChE,IAAI,MAAM,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;QACnE,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAK,CAAA;QAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAC9C,OAAO,CAAC,OAAO,CACb,cAAc,CAAC;YACb,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;SAChD,CAAC,CACH,CACF,CAAA;QACD,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACxC,CAAC,CAAC,CAAC,IAAI,CACL,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,EACvD,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CACnC,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CACxB,KAAwB,EACxB,QAAsB,EACtB,OAAgB,EAChB,OAAgB;IAEhB,MAAM,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,kBAAkB,CAAA;IAC7D,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QAClB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAA;QAChE,IAAI,MAAM,CAAC,MAAM;YACf,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,cAAc,CAC3C,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACjB,UAAU,EAAE,IAAI,eAAe,EAAE;YACjC,OAAO,EAAE,IAAI,GAAG,EAAoB;YACpC,OAAO,EAAE,IAAI,GAAG,EAAmC;SACpD,CAAC,CAAC,EACH,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CACnC,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE;YACxB,UAAU,CAAC,KAAK,EAAE,CAAA;YAClB,mEAAmE;YACnE,mEAAmE;YACnE,qEAAqE;YACrE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;YAClE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAA;QACpD,CAAC,CAAC,CACL,CAAA;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAK,CAAA;QAC3C,MAAM,MAAM,GACV,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CACzB,gBAAgB,CAAC;YACf,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ;YACR,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,YAAY,EAAE,MAAM,CAClB,QAAQ,EACR,OAAO,EACP,QAAQ,CAAC,UAAU,CAAC,MAAM,EAC1B,QAAQ,CAAC,OAAO,EAChB,QAAQ,CAAC,OAAO,CACjB;SACF,CAAC,CACH,CAAA;QACH,OAAO,CACL,MAAM,CAAC,aAAa,IAAI,MAAM;YAC5B,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;YACpD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAC3B,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CACH,CAAC,IAAI,CACJ,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAC1E,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACrC,CAAA;AACH,CAAC;AAED,SAAS,MAAM,CAAC,MAAc;IAC5B,IAAI,CAAC;QACH,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,YAAY,CAAC;YAAE,MAAM,KAAK,CAAA;QACjD,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,KAAwB,EACxB,OAAgB,EAChB,GAAG,OAAoC,EACG,EAAE,CAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO,MAAM,IAAI,QAAQ;QACvB,CAAC,CAAC,eAAe,CACb,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACvC;QACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,KAAwB,EACxB,OAAgB,EAChB,GAAG,OAAoC,EACG,EAAE,CAC5C,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE;IAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACvC,OAAO,MAAM,IAAI,QAAQ;QACvB,CAAC,CAAC,iBAAiB,CACf,KAAK,EACL,QAAQ,EACR,OAAO,EACP,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACvC;QACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC9B,CAAC,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,KAAwB,EACD,EAAE;IACzB,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAW,EAAE,CAAC,CAAC;QACjD,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK;QAC3B,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;YACzB,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE;YAC7C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI;YACrC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE;YAChD,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;IACF,OAAO;QACL,UAAU,EAAE,UAAU;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,eAAe,CACb,KAAK,EACL,KAAK,CAAC,QAAQ,EACd,OAAO,CAAC,KAAK,CAAC,EACd,KAAK,CAAC,OAAO,CACd,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,iBAAiB,CACf,KAAK,EACL,KAAK,CAAC,QAAQ,EACd,OAAO,CAAC,KAAK,CAAC,EACd,KAAK,CAAC,OAAO,CACd,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;KAC7D,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { RuntimeRef, OutputRef, Description } from "./FieldTypes.ts";
|
|
2
|
+
export declare function wrap<A>(kind: "list" | "nullable", of: RuntimeRef): OutputRef<A>;
|
|
3
|
+
export declare function normalize(ref: RuntimeRef, value: unknown): unknown;
|
|
4
|
+
export declare function describe(options: Description): Description;
|
|
5
|
+
//# sourceMappingURL=FieldRuntime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldRuntime.d.ts","sourceRoot":"","sources":["../src/FieldRuntime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAEzE,wBAAgB,IAAI,CAAC,CAAC,EACpB,IAAI,EAAE,MAAM,GAAG,UAAU,EACzB,EAAE,EAAE,UAAU,GACb,SAAS,CAAC,CAAC,CAAC,CAGd;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CASlE;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAS1D"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
2
|
+
export function wrap(kind, of) {
|
|
3
|
+
// A is a phantom value tracked by the field overloads, never runtime data.
|
|
4
|
+
return { kind, of };
|
|
5
|
+
}
|
|
6
|
+
export function normalize(ref, value) {
|
|
7
|
+
if (typeof ref === "string")
|
|
8
|
+
return value;
|
|
9
|
+
if (ref.kind === "nullable") {
|
|
10
|
+
const unwrapped = Option.isOption(value) ? Option.getOrNull(value) : value;
|
|
11
|
+
return unwrapped == null ? null : normalize(ref.of, unwrapped);
|
|
12
|
+
}
|
|
13
|
+
return Array.isArray(value)
|
|
14
|
+
? value.map((item) => normalize(ref.of, item))
|
|
15
|
+
: value;
|
|
16
|
+
}
|
|
17
|
+
export function describe(options) {
|
|
18
|
+
return {
|
|
19
|
+
...(options.description === undefined
|
|
20
|
+
? {}
|
|
21
|
+
: { description: options.description }),
|
|
22
|
+
...(options.deprecationReason === undefined
|
|
23
|
+
? {}
|
|
24
|
+
: { deprecationReason: options.deprecationReason }),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=FieldRuntime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldRuntime.js","sourceRoot":"","sources":["../src/FieldRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAG/B,MAAM,UAAU,IAAI,CAClB,IAAyB,EACzB,EAAc;IAEd,2EAA2E;IAC3E,OAAO,EAAE,IAAI,EAAE,EAAE,EAAkB,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAe,EAAE,KAAc;IACvD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACzC,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;QAC1E,OAAO,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC,CAAC,KAAK,CAAA;AACX,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAoB;IAC3C,OAAO;QACL,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS;YACnC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,GAAG,CAAC,OAAO,CAAC,iBAAiB,KAAK,SAAS;YACzC,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,EAAE,CAAC;KACtD,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
import type { Effect, Option, Schema, Stream } from "effect";
|
|
2
|
+
import { type GraphQLFieldConfig, type GraphQLOutputType } from "graphql";
|
|
3
|
+
import { type Connection, type ConnectionArgs } from "./Connections.ts";
|
|
4
|
+
import type { RootDefinition } from "./Definitions.ts";
|
|
5
|
+
import type { InputTypes } from "./InputTypes.ts";
|
|
6
|
+
import { type Scalars, type NamesOfKind, type ModelAt, type Values } from "./Registry.ts";
|
|
7
|
+
import { type ErrorSchema, type ErrorsOf, type ResultOptions } from "./Results.ts";
|
|
8
|
+
export type Resolved<A, E, R> = A | Effect.Effect<A, E, R>;
|
|
9
|
+
export type RuntimeRef = string | {
|
|
10
|
+
readonly kind: "list" | "nullable";
|
|
11
|
+
readonly of: RuntimeRef;
|
|
12
|
+
};
|
|
13
|
+
export declare const outputValue: unique symbol;
|
|
14
|
+
/** Preserve a nullable ref's named success type for result-union validation. */
|
|
15
|
+
export declare const outputResult: unique symbol;
|
|
16
|
+
export interface OutputRef<A, Result = unknown> {
|
|
17
|
+
readonly [outputResult]: Result;
|
|
18
|
+
readonly kind: "list" | "nullable";
|
|
19
|
+
readonly of: RuntimeRef;
|
|
20
|
+
readonly [outputValue]: A;
|
|
21
|
+
}
|
|
22
|
+
/** A config-less connection helper retains the node for the connection overloads. */
|
|
23
|
+
export interface ConnectionRef<N extends string> {
|
|
24
|
+
readonly kind: "connection";
|
|
25
|
+
readonly node: N;
|
|
26
|
+
}
|
|
27
|
+
export type RootKind = "query" | "mutation" | "subscription";
|
|
28
|
+
/** Root helpers add a name and return a definition; the field config stays shared. */
|
|
29
|
+
type FieldArguments<K, N extends string, T, I> = [
|
|
30
|
+
...name: K extends RootKind ? [name: N] : [],
|
|
31
|
+
type: T,
|
|
32
|
+
input: I
|
|
33
|
+
];
|
|
34
|
+
type FieldSource<K, S> = K extends RootKind ? unknown : S;
|
|
35
|
+
type FieldResult<K, N extends string, S, R, C, Subscription extends boolean = false> = K extends RootKind ? RootDefinition<K, {
|
|
36
|
+
readonly [P in N]: SourceField<unknown, R, C, Subscription>;
|
|
37
|
+
}, C> : SourceField<S, R, C, Subscription>;
|
|
38
|
+
type ResultTarget<T> = T extends OutputRef<unknown, infer Result> ? Result : T;
|
|
39
|
+
export type ConnectionNode<Types> = NamesOfKind<Types, "object" | "interface" | "union">;
|
|
40
|
+
export type ObjectName<Types> = NamesOfKind<Types, "object">;
|
|
41
|
+
export type ResultName<Types> = ObjectName<Types> | NamesOfKind<Types, "union"> | `${ObjectName<Types>}Edge` | `${ObjectName<Types>}Connection` | "PageInfo";
|
|
42
|
+
export type Ref<Types> = Extract<keyof Values<Types>, string> | keyof Scalars | OutputRef<unknown, unknown>;
|
|
43
|
+
export type Value<Types, T> = T extends OutputRef<infer A, unknown> ? A : T extends keyof Values<Types> ? Values<Types>[T] : T extends keyof Scalars ? Scalars[T] : never;
|
|
44
|
+
export type ListOf<Types, T> = ReadonlyArray<Value<Types, T>>;
|
|
45
|
+
export type NullableOf<Types, T> = Value<Types, T> | null | undefined | Option.Option<Value<Types, T>>;
|
|
46
|
+
export type ArgFields = Readonly<Record<string, Schema.ConstraintDecoder<unknown, never>>>;
|
|
47
|
+
export type ArgsOf<Args extends ArgFields> = Schema.Struct<Args>["Type"];
|
|
48
|
+
export interface Description {
|
|
49
|
+
readonly description?: string;
|
|
50
|
+
readonly deprecationReason?: string;
|
|
51
|
+
}
|
|
52
|
+
/** Resolvers, authorize, totalCount and nodes all receive the request context as the third argument. */
|
|
53
|
+
export type Resolve<S, Args, A, E, R, C> = (source: S, args: Args, context: C) => Resolved<A, E, R>;
|
|
54
|
+
export interface FieldConfig<S, Args extends ArgFields, A, E, R, AR, C> extends Description {
|
|
55
|
+
readonly args?: Args;
|
|
56
|
+
readonly subscribe?: never;
|
|
57
|
+
readonly resolve: Resolve<S, ArgsOf<NoInfer<Args>>, A, E, R, C>;
|
|
58
|
+
readonly authorize?: Resolve<S, ArgsOf<NoInfer<Args>>, boolean, E, AR, C>;
|
|
59
|
+
}
|
|
60
|
+
/** Subscription setup returns a stream; authorization receives each delivered value. */
|
|
61
|
+
export interface SubscriptionConfig<S, Args extends ArgFields, A, G, R, AR, C> extends Description {
|
|
62
|
+
readonly args?: Args;
|
|
63
|
+
readonly subscribe: (source: S, args: ArgsOf<NoInfer<Args>>, context: C) => Stream.Stream<A, NoInfer<G>, R>;
|
|
64
|
+
readonly authorize?: Resolve<A, ArgsOf<NoInfer<Args>>, boolean, NoInfer<G>, AR, C>;
|
|
65
|
+
readonly resolve?: never;
|
|
66
|
+
}
|
|
67
|
+
export interface UnionFieldConfig<S, Args extends ArgFields, A, E extends readonly ErrorSchema[], R, G, AR, C> extends FieldConfig<S, Args, A, ErrorsOf<NoInfer<E>> | G, R, AR, C> {
|
|
68
|
+
/** Typed errors returned as members of the generated "<Field>Result" union. */
|
|
69
|
+
readonly errors?: E;
|
|
70
|
+
readonly result?: ResultOptions;
|
|
71
|
+
}
|
|
72
|
+
/** A resolver, or a config with args, errors or a description. */
|
|
73
|
+
export type FieldInput<S, A, R, G, Args extends ArgFields, AR, C> = Resolve<S, {}, A, NoInfer<G>, R, C> | FieldConfig<S, Args, A, NoInfer<G>, R, AR, C>;
|
|
74
|
+
export type UnionRule<Types, T, E> = E extends readonly [] ? unknown : ResultTarget<T> extends ResultName<Types> ? unknown : {
|
|
75
|
+
readonly errors: "Result unions need an object type or object union; use a registered object or union";
|
|
76
|
+
};
|
|
77
|
+
export type ResultRule<Types, T> = ResultTarget<T> extends ResultName<Types> ? unknown : {
|
|
78
|
+
readonly result?: "Result unions need an object type or object union; use a registered object or union";
|
|
79
|
+
};
|
|
80
|
+
export type ConnectionArgCheck<Args> = {
|
|
81
|
+
readonly [K in keyof Args]: K extends keyof ConnectionArgs ? "Reserved pagination argument; remove it from args and use the built-in connection arguments" : unknown;
|
|
82
|
+
};
|
|
83
|
+
export interface PagedConnection<S, A, Args extends ArgFields, R, G, AR, CR, C> extends Description {
|
|
84
|
+
readonly subscribe?: never;
|
|
85
|
+
readonly authorize?: Resolve<S, ArgsOf<NoInfer<Args>>, boolean, G, AR, C>;
|
|
86
|
+
readonly totalCount?: Resolve<S, ArgsOf<NoInfer<Args>>, number, G, CR, C>;
|
|
87
|
+
/** Overrides the default "<Node>Connection" name. */
|
|
88
|
+
readonly name?: string;
|
|
89
|
+
readonly edgeName?: string;
|
|
90
|
+
readonly args?: Args & ConnectionArgCheck<Args>;
|
|
91
|
+
/** Returns one page, e.g. a model-ts paginate() result. */
|
|
92
|
+
readonly resolve: Resolve<S, ConnectionArgs & ArgsOf<NoInfer<Args>>, Connection<A>, G, R, C>;
|
|
93
|
+
readonly nodes?: never;
|
|
94
|
+
}
|
|
95
|
+
export interface NodesConnection<S, A, Args extends ArgFields, R, G, AR, CR, C> extends Description {
|
|
96
|
+
readonly subscribe?: never;
|
|
97
|
+
readonly authorize?: Resolve<S, ArgsOf<NoInfer<Args>>, boolean, G, AR, C>;
|
|
98
|
+
readonly totalCount?: Resolve<S, ArgsOf<NoInfer<Args>>, number, G, CR, C>;
|
|
99
|
+
readonly name?: string;
|
|
100
|
+
readonly edgeName?: string;
|
|
101
|
+
readonly args?: Args & ConnectionArgCheck<Args>;
|
|
102
|
+
/** Returns every node; the builder slices the page and issues offset cursors. */
|
|
103
|
+
readonly nodes: Resolve<S, ArgsOf<NoInfer<Args>>, ReadonlyArray<A>, G, R, C>;
|
|
104
|
+
readonly resolve?: never;
|
|
105
|
+
}
|
|
106
|
+
export interface BuildContext {
|
|
107
|
+
readonly input: InputTypes;
|
|
108
|
+
readonly output: (ref: RuntimeRef, coordinate: string) => GraphQLOutputType;
|
|
109
|
+
readonly result: (ref: string, errors: readonly ErrorSchema[], field: string, options?: ResultOptions, nullable?: boolean) => GraphQLOutputType;
|
|
110
|
+
readonly connection: (node: string, name: string | undefined, coordinate: string, counted: boolean, edgeName?: string) => GraphQLOutputType;
|
|
111
|
+
}
|
|
112
|
+
export interface RequestContext {
|
|
113
|
+
/** The caller's request context, passed to every resolver. */
|
|
114
|
+
readonly context: unknown;
|
|
115
|
+
readonly stream: (stream: Stream.Stream<unknown, never, unknown>) => AsyncIterable<unknown>;
|
|
116
|
+
readonly run: (effect: Effect.Effect<unknown, never, unknown>) => Promise<unknown>;
|
|
117
|
+
}
|
|
118
|
+
export declare const fieldRequirements: unique symbol;
|
|
119
|
+
export interface Field<out R, C = {}> extends Contextual<C> {
|
|
120
|
+
readonly kind: "field" | "list" | "nullable" | "connection";
|
|
121
|
+
readonly build: (context: BuildContext, name: string, coordinate?: string) => GraphQLFieldConfig<unknown, RequestContext>;
|
|
122
|
+
readonly [fieldRequirements]: R | undefined;
|
|
123
|
+
}
|
|
124
|
+
export declare const fieldSource: unique symbol;
|
|
125
|
+
export interface SourceSlot<S> {
|
|
126
|
+
readonly [fieldSource]: (source: S) => void;
|
|
127
|
+
}
|
|
128
|
+
export type SourceField<S, R, C = {}, Subscription extends boolean = false> = SourceSlot<S> & NoInfer<Field<R, C> & SubscriptionMarker<Subscription>>;
|
|
129
|
+
export type SubscriptionMarker<Subscription extends boolean> = Subscription extends true ? {
|
|
130
|
+
readonly "~subscription": true;
|
|
131
|
+
} : {
|
|
132
|
+
readonly "~subscription"?: false;
|
|
133
|
+
};
|
|
134
|
+
export type FieldMap<S = never, C = {}, Subscription extends boolean = false> = Readonly<Record<string, SourceField<S, unknown, C, Subscription>>>;
|
|
135
|
+
export declare const defaultRef: unique symbol;
|
|
136
|
+
/** Phantom declaration used by both local and root default-source checks. */
|
|
137
|
+
export interface DefaultField<R, T, C = {}> extends Field<R, C> {
|
|
138
|
+
readonly "~subscription"?: false;
|
|
139
|
+
readonly [defaultRef]: T;
|
|
140
|
+
}
|
|
141
|
+
export type SourceDefault<S, R, T, C = {}> = SourceSlot<S> & NoInfer<DefaultField<R, T, C>>;
|
|
142
|
+
export interface DefaultOptions<S, G, AR, C> extends Description {
|
|
143
|
+
readonly subscribe?: never;
|
|
144
|
+
readonly authorize?: Resolve<S, {}, boolean, G, AR, C>;
|
|
145
|
+
readonly resolve?: never;
|
|
146
|
+
readonly args?: never;
|
|
147
|
+
readonly errors?: never;
|
|
148
|
+
}
|
|
149
|
+
export type ScalarHelpers<Types, G, C, Nullable extends boolean = false> = {
|
|
150
|
+
readonly [K in keyof ScalarMethods]: <S, AR = never>(options?: DefaultOptions<S, G, AR, C>) => SourceDefault<S, AR, Nullable extends true ? OutputRef<Value<Types, ScalarMethods[K]> | null | undefined | Option.Option<Value<Types, ScalarMethods[K]>>> : ScalarMethods[K], C>;
|
|
151
|
+
};
|
|
152
|
+
export interface ScalarMethods {
|
|
153
|
+
id: "ID";
|
|
154
|
+
string: "String";
|
|
155
|
+
int: "Int";
|
|
156
|
+
float: "Float";
|
|
157
|
+
boolean: "Boolean";
|
|
158
|
+
dateTime: "DateTime";
|
|
159
|
+
json: "JSON";
|
|
160
|
+
}
|
|
161
|
+
/** Keep resolver overloads last so invalid results report their expected value type. */
|
|
162
|
+
export interface NullableFields<Types, G, C> extends ScalarHelpers<Types, G, C, true> {
|
|
163
|
+
<const T extends Ref<Types>>(of: T): OutputRef<NullableOf<Types, T>, T> & SourceDefault<unknown, never, OutputRef<NullableOf<Types, T>, T>, C>;
|
|
164
|
+
<S, const T extends Ref<Types>, AR = never>(of: T, options: DefaultOptions<S, G, AR, C>): SourceDefault<S, AR, OutputRef<NullableOf<Types, T>, T>, C>;
|
|
165
|
+
<S, const T extends Ref<Types>, R = never, const E extends readonly ErrorSchema[] = readonly [], const Args extends ArgFields = {}, AR = never>(of: T, input: Resolve<S, {}, NullableOf<Types, NoInfer<T>>, NoInfer<G>, R, C> | (UnionFieldConfig<S, Args, NullableOf<Types, NoInfer<T>>, E, R, NoInfer<G>, AR, C> & UnionRule<Types, T, E> & ResultRule<Types, T>)): SourceField<S, R | AR, C>;
|
|
166
|
+
}
|
|
167
|
+
export type SourceIssue<Types, S, K, F> = F extends {
|
|
168
|
+
readonly [defaultRef]: infer T;
|
|
169
|
+
} ? K extends keyof S ? [S[K]] extends [Value<Types, T>] ? never : {
|
|
170
|
+
readonly source: S[K];
|
|
171
|
+
readonly declared: Value<Types, T>;
|
|
172
|
+
} : {
|
|
173
|
+
readonly key: K;
|
|
174
|
+
} : never;
|
|
175
|
+
export type CheckedFields<Types, N extends string, S, F> = {
|
|
176
|
+
readonly [K in keyof F]: [SourceIssue<Types, S, K, F[K]>] extends [never] ? unknown : `${N}.${K & string}: ${DefaultMessage<S, K, F[K]>}`;
|
|
177
|
+
};
|
|
178
|
+
export interface EnumFields<Types, C, K = undefined> {
|
|
179
|
+
<const N extends string, S, const T extends NamesOfKind<Types, "enum">, const A extends string>(...args: FieldArguments<K, N, T & ([NoInfer<A>] extends [ModelAt<Types, NoInfer<T>>] ? unknown : "Return a registered enum model literal"), (source: FieldSource<K, S>, args: {}, context: C) => A>): FieldResult<K, N, S, never, C>;
|
|
180
|
+
}
|
|
181
|
+
export interface SubscriptionFields<Types, G, C, K = undefined> {
|
|
182
|
+
<const N extends string, S, const T extends Ref<Types>, R = never, const Args extends ArgFields = {}, AR = never>(...args: FieldArguments<K, N, T, SubscriptionConfig<FieldSource<K, S>, Args, Value<Types, NoInfer<T>>, G, R, AR, C>>): FieldResult<K, N, S, R | AR, C, true>;
|
|
183
|
+
}
|
|
184
|
+
type ResolverInput<Types, T, S, R, G, E extends readonly ErrorSchema[], Args extends ArgFields, AR, CR, C> = T extends ConnectionRef<infer N> ? ConnectionInput<S, ModelAt<Types, N>, R, G, Args, AR, CR, C> : T extends {
|
|
185
|
+
readonly kind: "list";
|
|
186
|
+
} ? FieldInput<S, Value<Types, T>, R, G, Args, AR, C> : Resolve<S, {}, Value<Types, NoInfer<T>>, NoInfer<G>, R, C> | (UnionFieldConfig<S, Args, Value<Types, NoInfer<T>>, E, R, NoInfer<G>, AR, C> & UnionRule<Types, T, E> & ResultRule<Types, T>);
|
|
187
|
+
export interface ResolverFields<Types, G, C, K = undefined> {
|
|
188
|
+
<const N extends string, S, const T extends Ref<Types> | (K extends RootKind ? ConnectionRef<ConnectionNode<Types>> : never), R = never, const E extends readonly ErrorSchema[] = readonly [], const Args extends ArgFields = {}, AR = never, CR = never>(...args: FieldArguments<K, N, T, ResolverInput<Types, NoInfer<T>, FieldSource<K, S>, R, G, E, Args, AR, CR, C>>): FieldResult<K, N, S, R | AR | CR, C>;
|
|
189
|
+
}
|
|
190
|
+
export type ObjectFields<Types, G, C> = EnumFields<Types, C> & DefaultFields<Types, G, C> & ResolverFields<Types, G, C>;
|
|
191
|
+
export interface DefaultFields<Types, G, C> {
|
|
192
|
+
<S, const T extends Ref<Types>, AR = never>(type: T, options?: DefaultOptions<S, G, AR, C>): SourceDefault<S, AR, T, C>;
|
|
193
|
+
}
|
|
194
|
+
type ConnectionInput<S, A, R, G, Args extends ArgFields, AR, CR, C> = Resolve<S, ConnectionArgs, Connection<A>, NoInfer<G>, R, C> | PagedConnection<S, A, Args, R, NoInfer<G>, AR, CR, C> | NodesConnection<S, A, Args, R, NoInfer<G>, AR, CR, C>;
|
|
195
|
+
export interface ObjectConnections<Types, G, C> {
|
|
196
|
+
<const N extends ConnectionNode<Types>>(node: N): ConnectionRef<N> & SourceDefault<unknown, never, `${N}Connection`, C>;
|
|
197
|
+
<S, const N extends ConnectionNode<Types>, AR = never>(node: N, options: DefaultOptions<S, G, AR, C> | undefined): SourceDefault<S, AR, `${N}Connection`, C>;
|
|
198
|
+
<S, const N extends ConnectionNode<Types>, R = never, const Args extends ArgFields = {}, AR = never, CR = never>(node: N, input: ConnectionInput<S, ModelAt<Types, NoInfer<N>>, R, G, Args, AR, CR, C>): SourceField<S, R | AR | CR, C>;
|
|
199
|
+
}
|
|
200
|
+
/** Field helpers of a builder; `id` covers both the output field and ID arguments. */
|
|
201
|
+
export interface Fields<Types, G, C = {}> extends Omit<ScalarHelpers<Types, G, C>, "id"> {
|
|
202
|
+
/** A non-null `ID` output field read from the source or resolved by `authorize`. */
|
|
203
|
+
id<S, AR = never>(options?: DefaultOptions<S, G, AR, C>): SourceDefault<S, AR, "ID", C>;
|
|
204
|
+
/** Exposes a string schema, such as a branded ID, as a GraphQL `ID` argument or input field. */
|
|
205
|
+
id<S extends Schema.Top & Schema.Schema<string>>(schema: S): S["Rebuild"];
|
|
206
|
+
readonly field: ObjectFields<Types, G, C>;
|
|
207
|
+
list<const T extends Ref<Types>>(of: T): OutputRef<ListOf<Types, T>> & {
|
|
208
|
+
readonly kind: "list";
|
|
209
|
+
} & SourceDefault<unknown, never, OutputRef<ListOf<Types, T>>, C>;
|
|
210
|
+
list<S, const T extends Ref<Types>, AR = never>(of: T, options: DefaultOptions<S, G, AR, C>): SourceDefault<S, AR, OutputRef<ListOf<Types, T>>, C>;
|
|
211
|
+
list<S, const T extends Ref<Types>, R = never, const Args extends ArgFields = {}, AR = never>(of: T, input: FieldInput<S, ListOf<Types, NoInfer<T>>, R, G, Args, AR, C>): SourceField<S, R | AR, C>;
|
|
212
|
+
readonly nullable: NullableFields<Types, G, C>;
|
|
213
|
+
readonly connection: ObjectConnections<Types, G, C>;
|
|
214
|
+
}
|
|
215
|
+
export type SourceBase<A> = [A] extends [never] ? "never" : [A] extends [string] ? "string" : [A] extends [number] ? "number" : [A] extends [boolean] ? "boolean" : [A] extends [Date] ? "Date" : [A] extends [Option.Option<unknown>] ? "Option" : [A] extends [ReadonlyArray<unknown>] ? "ReadonlyArray" : "object";
|
|
216
|
+
export type SourceDescription<A> = `${SourceBase<NonNullable<A>>}${null extends A ? " | null" : ""}${undefined extends A ? " | undefined" : ""}`;
|
|
217
|
+
export type DefaultMessage<S, K, F> = K extends keyof S ? F extends {
|
|
218
|
+
readonly [defaultRef]: infer T;
|
|
219
|
+
} ? `model has ${SourceDescription<S[K]>}, field declares ${T extends string ? T : T extends OutputRef<infer A, unknown> ? SourceDescription<A> : "declared GraphQL value"}` : never : "missing source property; supply a resolver";
|
|
220
|
+
export type RequirementsOfFields<F> = [keyof F] extends [never] ? never : F[keyof F] extends {
|
|
221
|
+
readonly [fieldRequirements]: infer R;
|
|
222
|
+
} ? Exclude<R, undefined> : never;
|
|
223
|
+
export type Requirements<M> = M[keyof M] extends infer D ? D extends {
|
|
224
|
+
readonly "~kind": string;
|
|
225
|
+
readonly fields: infer F;
|
|
226
|
+
} ? RequirementsOfFields<F> : never : never;
|
|
227
|
+
export interface Contextual<C> {
|
|
228
|
+
readonly "~context"?: (context: C) => C;
|
|
229
|
+
}
|
|
230
|
+
export type RuntimeField = Pick<Field<unknown>, "kind" | "build">;
|
|
231
|
+
export {};
|
|
232
|
+
//# sourceMappingURL=FieldTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldTypes.d.ts","sourceRoot":"","sources":["../src/FieldTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FieldTypes.js","sourceRoot":"","sources":["../src/FieldTypes.ts"],"names":[],"mappings":"AACA,OAAO,EAAmD,MAAM,SAAS,CAAA;AACzE,OAAO,EAAwC,MAAM,kBAAkB,CAAA;AAGvE,OAAO,EAKN,MAAM,eAAe,CAAA;AACtB,OAAO,EAIN,MAAM,cAAc,CAAA;AAgRrB,MAAM,CAAC,MAAM,iBAAiB,GAAkB,MAAM,CACpD,4BAA4B,CAC7B,CAAA"}
|
package/dist/Fields.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ErrorPolicy } from "./Errors.ts";
|
|
2
|
+
import { type ConnectionRef, type RuntimeRef, type Field, type Fields } from "./FieldTypes.ts";
|
|
3
|
+
import { type AnyResolve, type AnyConfig } from "./Resolver.ts";
|
|
4
|
+
export declare function makeFields<Types, G, C>(policy: ErrorPolicy, maxPageSize: number, defaultPageSize: number): {
|
|
5
|
+
fields: Fields<Types, G, C>;
|
|
6
|
+
rootField: (ref: RuntimeRef | ConnectionRef<string>, input: AnyResolve | AnyConfig) => Field<unknown, {}>;
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=Fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fields.d.ts","sourceRoot":"","sources":["../src/Fields.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,MAAM,EACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,KAAK,UAAU,EACf,KAAK,SAAS,EAGf,MAAM,eAAe,CAAA;AAItB,wBAAgB,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EACpC,MAAM,EAAE,WAAW,EACnB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,MAAM;;qBAuFd,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,SAChC,UAAU,GAAG,SAAS;EAMlC"}
|
package/dist/Fields.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { connectionField } from "./Connections.js";
|
|
3
|
+
import {} from "./Errors.js";
|
|
4
|
+
import { wrap, normalize } from "./FieldRuntime.js";
|
|
5
|
+
import {} from "./FieldTypes.js";
|
|
6
|
+
import { config, resolverField, } from "./Resolver.js";
|
|
7
|
+
import { id, invalid } from "./SchemaTypes.js";
|
|
8
|
+
import { eventField } from "./Subscription.js";
|
|
9
|
+
export function makeFields(policy, maxPageSize, defaultPageSize) {
|
|
10
|
+
const field = (ref, input = {}) => {
|
|
11
|
+
const options = config(input);
|
|
12
|
+
if (options.subscribe)
|
|
13
|
+
return eventField(policy, ref, options);
|
|
14
|
+
const members = options.errors ?? [];
|
|
15
|
+
if (members.some((member) => policy.internal.includes(member)))
|
|
16
|
+
invalid("Internal errors cannot be exposed as result union members");
|
|
17
|
+
const resolve = options.resolve;
|
|
18
|
+
return resolverField(policy, options, {
|
|
19
|
+
type: (context, name) => members.length > 0 || options.result !== undefined
|
|
20
|
+
? context.result(typeof ref === "string"
|
|
21
|
+
? ref
|
|
22
|
+
: ref.kind === "nullable" && typeof ref.of === "string"
|
|
23
|
+
? ref.of
|
|
24
|
+
: invalid("Result unions require an object type or object union"), members, name, options.result, typeof ref !== "string" && ref.kind === "nullable")
|
|
25
|
+
: context.output(ref, name),
|
|
26
|
+
args: options.args ?? {},
|
|
27
|
+
members,
|
|
28
|
+
call: (source, _raw, decoded, coordinate, context) => resolve
|
|
29
|
+
? resolve(source, decoded, context)
|
|
30
|
+
: Reflect.get(Object(source), coordinate.slice(coordinate.lastIndexOf(".") + 1)),
|
|
31
|
+
finish: (value) => normalize(ref, value),
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const wrapped = (kind) => (of, input) => input === undefined
|
|
35
|
+
? Object.assign(field(wrap(kind, of)), wrap(kind, of))
|
|
36
|
+
: field(wrap(kind, of), input);
|
|
37
|
+
const scalarHelpers = (nullable) => Object.fromEntries(Object.entries({
|
|
38
|
+
id: "ID",
|
|
39
|
+
string: "String",
|
|
40
|
+
int: "Int",
|
|
41
|
+
float: "Float",
|
|
42
|
+
boolean: "Boolean",
|
|
43
|
+
dateTime: "DateTime",
|
|
44
|
+
json: "JSON",
|
|
45
|
+
}).map(([method, ref]) => [
|
|
46
|
+
method,
|
|
47
|
+
(options) => field(nullable ? { kind: "nullable", of: ref } : ref, options),
|
|
48
|
+
]));
|
|
49
|
+
const connection = (node, input) => input === undefined
|
|
50
|
+
? Object.assign(connectionField(policy, maxPageSize, defaultPageSize, node), { kind: "connection", node })
|
|
51
|
+
: connectionField(policy, maxPageSize, defaultPageSize, node, input);
|
|
52
|
+
// Public overloads describe these functions before the graphql-js runtime boundary.
|
|
53
|
+
const fields = {
|
|
54
|
+
...scalarHelpers(false),
|
|
55
|
+
// A schema can never be field options, so the argument alone selects the
|
|
56
|
+
// position; the public overload admits only string schemas.
|
|
57
|
+
id: (input) => Schema.isSchema(input)
|
|
58
|
+
? id(input)
|
|
59
|
+
: field("ID", input),
|
|
60
|
+
field,
|
|
61
|
+
connection,
|
|
62
|
+
list: wrapped("list"),
|
|
63
|
+
nullable: Object.assign(wrapped("nullable"), scalarHelpers(true)),
|
|
64
|
+
};
|
|
65
|
+
return {
|
|
66
|
+
fields,
|
|
67
|
+
rootField: (ref, input) => typeof ref !== "string" && ref.kind === "connection"
|
|
68
|
+
? connection(ref.node, input)
|
|
69
|
+
: field(ref, input),
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=Fields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fields.js","sourceRoot":"","sources":["../src/Fields.ts"],"names":[],"mappings":"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"}
|