@fougere/adapter-graphql 0.6.0-alpha.0 → 0.7.0-alpha.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/dist/pothos.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { upperFirst, Role } from '@fougere/schema';
2
- import { Anatomy, Schema } from '@fougere/schema';
3
- import { Boundary, Card, Lifecycle, schemaOf, Visibility } from '@fougere/schema';
2
+ import { Shapes, Schema } from '@fougere/schema';
3
+ import { Boundary, Card, Lifecycle, Visibility } from '@fougere/schema';
4
4
  function operationIsQuery(name, resolved) {
5
5
  if (!resolved) {
6
6
  throw new Error(`GraphQL cannot project '${name}' without its resolved operation kind. `
@@ -16,19 +16,13 @@ const PRIMITIVES = {
16
16
  number: (t, r) => t.arg.int({ required: r }),
17
17
  boolean: (t, r) => t.arg.boolean({ required: r }),
18
18
  };
19
- /**
20
- * Parameter types no GraphQL argument stands for. `ListOptions` is NOT one of
21
- * them: it has its own branch below that turns it into the six pagination
22
- * arguments. Listing it here classified it first — the skip branch runs before
23
- * the pagination one — so `kind: 'pagination'` was never assigned and every
24
- * `list(options?: ListOptions)` op reached GraphQL with no arguments at all.
25
- */
19
+ /** Parameter types no GraphQL argument stands for. */
26
20
  const SKIP_TYPES = new Set(['InvocationContext']);
27
21
  // ─── Helpers ───────────────────────────────────────
28
22
  function fieldToGraphQL(t, field, fieldName, enumFor) {
29
23
  // Dispatch on the BASE type via anatomy — `shape.type` may be the nullable
30
24
  // `[T,'null']` union, a direct comparison would fail silently on it.
31
- const { base: shape, nullable } = Anatomy.of(field.shape);
25
+ const { base: shape, nullable } = Shapes.of(field.shape);
32
26
  // Before the type switch: a bounded set is its own GraphQL type whatever its base type
33
27
  // carries. `oneOf` fed the form's `select` and the DDL's `CHECK` from the day it was
34
28
  // written; here it fell through to `String`, so a schema explorer showed nothing of the
@@ -67,7 +61,7 @@ function fieldToGraphQL(t, field, fieldName, enumFor) {
67
61
  case 'array': {
68
62
  // A value list (`list(text())`) becomes a GraphQL list of the item scalar; a list
69
63
  // of objects becomes a list of JSON strings — the same rule 'object' follows.
70
- const items = Anatomy.of(shape.items).base;
64
+ const items = Shapes.of(shape.items).base;
71
65
  const resolve = (parent) => parent[fieldName] ?? (nullable ? null : []);
72
66
  switch (items?.type) {
73
67
  case 'integer': return t.intList({ nullable, resolve });
@@ -105,14 +99,7 @@ function fieldToGraphQL(t, field, fieldName, enumFor) {
105
99
  : t.exposeString(fieldName);
106
100
  }
107
101
  }
108
- /**
109
- * A JSON-Schema object shape, turned into a GraphQL input type.
110
- *
111
- * `list(json(OrderLine))` inlines the line's shape as nested `properties` — good enough for
112
- * the judge, invisible to GraphQL until now: the `array` case fell through to `stringList`,
113
- * so `items` reached the schema as `[String!]!` and a client had to hand-encode every line
114
- * as JSON. The mutation was unusable (measured 2026-08-02).
115
- */
102
+ /** A JSON-Schema object shape, turned into a GraphQL input type. */
116
103
  function nestedInputType(builder, shape, name) {
117
104
  let perBuilder = nestedInputs.get(builder);
118
105
  if (!perBuilder)
@@ -128,7 +115,7 @@ function nestedInputType(builder, shape, name) {
128
115
  const out = {};
129
116
  for (const [key, prop] of Object.entries(properties)) {
130
117
  const isRequired = required.has(key);
131
- switch (Anatomy.of(prop).base?.type) {
118
+ switch (Shapes.of(prop).base?.type) {
132
119
  case 'integer':
133
120
  out[key] = t.int({ required: isRequired });
134
121
  break;
@@ -150,17 +137,16 @@ function nestedInputType(builder, shape, name) {
150
137
  return type;
151
138
  }
152
139
  /**
153
- * One input type per name, PER BUILDER — Pothos refuses a duplicate name, and a ref built on
154
- * one builder is unknown to the next: a global cache handed a stale ref to the second schema
155
- * ("InputObjectRef has not been implemented"). The builder owns its types, so it owns the map.
140
+ * One input type per name, PER BUILDER — Pothos refuses a duplicate name, and a ref built on one
141
+ * builder is unknown to the next: a global cache handed a stale ref to the second schema
142
+ * ("InputObjectRef has not been implemented").
156
143
  */
157
144
  const nestedInputs = new WeakMap();
158
145
  /** Same rule as {@link nestedInputs}, for the enum types — with the values, see below. */
159
146
  const enumTypes = new WeakMap();
160
147
  /**
161
- * A GraphQL enum value is an IDENTIFIER, not a string: `in-progress` or `à valider` cannot
162
- * be spelled in a query. `oneOf` is a JSON Schema keyword and accepts any string, so a set
163
- * that will not fit stays a `String` — the judge still refuses what is not in it.
148
+ * A GraphQL enum value is an IDENTIFIER, not a string: `in-progress` or `à valider` cannot be
149
+ * spelled in a query.
164
150
  */
165
151
  const GRAPHQL_NAME = /^[_A-Za-z][_0-9A-Za-z]*$/;
166
152
  function enumValuesOf(shape) {
@@ -174,10 +160,6 @@ function enumValuesOf(shape) {
174
160
  /**
175
161
  * The enum type for one field's value set — one per NAME per builder, so `Post.status` and
176
162
  * `CreatePostInput.status` are the same `PostStatus` and a value read can be written back.
177
- *
178
- * A second field claiming the name with a different set falls back to `String` rather than
179
- * being served the first one: two different sets under one name would let a client send a
180
- * value this field never declared, which is the opposite of what the enum is for.
181
163
  */
182
164
  function enumTypeFor(builder, name, values) {
183
165
  let perBuilder = enumTypes.get(builder);
@@ -200,7 +182,7 @@ function fieldToInput(t, field, patch, nested, enumFor) {
200
182
  // Required = the presence axis, projected onto GraphQL's single knob: the
201
183
  // caller must supply it (no `lifecycle.create` rule answers absence), null is
202
184
  // not legal, and the view is not in patch mode (a patch omits freely).
203
- const { base: shape, nullable } = Anatomy.of(field.shape);
185
+ const { base: shape, nullable } = Shapes.of(field.shape);
204
186
  const required = !patch && !nullable && Lifecycle.of(field).requiredAtCreate;
205
187
  // The dual of the output side, and it must be the SAME type: an input left as `String`
206
188
  // would refuse nothing the enum refuses, and a client could not hand back the value a
@@ -219,7 +201,7 @@ function fieldToInput(t, field, patch, nested, enumFor) {
219
201
  case 'boolean':
220
202
  return t.boolean({ required });
221
203
  case 'array': {
222
- const items = Anatomy.of(shape.items).base;
204
+ const items = Shapes.of(shape.items).base;
223
205
  switch (items?.type) {
224
206
  case 'integer': return t.intList({ required });
225
207
  case 'number': return t.floatList({ required });
@@ -247,21 +229,7 @@ const SCALARS = {
247
229
  function isScalar(type) {
248
230
  return typeof type === 'string' && type in SCALARS;
249
231
  }
250
- /**
251
- * Register a GraphQL object type from a declarative field map.
252
- *
253
- * Each field auto-resolves from `parent[key]` unless a custom `resolve` is provided.
254
- * Works for wrapper types, result types, or any structural type.
255
- *
256
- * ```ts
257
- * const PostList = registerObjectType(builder, 'PostList', {
258
- * items: { type: [PostType] },
259
- * total: { type: 'int', nullable: true, resolve: async (p) => lazyCount(p) },
260
- * hasMore: { type: 'boolean', nullable: true },
261
- * endCursor: { type: 'string', nullable: true },
262
- * });
263
- * ```
264
- */
232
+ /** Register a GraphQL object type from a declarative field map. */
265
233
  export function registerObjectType(builder, name, fieldDefs) {
266
234
  return builder.objectRef(name).implement({
267
235
  fields: (t) => {
@@ -303,26 +271,10 @@ export function registerObjectType(builder, name, fieldDefs) {
303
271
  });
304
272
  }
305
273
  // ─── Public API ────────────────────────────────────
306
- /**
307
- * Enregistre un type GraphQL (lecture) depuis une entité fougere.
308
- *
309
- * ```ts
310
- * const ProductType = registerType(builder, {
311
- * name: 'Product',
312
- * entity: Product,
313
- * exclude: ['categoryId'],
314
- * relations: {
315
- * category: {
316
- * type: CategoryType,
317
- * resolve: (parent) => db.select()...
318
- * },
319
- * },
320
- * });
321
- * ```
322
- */
274
+ /** Enregistre un type GraphQL (lecture) depuis une entité fougere. */
323
275
  export function registerType(builder, config) {
324
276
  // A live class or a card — an adapter needs the fields, never the constructor.
325
- const schema = schemaOf(config.entity);
277
+ const schema = config.entity;
326
278
  const fields = schema.getFields();
327
279
  const exclude = new Set(config.exclude ?? []);
328
280
  // Who owns the enum names: the schema a view came from, so `PostCard.status` and
@@ -444,26 +396,7 @@ export function registerType(builder, config) {
444
396
  },
445
397
  });
446
398
  }
447
- /**
448
- * The GraphQL input for EXACTLY this view — or none, when the view asks for nothing.
449
- *
450
- * The caller derives the view and this projects it; it holds no policy of its own. What
451
- * a client may supply at CREATION is `Visibility.input`, which the op path applies for
452
- * create/update alone — `publish(input: Post)` must still name the post.
453
- *
454
- * Two things are dropped here because GraphQL cannot carry them, not because of any
455
- * rule: a collection has no column to send, and `boundary in: 'closed'` is refused from
456
- * every client. A view left with nothing after that gets `undefined` rather than an
457
- * input object with zero fields, which is invalid GraphQL and takes the WHOLE schema
458
- * down — every other type included.
459
- *
460
- * ```ts
461
- * const CreateProductInput = registerInput(builder, {
462
- * name: 'CreateProductInput',
463
- * schema: CreateProduct,
464
- * });
465
- * ```
466
- */
399
+ /** The GraphQL input for EXACTLY this view — or none, when the view asks for nothing. */
467
400
  export function registerInput(builder, config) {
468
401
  const fields = Object.fromEntries(Object.entries(config.schema.getFields())
469
402
  .filter(([, field]) => !Role.of(field).isCollection && !Boundary.of(field).readOnly));
@@ -489,27 +422,15 @@ export function registerInput(builder, config) {
489
422
  });
490
423
  }
491
424
  // ─── GraphQL field naming ────────────────────────
492
- /**
493
- * Who holds each root field — a GraphQL root is FLAT, and two ops can want one name.
494
- *
495
- * Refused here rather than left to Pothos: it answers `Duplicate field ofBook on
496
- * Mutation` with no file, no handler and no remedy, and it takes the whole schema down
497
- * — every other type included. The five CRUD names weave the entity in (`createBook`),
498
- * so they never meet this; a custom op keeps its method name, which is the author's and
499
- * says nothing about its subject. Four handlers named `ofBook` in one measured app.
500
- *
501
- * Nothing is renamed automatically: `chapterOfBook` would be this package's choice of
502
- * the app's public vocabulary, and adding an entity in some other frond would silently
503
- * rename a field already published.
504
- */
425
+ /** Who holds each root field — a GraphQL root is FLAT, and two ops can want one name. */
505
426
  const claimed = new WeakMap();
506
427
  function claimRootField(builder, fieldName, origin) {
507
- let held = claimed.get(builder);
508
- if (!held) {
509
- held = new Map();
510
- claimed.set(builder, held);
428
+ let perField = claimed.get(builder);
429
+ if (!perField) {
430
+ perField = new Map();
431
+ claimed.set(builder, perField);
511
432
  }
512
- const first = held.get(fieldName);
433
+ const first = perField.get(fieldName);
513
434
  if (first !== undefined && first !== origin) {
514
435
  const opName = origin.split('.').pop();
515
436
  // `operations:` is keyed by op name PER FROND, so it cannot tell two handlers of the
@@ -523,7 +444,7 @@ function claimRootField(builder, fieldName, origin) {
523
444
  + ` ${first}\n ${origin}\n`
524
445
  + `A root field is global, so one of them has to give. ${remedy}`);
525
446
  }
526
- held.set(fieldName, origin);
447
+ perField.set(fieldName, origin);
527
448
  }
528
449
  function graphqlFieldName(opName, entityName) {
529
450
  const nameLower = entityName.charAt(0).toLowerCase() + entityName.slice(1);
@@ -561,8 +482,8 @@ function buildArgsFromSignature(sig, meta, builder, opName, entityName) {
561
482
  case 'param':
562
483
  paramPlan.push({ name: param.name, kind: 'primitive', typeName, optional: binding.optional, nullable: param.type.nullable === true });
563
484
  continue;
564
- case 'body':
565
- paramPlan.push({ name: param.name, kind: 'body', typeName, optional: binding.optional, nullable: param.type.nullable === true });
485
+ case 'input':
486
+ paramPlan.push({ name: param.name, kind: 'input', typeName, optional: binding.optional, nullable: param.type.nullable === true });
566
487
  continue;
567
488
  }
568
489
  }
@@ -579,13 +500,13 @@ function buildArgsFromSignature(sig, meta, builder, opName, entityName) {
579
500
  paramPlan.push({ name: param.name, kind: 'primitive', typeName, optional: param.optional ?? false, nullable: param.type.nullable === true });
580
501
  continue;
581
502
  }
582
- // Object/entity param → body
583
- paramPlan.push({ name: param.name, kind: 'body', typeName, optional: param.optional ?? false, nullable: param.type.nullable === true });
503
+ // Object/entity param → input
504
+ paramPlan.push({ name: param.name, kind: 'input', typeName, optional: param.optional ?? false, nullable: param.type.nullable === true });
584
505
  }
585
506
  // Register input type if needed
586
507
  let inputRef;
587
- const bodyParam = paramPlan.find((p) => p.kind === 'body');
588
- if (bodyParam && meta.input) {
508
+ const inputParam = paramPlan.find((p) => p.kind === 'input');
509
+ if (inputParam && meta.input) {
589
510
  // Only strip non-client fields for create/update — other ops may legitimately use them (e.g. publish(id))
590
511
  const isMutation = opName === 'create' || opName === 'update';
591
512
  const opInputFields = isMutation ? Visibility.of(meta.input.getFields()).input : meta.input.getFields();
@@ -610,8 +531,8 @@ function buildArgsFromSignature(sig, meta, builder, opName, entityName) {
610
531
  args[p.name] = PRIMITIVES[p.typeName](t, !p.optional && !p.nullable);
611
532
  }
612
533
  }
613
- if (bodyParam && inputRef) {
614
- args.input = t.arg({ type: inputRef, required: !bodyParam.optional && !bodyParam.nullable });
534
+ if (inputParam && inputRef) {
535
+ args.input = t.arg({ type: inputRef, required: !inputParam.optional && !inputParam.nullable });
615
536
  }
616
537
  if (hasPagination) {
617
538
  args.limit = t.arg.int();
@@ -625,7 +546,7 @@ function buildArgsFromSignature(sig, meta, builder, opName, entityName) {
625
546
  };
626
547
  const buildInvocation = (args, gqlCtx) => {
627
548
  const params = {};
628
- let body = undefined;
549
+ let input = undefined;
629
550
  for (const p of paramPlan) {
630
551
  if (p.kind === 'primitive') {
631
552
  // graphql-js omits an omitted optional argument and keeps an explicitly supplied
@@ -634,20 +555,20 @@ function buildArgsFromSignature(sig, meta, builder, opName, entityName) {
634
555
  if (args[p.name] !== undefined)
635
556
  params[p.name] = args[p.name];
636
557
  }
637
- else if (p.kind === 'body') {
638
- body = args.input;
558
+ else if (p.kind === 'input') {
559
+ input = args.input;
639
560
  }
640
561
  else if (p.kind === 'pagination') {
641
- // Collect pagination args into body (ListOptions)
562
+ // Collect pagination args into input (ListOptions)
642
563
  const options = {};
643
564
  for (const key of ['limit', 'offset', 'page', 'after', 'orderBy', 'order']) {
644
565
  if (args[key] !== undefined)
645
566
  options[key] = args[key];
646
567
  }
647
- body = options;
568
+ input = options;
648
569
  }
649
570
  }
650
- return { params, query: {}, body, state: gqlCtx?.state ?? {} };
571
+ return { params, query: {}, input, state: gqlCtx?.state ?? {} };
651
572
  };
652
573
  return { argsDef, buildInvocation };
653
574
  }
@@ -662,17 +583,7 @@ function resolveOutputType(sig, config, meta, opName) {
662
583
  if (rt?.name === 'ListResult') {
663
584
  return { type: 'list-wrapper', isList: true, nullable: false };
664
585
  }
665
- /**
666
- * The type the operation SAYS it returns.
667
- *
668
- * `async stats(): Promise<StatsOutput[]>` is a declaration, and the scan already
669
- * resolved it into a live schema class. Until now this threw it away and announced the
670
- * entity's type instead, so a schema built from a handler with such an op was simply
671
- * wrong: its own fields were not queryable, and the entity's came back null.
672
- *
673
- * Falls back to the entity when nothing is declared, or when what is declared IS the
674
- * entity — `publish(): Promise<Post>` must not mint a second Post type.
675
- */
586
+ /** The type the operation SAYS it returns. */
676
587
  const declared = meta?.output && opName && config.viewType
677
588
  ? config.viewType(meta.output, opName)
678
589
  : undefined;
@@ -683,19 +594,7 @@ function resolveOutputType(sig, config, meta, opName) {
683
594
  return { type, isList: false, nullable: rt?.nullable === true || rt?.undefined === true };
684
595
  }
685
596
  // ─── registerOperations ──────────────────────────
686
- /**
687
- * Register all GraphQL operations for an entity from parsed handler signatures.
688
- *
689
- * Each operation in the map is registered as a Query or Mutation field
690
- * based on naming convention (list*, find*, get*, search* → Query, else → Mutation).
691
- *
692
- * Args are generated from the parsed method signature:
693
- * - Primitives (string, number) → scalar args
694
- * - Entity/object params → input types (derived from meta.input)
695
- * - Partial<T> wrapper → all input fields nullable
696
- * - ListOptions → standard pagination args
697
- * - InvocationContext → skipped (injected by resolver)
698
- */
597
+ /** Register all GraphQL operations for an entity from parsed handler signatures. */
699
598
  export function registerOperations(builder, config) {
700
599
  // Pre-register list wrapper type if list op exists
701
600
  let listWrapperType;
@@ -752,7 +651,7 @@ export function registerOperations(builder, config) {
752
651
  hasMore: result?.hasMore,
753
652
  _count: () => config.facade[opName]({
754
653
  ...invocation,
755
- body: { ...(invocation.body ?? {}), count: true, limit: 1 },
654
+ input: { ...(invocation.input ?? {}), count: true, limit: 1 },
756
655
  }),
757
656
  };
758
657
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pothos.js","sourceRoot":"","sources":["../src/pothos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pothos.js","sourceRoot":"","sources":["../src/pothos.ts"],"names":[],"mappings":"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"}
package/dist/serve.d.ts CHANGED
@@ -1,9 +1,4 @@
1
- /**
2
- * Serve a GraphQL schema on an HttpRouter — no Apollo, no Yoga needed.
3
- *
4
- * Uses the `graphql` package directly for execution.
5
- * GraphiQL is available as an explicit opt-in for trusted development environments.
6
- */
1
+ /** Serve a GraphQL schema on an HttpRouter — no Apollo, no Yoga needed. */
7
2
  import type { HttpRouter } from '@fougere/http';
8
3
  import { type GraphQLSchema } from 'graphql';
9
4
  export interface GraphQLServeOptions {
@@ -12,18 +7,6 @@ export interface GraphQLServeOptions {
12
7
  /** Enable GraphiQL playground on GET requests from browsers. Default: false. */
13
8
  playground?: boolean;
14
9
  }
15
- /**
16
- * Register a GraphQL endpoint on an HttpRouter.
17
- *
18
- * - POST: execute queries/mutations
19
- * - GET with `query` param: execute queries
20
- * - GET from browser (no `query` param): serve GraphiQL only with `playground: true`
21
- *
22
- * ```ts
23
- * import { registerGraphQL } from '@fougere/adapter-graphql'
24
- *
25
- * registerGraphQL(router, schema, { playground: process.env.NODE_ENV === 'development' })
26
- * ```
27
- */
10
+ /** Register a GraphQL endpoint on an HttpRouter. */
28
11
  export declare function registerGraphQL(router: HttpRouter, schema: GraphQLSchema, options?: GraphQLServeOptions): void;
29
12
  //# sourceMappingURL=serve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgCD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CAsEN"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAC;AAChE,OAAO,EAAmC,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9E,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAgCD,oDAAoD;AACpD,wBAAgB,eAAe,CAC7B,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,IAAI,CAgEN"}
package/dist/serve.js CHANGED
@@ -21,29 +21,11 @@ function graphiqlHtml(path) {
21
21
  </body>
22
22
  </html>`;
23
23
  }
24
- /**
25
- * Register a GraphQL endpoint on an HttpRouter.
26
- *
27
- * - POST: execute queries/mutations
28
- * - GET with `query` param: execute queries
29
- * - GET from browser (no `query` param): serve GraphiQL only with `playground: true`
30
- *
31
- * ```ts
32
- * import { registerGraphQL } from '@fougere/adapter-graphql'
33
- *
34
- * registerGraphQL(router, schema, { playground: process.env.NODE_ENV === 'development' })
35
- * ```
36
- */
24
+ /** Register a GraphQL endpoint on an HttpRouter. */
37
25
  export function registerGraphQL(router, schema, options) {
38
26
  const path = options?.path ?? '/graphql';
39
27
  const playground = options?.playground ?? false;
40
- /**
41
- * The one place this file states what a GraphQL request answers.
42
- *
43
- * A GraphQL error is not an HTTP error — the transport succeeded and the errors ride
44
- * in the body — so every executed request is 200 whatever the resolvers said. The two
45
- * methods differ in where they READ the request, never in how they answer it.
46
- */
28
+ /** The one place this file states what a GraphQL request answers. */
47
29
  const answer = async (request) => ({
48
30
  status: 200,
49
31
  data: await graphql({
package/dist/serve.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../src/serve.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/adapter-graphql",
3
- "version": "0.6.0-alpha.0",
3
+ "version": "0.7.0-alpha.0",
4
4
  "description": "Entity → GraphQL types, inputs and CRUD, through Pothos.",
5
5
  "keywords": [
6
6
  "fougere",
@@ -34,8 +34,8 @@
34
34
  "src"
35
35
  ],
36
36
  "dependencies": {
37
- "@fougere/schema": "0.6.0-alpha.0",
38
- "@fougere/http": "0.6.0-alpha.0"
37
+ "@fougere/schema": "0.7.0-alpha.0",
38
+ "@fougere/http": "0.7.0-alpha.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@pothos/core": ">=4.0.0",
package/src/app.ts CHANGED
@@ -2,12 +2,7 @@ import SchemaBuilder from '@pothos/core';
2
2
  import { graphql, type ExecutionResult, type GraphQLSchema } from 'graphql';
3
3
  import { registerAll } from './auto-register.js';
4
4
 
5
- /**
6
- * What a GraphQL request carries, whatever host read it.
7
- *
8
- * The same shape a door hands in, so a host translates its own request once and this
9
- * package never learns what an HTTP framework is.
10
- */
5
+ /** What a GraphQL request carries, whatever host read it. */
11
6
  export interface AppQuery {
12
7
  query: string;
13
8
  variables?: Record<string, unknown>;
@@ -24,19 +19,7 @@ type AppLike = Parameters<typeof registerAll>[1];
24
19
  /** One executable schema per (app, audience) — building it walks every entity. */
25
20
  const schemas = new WeakMap<object, Map<string, GraphQLSchema>>();
26
21
 
27
- /**
28
- * The app's schema, derived and kept.
29
- *
30
- * Every line of the derivation is convention — a builder, the two root types, and the
31
- * entities the app already scanned — so nothing an app could usefully say differently.
32
- * Declaring `adapters: { graphql: true }` is the whole configuration.
33
- *
34
- * It lives HERE, beside Pothos, and not in the host package that used to hold it. The
35
- * separation had a cost no comment could pay: `graphql` guards its types with
36
- * `instanceOf`, so a schema built by one loaded copy is refused by another with *"from
37
- * another module or realm"*. Building and executing across a package boundary made two
38
- * copies possible; on this side of it there is one.
39
- */
22
+ /** The app's schema, derived and kept. */
40
23
  export function schemaOf(app: AppLike, surface?: string): GraphQLSchema {
41
24
  const perApp = schemas.get(app as object) ?? new Map<string, GraphQLSchema>();
42
25
  schemas.set(app as object, perApp);
@@ -55,13 +38,7 @@ export function schemaOf(app: AppLike, surface?: string): GraphQLSchema {
55
38
  return schema;
56
39
  }
57
40
 
58
- /**
59
- * Execute a query against the app's own operations.
60
- *
61
- * Returns the GraphQL result as it is: a GraphQL error is not a transport error, and the
62
- * errors ride in the body where a client is required to look for them. Turning that into
63
- * a status belongs to whichever door asked.
64
- */
41
+ /** Execute a query against the app's own operations. */
65
42
  export async function executeOn(app: AppLike, request: AppQuery): Promise<ExecutionResult> {
66
43
  return graphql({
67
44
  schema: schemaOf(app, request.surface),