@effect-gql/core 0.1.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/LICENSE +7 -0
- package/dist/analyzer-extension.d.ts +105 -0
- package/dist/analyzer-extension.d.ts.map +1 -0
- package/dist/analyzer-extension.js +137 -0
- package/dist/analyzer-extension.js.map +1 -0
- package/dist/builder/execute.d.ts +26 -0
- package/dist/builder/execute.d.ts.map +1 -0
- package/dist/builder/execute.js +104 -0
- package/dist/builder/execute.js.map +1 -0
- package/dist/builder/field-builders.d.ts +30 -0
- package/dist/builder/field-builders.d.ts.map +1 -0
- package/dist/builder/field-builders.js +200 -0
- package/dist/builder/field-builders.js.map +1 -0
- package/dist/builder/index.d.ts +7 -0
- package/dist/builder/index.d.ts.map +1 -0
- package/dist/builder/index.js +31 -0
- package/dist/builder/index.js.map +1 -0
- package/dist/builder/pipe-api.d.ts +231 -0
- package/dist/builder/pipe-api.d.ts.map +1 -0
- package/dist/builder/pipe-api.js +151 -0
- package/dist/builder/pipe-api.js.map +1 -0
- package/dist/builder/schema-builder.d.ts +301 -0
- package/dist/builder/schema-builder.d.ts.map +1 -0
- package/dist/builder/schema-builder.js +566 -0
- package/dist/builder/schema-builder.js.map +1 -0
- package/dist/builder/type-registry.d.ts +80 -0
- package/dist/builder/type-registry.d.ts.map +1 -0
- package/dist/builder/type-registry.js +505 -0
- package/dist/builder/type-registry.js.map +1 -0
- package/dist/builder/types.d.ts +283 -0
- package/dist/builder/types.d.ts.map +1 -0
- package/dist/builder/types.js +3 -0
- package/dist/builder/types.js.map +1 -0
- package/dist/cli/generate-schema.d.ts +29 -0
- package/dist/cli/generate-schema.d.ts.map +1 -0
- package/dist/cli/generate-schema.js +233 -0
- package/dist/cli/generate-schema.js.map +1 -0
- package/dist/cli/index.d.ts +19 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +24 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/context.d.ts +18 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +11 -0
- package/dist/context.js.map +1 -0
- package/dist/error.d.ts +45 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +29 -0
- package/dist/error.js.map +1 -0
- package/dist/extensions.d.ts +130 -0
- package/dist/extensions.d.ts.map +1 -0
- package/dist/extensions.js +78 -0
- package/dist/extensions.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +47 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +169 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +237 -0
- package/dist/loader.js.map +1 -0
- package/dist/resolver-context.d.ts +154 -0
- package/dist/resolver-context.d.ts.map +1 -0
- package/dist/resolver-context.js +184 -0
- package/dist/resolver-context.js.map +1 -0
- package/dist/schema-mapping.d.ts +30 -0
- package/dist/schema-mapping.d.ts.map +1 -0
- package/dist/schema-mapping.js +280 -0
- package/dist/schema-mapping.js.map +1 -0
- package/dist/server/cache-control.d.ts +96 -0
- package/dist/server/cache-control.d.ts.map +1 -0
- package/dist/server/cache-control.js +308 -0
- package/dist/server/cache-control.js.map +1 -0
- package/dist/server/complexity.d.ts +165 -0
- package/dist/server/complexity.d.ts.map +1 -0
- package/dist/server/complexity.js +433 -0
- package/dist/server/complexity.js.map +1 -0
- package/dist/server/config.d.ts +66 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +104 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/graphiql.d.ts +5 -0
- package/dist/server/graphiql.d.ts.map +1 -0
- package/dist/server/graphiql.js +43 -0
- package/dist/server/graphiql.js.map +1 -0
- package/dist/server/index.d.ts +18 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +48 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/router.d.ts +79 -0
- package/dist/server/router.d.ts.map +1 -0
- package/dist/server/router.js +232 -0
- package/dist/server/router.js.map +1 -0
- package/dist/server/schema-builder-extensions.d.ts +42 -0
- package/dist/server/schema-builder-extensions.d.ts.map +1 -0
- package/dist/server/schema-builder-extensions.js +48 -0
- package/dist/server/schema-builder-extensions.js.map +1 -0
- package/dist/server/sse-adapter.d.ts +64 -0
- package/dist/server/sse-adapter.d.ts.map +1 -0
- package/dist/server/sse-adapter.js +227 -0
- package/dist/server/sse-adapter.js.map +1 -0
- package/dist/server/sse-types.d.ts +192 -0
- package/dist/server/sse-types.d.ts.map +1 -0
- package/dist/server/sse-types.js +63 -0
- package/dist/server/sse-types.js.map +1 -0
- package/dist/server/ws-adapter.d.ts +39 -0
- package/dist/server/ws-adapter.d.ts.map +1 -0
- package/dist/server/ws-adapter.js +247 -0
- package/dist/server/ws-adapter.js.map +1 -0
- package/dist/server/ws-types.d.ts +169 -0
- package/dist/server/ws-types.d.ts.map +1 -0
- package/dist/server/ws-types.js +11 -0
- package/dist/server/ws-types.js.map +1 -0
- package/dist/server/ws-utils.d.ts +42 -0
- package/dist/server/ws-utils.d.ts.map +1 -0
- package/dist/server/ws-utils.js +99 -0
- package/dist/server/ws-utils.js.map +1 -0
- package/package.json +61 -0
- package/src/analyzer-extension.ts +254 -0
- package/src/builder/execute.ts +153 -0
- package/src/builder/field-builders.ts +322 -0
- package/src/builder/index.ts +48 -0
- package/src/builder/pipe-api.ts +312 -0
- package/src/builder/schema-builder.ts +970 -0
- package/src/builder/type-registry.ts +670 -0
- package/src/builder/types.ts +305 -0
- package/src/context.ts +23 -0
- package/src/error.ts +32 -0
- package/src/extensions.ts +240 -0
- package/src/index.ts +32 -0
- package/src/loader.ts +363 -0
- package/src/resolver-context.ts +253 -0
- package/src/schema-mapping.ts +307 -0
- package/src/server/cache-control.ts +590 -0
- package/src/server/complexity.ts +774 -0
- package/src/server/config.ts +174 -0
- package/src/server/graphiql.ts +38 -0
- package/src/server/index.ts +96 -0
- package/src/server/router.ts +432 -0
- package/src/server/schema-builder-extensions.ts +51 -0
- package/src/server/sse-adapter.ts +327 -0
- package/src/server/sse-types.ts +234 -0
- package/src/server/ws-adapter.ts +355 -0
- package/src/server/ws-types.ts +192 -0
- package/src/server/ws-utils.ts +136 -0
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
import { Effect, Pipeable } from "effect";
|
|
2
|
+
import * as S from "effect/Schema";
|
|
3
|
+
import { GraphQLSchema, DirectiveLocation } from "graphql";
|
|
4
|
+
import type { DirectiveApplication, MiddlewareContext, CacheHint } from "./types";
|
|
5
|
+
import type { GraphQLExtension, ExecutionArgs } from "../extensions";
|
|
6
|
+
import type { GraphQLResolveInfo, DocumentNode, ExecutionResult, GraphQLError as GQLError } from "graphql";
|
|
7
|
+
import type { FieldComplexity, FieldComplexityMap } from "../server/complexity";
|
|
8
|
+
import type { CacheHintMap } from "../server/cache-control";
|
|
9
|
+
/**
|
|
10
|
+
* GraphQL Schema Builder with type-safe service requirements (Layer-per-Request Pattern)
|
|
11
|
+
*
|
|
12
|
+
* The type parameter R accumulates all service requirements from resolvers.
|
|
13
|
+
* Unlike the runtime-in-context approach, this pattern builds the schema without
|
|
14
|
+
* executing any Effects. At request time, you provide a Layer with all required services.
|
|
15
|
+
*/
|
|
16
|
+
export declare class GraphQLSchemaBuilder<R = never> implements Pipeable.Pipeable {
|
|
17
|
+
private readonly state;
|
|
18
|
+
private constructor();
|
|
19
|
+
/**
|
|
20
|
+
* Pipeable interface implementation - enables fluent .pipe() syntax
|
|
21
|
+
*/
|
|
22
|
+
pipe<A>(this: A): A;
|
|
23
|
+
pipe<A, B>(this: A, ab: (a: A) => B): B;
|
|
24
|
+
pipe<A, B, C>(this: A, ab: (a: A) => B, bc: (b: B) => C): C;
|
|
25
|
+
pipe<A, B, C, D>(this: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D): D;
|
|
26
|
+
pipe<A, B, C, D, E>(this: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E): E;
|
|
27
|
+
pipe<A, B, C, D, E, F>(this: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F): F;
|
|
28
|
+
pipe<A, B, C, D, E, F, G>(this: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G): G;
|
|
29
|
+
pipe<A, B, C, D, E, F, G, H>(this: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H): H;
|
|
30
|
+
pipe<A, B, C, D, E, F, G, H, I>(this: A, ab: (a: A) => B, bc: (b: B) => C, cd: (c: C) => D, de: (d: D) => E, ef: (e: E) => F, fg: (f: F) => G, gh: (g: G) => H, hi: (h: H) => I): I;
|
|
31
|
+
/**
|
|
32
|
+
* Create an empty schema builder
|
|
33
|
+
*/
|
|
34
|
+
static readonly empty: GraphQLSchemaBuilder<never>;
|
|
35
|
+
/**
|
|
36
|
+
* Create a new builder with updated state
|
|
37
|
+
*/
|
|
38
|
+
private with;
|
|
39
|
+
/**
|
|
40
|
+
* Add a query field
|
|
41
|
+
*/
|
|
42
|
+
query<A, E, R2, Args = void>(name: string, config: {
|
|
43
|
+
type: S.Schema<A, any, any>;
|
|
44
|
+
args?: S.Schema<Args, any, any>;
|
|
45
|
+
description?: string;
|
|
46
|
+
directives?: readonly DirectiveApplication[];
|
|
47
|
+
/**
|
|
48
|
+
* Complexity cost of this field for query complexity limiting.
|
|
49
|
+
* Can be a static number or a function that receives the resolved arguments.
|
|
50
|
+
*/
|
|
51
|
+
complexity?: FieldComplexity;
|
|
52
|
+
/**
|
|
53
|
+
* Cache control hint for this field.
|
|
54
|
+
* Used to compute HTTP Cache-Control headers for the response.
|
|
55
|
+
*/
|
|
56
|
+
cacheControl?: CacheHint;
|
|
57
|
+
resolve: (args: Args) => Effect.Effect<A, E, R2>;
|
|
58
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
59
|
+
/**
|
|
60
|
+
* Add a mutation field
|
|
61
|
+
*/
|
|
62
|
+
mutation<A, E, R2, Args = void>(name: string, config: {
|
|
63
|
+
type: S.Schema<A, any, any>;
|
|
64
|
+
args?: S.Schema<Args, any, any>;
|
|
65
|
+
description?: string;
|
|
66
|
+
directives?: readonly DirectiveApplication[];
|
|
67
|
+
/**
|
|
68
|
+
* Complexity cost of this field for query complexity limiting.
|
|
69
|
+
* Can be a static number or a function that receives the resolved arguments.
|
|
70
|
+
*/
|
|
71
|
+
complexity?: FieldComplexity;
|
|
72
|
+
resolve: (args: Args) => Effect.Effect<A, E, R2>;
|
|
73
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
74
|
+
/**
|
|
75
|
+
* Add a subscription field
|
|
76
|
+
*
|
|
77
|
+
* Subscriptions return a Stream that yields values over time.
|
|
78
|
+
* The subscribe function returns an Effect that produces a Stream.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* ```typescript
|
|
82
|
+
* builder.subscription("userCreated", {
|
|
83
|
+
* type: User,
|
|
84
|
+
* subscribe: Effect.gen(function*() {
|
|
85
|
+
* const pubsub = yield* PubSubService
|
|
86
|
+
* return pubsub.subscribe("USER_CREATED")
|
|
87
|
+
* }),
|
|
88
|
+
* })
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
subscription<A, E, R2, Args = void>(name: string, config: {
|
|
92
|
+
type: S.Schema<A, any, any>;
|
|
93
|
+
args?: S.Schema<Args, any, any>;
|
|
94
|
+
description?: string;
|
|
95
|
+
directives?: readonly DirectiveApplication[];
|
|
96
|
+
/**
|
|
97
|
+
* Complexity cost of this subscription for query complexity limiting.
|
|
98
|
+
* Can be a static number or a function that receives the resolved arguments.
|
|
99
|
+
*/
|
|
100
|
+
complexity?: FieldComplexity;
|
|
101
|
+
/**
|
|
102
|
+
* Cache control hint for this subscription.
|
|
103
|
+
* Note: Subscriptions are typically not cached, but this can be used for initial response hints.
|
|
104
|
+
*/
|
|
105
|
+
cacheControl?: CacheHint;
|
|
106
|
+
subscribe: (args: Args) => Effect.Effect<import("effect").Stream.Stream<A, E, R2>, E, R2>;
|
|
107
|
+
resolve?: (value: A, args: Args) => Effect.Effect<A, E, R2>;
|
|
108
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
109
|
+
/**
|
|
110
|
+
* Register an object type from a schema
|
|
111
|
+
*/
|
|
112
|
+
objectType<A, R2 = never>(config: {
|
|
113
|
+
name?: string;
|
|
114
|
+
schema: S.Schema<A, any, any>;
|
|
115
|
+
implements?: readonly string[];
|
|
116
|
+
directives?: readonly DirectiveApplication[];
|
|
117
|
+
/**
|
|
118
|
+
* Default cache control hint for all fields returning this type.
|
|
119
|
+
* Can be overridden by field-level cacheControl.
|
|
120
|
+
*/
|
|
121
|
+
cacheControl?: CacheHint;
|
|
122
|
+
fields?: Record<string, {
|
|
123
|
+
type: S.Schema<any, any, any>;
|
|
124
|
+
args?: S.Schema<any, any, any>;
|
|
125
|
+
description?: string;
|
|
126
|
+
directives?: readonly DirectiveApplication[];
|
|
127
|
+
/**
|
|
128
|
+
* Complexity cost of this field for query complexity limiting.
|
|
129
|
+
*/
|
|
130
|
+
complexity?: FieldComplexity;
|
|
131
|
+
/**
|
|
132
|
+
* Cache control hint for this field.
|
|
133
|
+
*/
|
|
134
|
+
cacheControl?: CacheHint;
|
|
135
|
+
resolve: (parent: A, args: any) => Effect.Effect<any, any, any>;
|
|
136
|
+
}>;
|
|
137
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
138
|
+
/**
|
|
139
|
+
* Register an interface type from a schema
|
|
140
|
+
*/
|
|
141
|
+
interfaceType(config: {
|
|
142
|
+
name?: string;
|
|
143
|
+
schema: S.Schema<any, any, any>;
|
|
144
|
+
resolveType?: (value: any) => string;
|
|
145
|
+
directives?: readonly DirectiveApplication[];
|
|
146
|
+
}): GraphQLSchemaBuilder<R>;
|
|
147
|
+
/**
|
|
148
|
+
* Register an enum type
|
|
149
|
+
*/
|
|
150
|
+
enumType(config: {
|
|
151
|
+
name: string;
|
|
152
|
+
values: readonly string[];
|
|
153
|
+
description?: string;
|
|
154
|
+
directives?: readonly DirectiveApplication[];
|
|
155
|
+
}): GraphQLSchemaBuilder<R>;
|
|
156
|
+
/**
|
|
157
|
+
* Register a union type
|
|
158
|
+
*/
|
|
159
|
+
unionType(config: {
|
|
160
|
+
name: string;
|
|
161
|
+
types: readonly string[];
|
|
162
|
+
resolveType?: (value: any) => string;
|
|
163
|
+
directives?: readonly DirectiveApplication[];
|
|
164
|
+
}): GraphQLSchemaBuilder<R>;
|
|
165
|
+
/**
|
|
166
|
+
* Register an input type
|
|
167
|
+
*/
|
|
168
|
+
inputType(config: {
|
|
169
|
+
name?: string;
|
|
170
|
+
schema: S.Schema<any, any, any>;
|
|
171
|
+
description?: string;
|
|
172
|
+
directives?: readonly DirectiveApplication[];
|
|
173
|
+
}): GraphQLSchemaBuilder<R>;
|
|
174
|
+
/**
|
|
175
|
+
* Register a directive
|
|
176
|
+
*/
|
|
177
|
+
directive<Args = void, R2 = never>(config: {
|
|
178
|
+
name: string;
|
|
179
|
+
description?: string;
|
|
180
|
+
locations: readonly DirectiveLocation[];
|
|
181
|
+
args?: S.Schema<Args, any, any>;
|
|
182
|
+
apply?: (args: Args) => <A, E, R3>(effect: Effect.Effect<A, E, R3>) => Effect.Effect<A, E, R2 | R3>;
|
|
183
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
184
|
+
/**
|
|
185
|
+
* Register a middleware
|
|
186
|
+
*
|
|
187
|
+
* Middleware wraps all resolvers (or those matching a pattern) and executes
|
|
188
|
+
* in an "onion" model - first registered middleware is the outermost layer.
|
|
189
|
+
*
|
|
190
|
+
* @param config.name - Middleware name (for debugging/logging)
|
|
191
|
+
* @param config.description - Optional description
|
|
192
|
+
* @param config.match - Optional predicate to filter which fields this applies to
|
|
193
|
+
* @param config.apply - Function that transforms the resolver Effect
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```typescript
|
|
197
|
+
* builder.middleware({
|
|
198
|
+
* name: "logging",
|
|
199
|
+
* apply: (effect, ctx) => Effect.gen(function*() {
|
|
200
|
+
* yield* Effect.logInfo(`Resolving ${ctx.info.fieldName}`)
|
|
201
|
+
* const start = Date.now()
|
|
202
|
+
* const result = yield* effect
|
|
203
|
+
* yield* Effect.logInfo(`Resolved in ${Date.now() - start}ms`)
|
|
204
|
+
* return result
|
|
205
|
+
* })
|
|
206
|
+
* })
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
middleware<R2 = never>(config: {
|
|
210
|
+
name: string;
|
|
211
|
+
description?: string;
|
|
212
|
+
match?: (info: GraphQLResolveInfo) => boolean;
|
|
213
|
+
apply: <A, E, R3>(effect: Effect.Effect<A, E, R3>, context: MiddlewareContext) => Effect.Effect<A, E, R2 | R3>;
|
|
214
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
215
|
+
/**
|
|
216
|
+
* Register an extension
|
|
217
|
+
*
|
|
218
|
+
* Extensions provide lifecycle hooks that run at each phase of request processing
|
|
219
|
+
* (parse, validate, execute) and can contribute data to the response's extensions field.
|
|
220
|
+
*
|
|
221
|
+
* @param config.name - Extension name (for debugging/logging)
|
|
222
|
+
* @param config.description - Optional description
|
|
223
|
+
* @param config.onParse - Called after query parsing
|
|
224
|
+
* @param config.onValidate - Called after validation
|
|
225
|
+
* @param config.onExecuteStart - Called before execution begins
|
|
226
|
+
* @param config.onExecuteEnd - Called after execution completes
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* ```typescript
|
|
230
|
+
* builder.extension({
|
|
231
|
+
* name: "tracing",
|
|
232
|
+
* onExecuteStart: () => Effect.gen(function*() {
|
|
233
|
+
* const ext = yield* ExtensionsService
|
|
234
|
+
* yield* ext.set("tracing", { startTime: Date.now() })
|
|
235
|
+
* }),
|
|
236
|
+
* onExecuteEnd: () => Effect.gen(function*() {
|
|
237
|
+
* const ext = yield* ExtensionsService
|
|
238
|
+
* yield* ext.merge("tracing", { endTime: Date.now() })
|
|
239
|
+
* }),
|
|
240
|
+
* })
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
extension<R2 = never>(config: {
|
|
244
|
+
name: string;
|
|
245
|
+
description?: string;
|
|
246
|
+
onParse?: (source: string, document: DocumentNode) => Effect.Effect<void, never, R2>;
|
|
247
|
+
onValidate?: (document: DocumentNode, errors: readonly GQLError[]) => Effect.Effect<void, never, R2>;
|
|
248
|
+
onExecuteStart?: (args: ExecutionArgs) => Effect.Effect<void, never, R2>;
|
|
249
|
+
onExecuteEnd?: (result: ExecutionResult) => Effect.Effect<void, never, R2>;
|
|
250
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
251
|
+
/**
|
|
252
|
+
* Get the registered extensions for use by the execution layer
|
|
253
|
+
*/
|
|
254
|
+
getExtensions(): readonly GraphQLExtension<any>[];
|
|
255
|
+
/**
|
|
256
|
+
* Add a computed/relational field to an object type
|
|
257
|
+
*/
|
|
258
|
+
field<Parent, A, E, R2, Args = void>(typeName: string, fieldName: string, config: {
|
|
259
|
+
type: S.Schema<A, any, any>;
|
|
260
|
+
args?: S.Schema<Args, any, any>;
|
|
261
|
+
description?: string;
|
|
262
|
+
directives?: readonly DirectiveApplication[];
|
|
263
|
+
/**
|
|
264
|
+
* Complexity cost of this field for query complexity limiting.
|
|
265
|
+
* Can be a static number or a function that receives the resolved arguments.
|
|
266
|
+
*/
|
|
267
|
+
complexity?: FieldComplexity;
|
|
268
|
+
/**
|
|
269
|
+
* Cache control hint for this field.
|
|
270
|
+
* Used to compute HTTP Cache-Control headers for the response.
|
|
271
|
+
*/
|
|
272
|
+
cacheControl?: CacheHint;
|
|
273
|
+
resolve: (parent: Parent, args: Args) => Effect.Effect<A, E, R2>;
|
|
274
|
+
}): GraphQLSchemaBuilder<R | R2>;
|
|
275
|
+
/**
|
|
276
|
+
* Get the field complexity map for use in complexity validation.
|
|
277
|
+
* Maps "TypeName.fieldName" to the complexity value or function.
|
|
278
|
+
*/
|
|
279
|
+
getFieldComplexities(): FieldComplexityMap;
|
|
280
|
+
/**
|
|
281
|
+
* Get the cache hint map for use in cache control calculation.
|
|
282
|
+
* Maps "TypeName.fieldName" to the cache hint for field-level hints,
|
|
283
|
+
* or "TypeName" to the cache hint for type-level hints.
|
|
284
|
+
*/
|
|
285
|
+
getCacheHints(): CacheHintMap;
|
|
286
|
+
/**
|
|
287
|
+
* Build the GraphQL schema (no services required)
|
|
288
|
+
*/
|
|
289
|
+
buildSchema(): GraphQLSchema;
|
|
290
|
+
private buildDirectiveRegistry;
|
|
291
|
+
private buildEnumRegistry;
|
|
292
|
+
private buildInputRegistry;
|
|
293
|
+
private buildInterfaceRegistry;
|
|
294
|
+
private buildTypeAndUnionRegistries;
|
|
295
|
+
private createFieldBuilderContext;
|
|
296
|
+
private buildQueryFields;
|
|
297
|
+
private buildMutationFields;
|
|
298
|
+
private buildSubscriptionFields;
|
|
299
|
+
private assembleSchema;
|
|
300
|
+
}
|
|
301
|
+
//# sourceMappingURL=schema-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.d.ts","sourceRoot":"","sources":["../../src/builder/schema-builder.ts"],"names":[],"mappings":"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"}
|