@effect-gql/core 0.1.0 → 1.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.
Files changed (164) hide show
  1. package/README.md +100 -0
  2. package/builder/index.cjs +1431 -0
  3. package/builder/index.cjs.map +1 -0
  4. package/builder/index.d.cts +259 -0
  5. package/{dist/builder/pipe-api.d.ts → builder/index.d.ts} +49 -21
  6. package/builder/index.js +1390 -0
  7. package/builder/index.js.map +1 -0
  8. package/index.cjs +3419 -0
  9. package/index.cjs.map +1 -0
  10. package/index.d.cts +523 -0
  11. package/index.d.ts +523 -0
  12. package/index.js +3242 -0
  13. package/index.js.map +1 -0
  14. package/package.json +19 -28
  15. package/schema-builder-Cvdq7Kz_.d.cts +963 -0
  16. package/schema-builder-Cvdq7Kz_.d.ts +963 -0
  17. package/server/index.cjs +1555 -0
  18. package/server/index.cjs.map +1 -0
  19. package/server/index.d.cts +680 -0
  20. package/server/index.d.ts +680 -0
  21. package/server/index.js +1524 -0
  22. package/server/index.js.map +1 -0
  23. package/dist/analyzer-extension.d.ts +0 -105
  24. package/dist/analyzer-extension.d.ts.map +0 -1
  25. package/dist/analyzer-extension.js +0 -137
  26. package/dist/analyzer-extension.js.map +0 -1
  27. package/dist/builder/execute.d.ts +0 -26
  28. package/dist/builder/execute.d.ts.map +0 -1
  29. package/dist/builder/execute.js +0 -104
  30. package/dist/builder/execute.js.map +0 -1
  31. package/dist/builder/field-builders.d.ts +0 -30
  32. package/dist/builder/field-builders.d.ts.map +0 -1
  33. package/dist/builder/field-builders.js +0 -200
  34. package/dist/builder/field-builders.js.map +0 -1
  35. package/dist/builder/index.d.ts +0 -7
  36. package/dist/builder/index.d.ts.map +0 -1
  37. package/dist/builder/index.js +0 -31
  38. package/dist/builder/index.js.map +0 -1
  39. package/dist/builder/pipe-api.d.ts.map +0 -1
  40. package/dist/builder/pipe-api.js +0 -151
  41. package/dist/builder/pipe-api.js.map +0 -1
  42. package/dist/builder/schema-builder.d.ts +0 -301
  43. package/dist/builder/schema-builder.d.ts.map +0 -1
  44. package/dist/builder/schema-builder.js +0 -566
  45. package/dist/builder/schema-builder.js.map +0 -1
  46. package/dist/builder/type-registry.d.ts +0 -80
  47. package/dist/builder/type-registry.d.ts.map +0 -1
  48. package/dist/builder/type-registry.js +0 -505
  49. package/dist/builder/type-registry.js.map +0 -1
  50. package/dist/builder/types.d.ts +0 -283
  51. package/dist/builder/types.d.ts.map +0 -1
  52. package/dist/builder/types.js +0 -3
  53. package/dist/builder/types.js.map +0 -1
  54. package/dist/cli/generate-schema.d.ts +0 -29
  55. package/dist/cli/generate-schema.d.ts.map +0 -1
  56. package/dist/cli/generate-schema.js +0 -233
  57. package/dist/cli/generate-schema.js.map +0 -1
  58. package/dist/cli/index.d.ts +0 -19
  59. package/dist/cli/index.d.ts.map +0 -1
  60. package/dist/cli/index.js +0 -24
  61. package/dist/cli/index.js.map +0 -1
  62. package/dist/context.d.ts +0 -18
  63. package/dist/context.d.ts.map +0 -1
  64. package/dist/context.js +0 -11
  65. package/dist/context.js.map +0 -1
  66. package/dist/error.d.ts +0 -45
  67. package/dist/error.d.ts.map +0 -1
  68. package/dist/error.js +0 -29
  69. package/dist/error.js.map +0 -1
  70. package/dist/extensions.d.ts +0 -130
  71. package/dist/extensions.d.ts.map +0 -1
  72. package/dist/extensions.js +0 -78
  73. package/dist/extensions.js.map +0 -1
  74. package/dist/index.d.ts +0 -12
  75. package/dist/index.d.ts.map +0 -1
  76. package/dist/index.js +0 -47
  77. package/dist/index.js.map +0 -1
  78. package/dist/loader.d.ts +0 -169
  79. package/dist/loader.d.ts.map +0 -1
  80. package/dist/loader.js +0 -237
  81. package/dist/loader.js.map +0 -1
  82. package/dist/resolver-context.d.ts +0 -154
  83. package/dist/resolver-context.d.ts.map +0 -1
  84. package/dist/resolver-context.js +0 -184
  85. package/dist/resolver-context.js.map +0 -1
  86. package/dist/schema-mapping.d.ts +0 -30
  87. package/dist/schema-mapping.d.ts.map +0 -1
  88. package/dist/schema-mapping.js +0 -280
  89. package/dist/schema-mapping.js.map +0 -1
  90. package/dist/server/cache-control.d.ts +0 -96
  91. package/dist/server/cache-control.d.ts.map +0 -1
  92. package/dist/server/cache-control.js +0 -308
  93. package/dist/server/cache-control.js.map +0 -1
  94. package/dist/server/complexity.d.ts +0 -165
  95. package/dist/server/complexity.d.ts.map +0 -1
  96. package/dist/server/complexity.js +0 -433
  97. package/dist/server/complexity.js.map +0 -1
  98. package/dist/server/config.d.ts +0 -66
  99. package/dist/server/config.d.ts.map +0 -1
  100. package/dist/server/config.js +0 -104
  101. package/dist/server/config.js.map +0 -1
  102. package/dist/server/graphiql.d.ts +0 -5
  103. package/dist/server/graphiql.d.ts.map +0 -1
  104. package/dist/server/graphiql.js +0 -43
  105. package/dist/server/graphiql.js.map +0 -1
  106. package/dist/server/index.d.ts +0 -18
  107. package/dist/server/index.d.ts.map +0 -1
  108. package/dist/server/index.js +0 -48
  109. package/dist/server/index.js.map +0 -1
  110. package/dist/server/router.d.ts +0 -79
  111. package/dist/server/router.d.ts.map +0 -1
  112. package/dist/server/router.js +0 -232
  113. package/dist/server/router.js.map +0 -1
  114. package/dist/server/schema-builder-extensions.d.ts +0 -42
  115. package/dist/server/schema-builder-extensions.d.ts.map +0 -1
  116. package/dist/server/schema-builder-extensions.js +0 -48
  117. package/dist/server/schema-builder-extensions.js.map +0 -1
  118. package/dist/server/sse-adapter.d.ts +0 -64
  119. package/dist/server/sse-adapter.d.ts.map +0 -1
  120. package/dist/server/sse-adapter.js +0 -227
  121. package/dist/server/sse-adapter.js.map +0 -1
  122. package/dist/server/sse-types.d.ts +0 -192
  123. package/dist/server/sse-types.d.ts.map +0 -1
  124. package/dist/server/sse-types.js +0 -63
  125. package/dist/server/sse-types.js.map +0 -1
  126. package/dist/server/ws-adapter.d.ts +0 -39
  127. package/dist/server/ws-adapter.d.ts.map +0 -1
  128. package/dist/server/ws-adapter.js +0 -247
  129. package/dist/server/ws-adapter.js.map +0 -1
  130. package/dist/server/ws-types.d.ts +0 -169
  131. package/dist/server/ws-types.d.ts.map +0 -1
  132. package/dist/server/ws-types.js +0 -11
  133. package/dist/server/ws-types.js.map +0 -1
  134. package/dist/server/ws-utils.d.ts +0 -42
  135. package/dist/server/ws-utils.d.ts.map +0 -1
  136. package/dist/server/ws-utils.js +0 -99
  137. package/dist/server/ws-utils.js.map +0 -1
  138. package/src/analyzer-extension.ts +0 -254
  139. package/src/builder/execute.ts +0 -153
  140. package/src/builder/field-builders.ts +0 -322
  141. package/src/builder/index.ts +0 -48
  142. package/src/builder/pipe-api.ts +0 -312
  143. package/src/builder/schema-builder.ts +0 -970
  144. package/src/builder/type-registry.ts +0 -670
  145. package/src/builder/types.ts +0 -305
  146. package/src/context.ts +0 -23
  147. package/src/error.ts +0 -32
  148. package/src/extensions.ts +0 -240
  149. package/src/index.ts +0 -32
  150. package/src/loader.ts +0 -363
  151. package/src/resolver-context.ts +0 -253
  152. package/src/schema-mapping.ts +0 -307
  153. package/src/server/cache-control.ts +0 -590
  154. package/src/server/complexity.ts +0 -774
  155. package/src/server/config.ts +0 -174
  156. package/src/server/graphiql.ts +0 -38
  157. package/src/server/index.ts +0 -96
  158. package/src/server/router.ts +0 -432
  159. package/src/server/schema-builder-extensions.ts +0 -51
  160. package/src/server/sse-adapter.ts +0 -327
  161. package/src/server/sse-types.ts +0 -234
  162. package/src/server/ws-adapter.ts +0 -355
  163. package/src/server/ws-types.ts +0 -192
  164. package/src/server/ws-utils.ts +0 -136
@@ -1,151 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.compose = exports.field = exports.subscription = exports.mutation = exports.query = exports.extension = exports.middleware = exports.directive = exports.inputType = exports.unionType = exports.enumType = exports.interfaceType = exports.objectType = void 0;
4
- /**
5
- * Add an object type to the schema builder (pipe-able)
6
- * Name is optional if schema is TaggedStruct, TaggedClass, or Schema.Class
7
- */
8
- const objectType = (config) => (builder) => builder.objectType(config);
9
- exports.objectType = objectType;
10
- /**
11
- * Add an interface type to the schema builder (pipe-able)
12
- * Name is optional if schema is TaggedStruct, TaggedClass, or Schema.Class
13
- */
14
- const interfaceType = (config) => (builder) => builder.interfaceType(config);
15
- exports.interfaceType = interfaceType;
16
- /**
17
- * Add an enum type to the schema builder (pipe-able)
18
- */
19
- const enumType = (config) => (builder) => builder.enumType(config);
20
- exports.enumType = enumType;
21
- /**
22
- * Add a union type to the schema builder (pipe-able)
23
- */
24
- const unionType = (config) => (builder) => builder.unionType(config);
25
- exports.unionType = unionType;
26
- /**
27
- * Add an input type to the schema builder (pipe-able)
28
- * Name is optional if schema is TaggedStruct, TaggedClass, or Schema.Class
29
- */
30
- const inputType = (config) => (builder) => builder.inputType(config);
31
- exports.inputType = inputType;
32
- /**
33
- * Register a directive (pipe-able)
34
- *
35
- * @param config - Directive configuration
36
- * @param config.name - The directive name (without @)
37
- * @param config.description - Optional description
38
- * @param config.locations - Array of DirectiveLocation values where this directive can be applied
39
- * @param config.args - Optional Effect Schema for directive arguments
40
- * @param config.apply - Optional function to transform resolver Effects (for executable directives)
41
- */
42
- const directive = (config) => (builder) => builder.directive(config);
43
- exports.directive = directive;
44
- /**
45
- * Register a middleware (pipe-able)
46
- *
47
- * Middleware wraps all resolvers (or those matching a pattern) and executes
48
- * in an "onion" model - first registered middleware is the outermost layer.
49
- *
50
- * @param config.name - Middleware name (for debugging/logging)
51
- * @param config.description - Optional description
52
- * @param config.match - Optional predicate to filter which fields this applies to
53
- * @param config.apply - Function that transforms the resolver Effect
54
- *
55
- * @example
56
- * ```typescript
57
- * GraphQLSchemaBuilder.empty.pipe(
58
- * middleware({
59
- * name: "logging",
60
- * apply: (effect, ctx) => Effect.gen(function*() {
61
- * yield* Effect.logInfo(`Resolving ${ctx.info.fieldName}`)
62
- * return yield* effect
63
- * })
64
- * }),
65
- * middleware({
66
- * name: "adminOnly",
67
- * match: (info) => info.fieldName.startsWith("admin"),
68
- * apply: (effect) => Effect.gen(function*() {
69
- * const auth = yield* AuthService
70
- * yield* auth.requireAdmin()
71
- * return yield* effect
72
- * })
73
- * })
74
- * )
75
- * ```
76
- */
77
- const middleware = (config) => (builder) => builder.middleware(config);
78
- exports.middleware = middleware;
79
- /**
80
- * Register an extension (pipe-able)
81
- *
82
- * Extensions provide lifecycle hooks that run at each phase of request processing
83
- * (parse, validate, execute) and can contribute data to the response's extensions field.
84
- *
85
- * @param config.name - Extension name (for debugging/logging)
86
- * @param config.description - Optional description
87
- * @param config.onParse - Called after query parsing
88
- * @param config.onValidate - Called after validation
89
- * @param config.onExecuteStart - Called before execution begins
90
- * @param config.onExecuteEnd - Called after execution completes
91
- *
92
- * @example
93
- * ```typescript
94
- * GraphQLSchemaBuilder.empty.pipe(
95
- * extension({
96
- * name: "tracing",
97
- * onExecuteStart: () => Effect.gen(function*() {
98
- * const ext = yield* ExtensionsService
99
- * yield* ext.set("tracing", { startTime: Date.now() })
100
- * }),
101
- * onExecuteEnd: () => Effect.gen(function*() {
102
- * const ext = yield* ExtensionsService
103
- * yield* ext.merge("tracing", { endTime: Date.now() })
104
- * }),
105
- * })
106
- * )
107
- * ```
108
- */
109
- const extension = (config) => (builder) => builder.extension(config);
110
- exports.extension = extension;
111
- /**
112
- * Add a query field to the schema builder (pipe-able)
113
- */
114
- const query = (name, config) => (builder) => builder.query(name, config);
115
- exports.query = query;
116
- /**
117
- * Add a mutation field to the schema builder (pipe-able)
118
- */
119
- const mutation = (name, config) => (builder) => builder.mutation(name, config);
120
- exports.mutation = mutation;
121
- /**
122
- * Add a subscription field to the schema builder (pipe-able)
123
- *
124
- * Subscriptions return a Stream that yields values over time.
125
- *
126
- * @example
127
- * ```typescript
128
- * GraphQLSchemaBuilder.empty.pipe(
129
- * subscription("userCreated", {
130
- * type: User,
131
- * subscribe: Effect.gen(function*() {
132
- * const pubsub = yield* PubSubService
133
- * return pubsub.subscribe("USER_CREATED")
134
- * }),
135
- * })
136
- * )
137
- * ```
138
- */
139
- const subscription = (name, config) => (builder) => builder.subscription(name, config);
140
- exports.subscription = subscription;
141
- /**
142
- * Add a field to an existing object type (pipe-able)
143
- */
144
- const field = (typeName, fieldName, config) => (builder) => builder.field(typeName, fieldName, config);
145
- exports.field = field;
146
- /**
147
- * Compose multiple schema operations (helper for arrays)
148
- */
149
- const compose = (...operations) => (builder) => operations.reduce((b, op) => op(b), builder);
150
- exports.compose = compose;
151
- //# sourceMappingURL=pipe-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipe-api.js","sourceRoot":"","sources":["../../src/builder/pipe-api.ts"],"names":[],"mappings":"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"}
@@ -1,301 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-builder.d.ts","sourceRoot":"","sources":["../../src/builder/schema-builder.ts"],"names":[],"mappings":"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"}