Skip to content

Commit dd08c2e

Browse files
authored
refactor: fluent to chain module (#1239)
1 parent ed696db commit dd08c2e

File tree

53 files changed

+596
-564
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+596
-564
lines changed

examples/10_transport-http/transport-http_abort.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ const graffle = Graffle.create({
1212
schema: publicGraphQLSchemaEndpoints.Pokemon,
1313
})
1414

15+
graffle
16+
1517
const resultPromise = graffle
1618
.with({ transport: { signal: abortController.signal } })
1719
// ^^^^^^^^^^^^^^^

src/documentBuilder/InferResult/Alias.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { mergeObjectArray, ValuesOrEmptyObject } from '../../lib/prelude.js'
1+
import type { mergeArrayOfObjects, ValuesOrEmptyObject } from '../../lib/prelude.js'
22
import type { Schema } from '../../types/Schema/__.js'
33
import type { Select } from '../Select/__.js'
44
import type { OutputField } from './OutputField.js'
@@ -42,7 +42,7 @@ type InferSelectAliasMultiple<
4242
$FieldName extends string,
4343
$Schema extends Schema,
4444
$Node extends Schema.OutputObject,
45-
> = mergeObjectArray<
45+
> = mergeArrayOfObjects<
4646
{
4747
[_ in keyof $SelectAliasMultiple]: InferSelectAliasOne<$SelectAliasMultiple[_], $FieldName, $Schema, $Node>
4848
}

src/entrypoints/utilities-for-generated.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
export { type Simplify } from 'type-fest'
22
export * from '../documentBuilder/Select/__.js'
3-
export { type ClientContext } from '../layers/6_client/fluent.js'
3+
export { type Context } from '../layers/6_client/context.js'
44
export type {
55
ConfigGetOutputError,
66
HandleOutput,

src/extensions/Introspection/Introspection.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { getIntrospectionQuery, type IntrospectionQuery } from 'graphql'
22
import type { Extension, SimplifyNullable } from '../../entrypoints/main.js'
3+
import type { Context } from '../../layers/6_client/context.js'
34
import { createExtension } from '../../layers/6_client/extension/extension.js'
4-
import type { FnParametersProperty } from '../../layers/6_client/fluent.js'
55
import type { HandleOutput } from '../../layers/6_client/handleOutput.js'
6-
import type { Fluent } from '../../lib/fluent/__.js'
6+
import type { Chain } from '../../lib/chain/__.js'
77
import { createConfig, type Input } from './config.js'
88

99
const knownPotentiallyUnsupportedFeatures = [`inputValueDeprecation`, `oneOf`] as const
@@ -65,14 +65,15 @@ export const Introspection = (input?: Input) => {
6565
}
6666

6767
type IntrospectionExtension = Extension<{
68-
property: IntrospectFn
68+
property: Introspect_
6969
}>
7070

71-
interface IntrospectFn extends Fluent.FnProperty<`introspect`> {
71+
interface Introspect_ extends Chain.Extension {
72+
context: Context
7273
// @ts-expect-error untyped params
7374
return: Introspect<this['params']>
7475
}
7576

76-
interface Introspect<$Args extends FnParametersProperty> {
77-
(): Promise<SimplifyNullable<HandleOutput<$Args['state']['context'], IntrospectionQuery>>>
77+
interface Introspect<$Args extends Chain.Extension.Parameters<Introspect_>> {
78+
introspect: () => Promise<SimplifyNullable<HandleOutput<$Args['context'], IntrospectionQuery>>>
7879
}

src/extensions/SchemaErrors/runtime.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -71,38 +71,38 @@ export const SchemaErrors = () => {
7171
}
7272

7373
type SchemaErrorsExtension = Extension<{
74-
onRequestDocumentRootType: OnRequestDocumentRootTypeFn
75-
onRequestResult: OnRequestResultFn
74+
onRequestDocumentRootType: OnRequestDocumentRootType_
75+
onRequestResult: OnRequestResult_
7676
}>
7777

7878
type OnRequestDocumentRootType<$Params extends Extension.Hooks.OnRequestDocumentRootType.Params> =
7979
$Params['selectionRootType']
8080

8181
// dprint-ignore
82-
interface OnRequestResult<$Params extends Extension.Hooks.OnRequestResult.Params<GeneratedExtensions>>
82+
interface OnRequestResult<$Arguments extends Extension.Hooks.OnRequestResult.Params<GeneratedExtensions>>
8383
{
8484
result: {
8585
data?:
8686
| null
8787
| {
88-
[$Key in keyof ExcludeNullAndUndefined<$Params['result']['data']>]:
88+
[$Key in keyof ExcludeNullAndUndefined<$Arguments['result']['data']>]:
8989
Exclude<
90-
ExcludeNullAndUndefined<$Params['result']['data']>[$Key],
91-
{ __typename: $Params['registeredSchema']['schema']['extensions']['SchemaErrors']['objectNames'] }
90+
ExcludeNullAndUndefined<$Arguments['result']['data']>[$Key],
91+
{ __typename: $Arguments['registeredSchema']['schema']['extensions']['SchemaErrors']['objectNames'] }
9292
>
9393
}
94-
} & Omit<$Params['result'], 'data'>
95-
registeredSchema: $Params['registeredSchema']
94+
} & Omit<$Arguments['result'], 'data'>
95+
registeredSchema: $Arguments['registeredSchema']
9696
}
9797

9898
// --------- Boilerplate Types ---------
9999

100-
interface OnRequestDocumentRootTypeFn extends Extension.Hooks.OnRequestDocumentRootType {
100+
interface OnRequestDocumentRootType_ extends Extension.Hooks.OnRequestDocumentRootType {
101101
// @ts-expect-error untyped params
102102
return: OnRequestDocumentRootType<this['params']>
103103
}
104104

105-
interface OnRequestResultFn extends Extension.Hooks.OnRequestResult {
105+
interface OnRequestResult_ extends Extension.Hooks.OnRequestResult {
106106
// @ts-expect-error untyped params
107107
return: OnRequestResult<this['params']>
108108
}

src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-document.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type * as $$Utilities from '../../../../../../entrypoints/utilities-for-g
22
import * as $$Schema from './schema.js'
33
import * as $$SelectionSets from './selection-sets.js'
44

5-
export interface Document<$Context extends $$Utilities.ClientContext> {
5+
export interface Document<$Context extends $$Utilities.Context> {
66
<$Document>(
77
document: $$Utilities.ExactNonEmpty<$Document, $$SelectionSets.$Document<$Context['scalars']>>,
88
): $$Utilities.DocumentRunner<

src/extensions/SchemaErrors/tests/fixture/graffle/modules/methods-root.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type * as $$Utilities from '../../../../../../entrypoints/utilities-for-g
33
import * as $$Schema from './schema.js'
44
import * as $$SelectionSets from './selection-sets.js'
55

6-
export interface QueryMethods<$Context extends $$Utilities.ClientContext> {
6+
export interface QueryMethods<$Context extends $$Utilities.Context> {
77
$batch: <$SelectionSet>(
88
selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query<$Context['scalars']>>,
99
) => Promise<
@@ -695,7 +695,7 @@ export interface QueryMethods<$Context extends $$Utilities.ClientContext> {
695695
>
696696
}
697697

698-
export interface MutationMethods<$Context extends $$Utilities.ClientContext> {
698+
export interface MutationMethods<$Context extends $$Utilities.Context> {
699699
$batch: <$SelectionSet>(
700700
selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Mutation<$Context['scalars']>>,
701701
) => Promise<
@@ -744,7 +744,7 @@ export interface MutationMethods<$Context extends $$Utilities.ClientContext> {
744744
>
745745
}
746746

747-
export interface BuilderMethodsRoot<$Context extends $$Utilities.ClientContext> {
747+
export interface BuilderMethodsRoot<$Context extends $$Utilities.Context> {
748748
query: QueryMethods<$Context>
749749
mutation: MutationMethods<$Context>
750750
}

src/extensions/Throws/Throws.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
import { type BuilderConfig, createExtension, type Extension, type WithInput } from '../../entrypoints/main.js'
22
import type { ConfigManager } from '../../lib/config-manager/__.js'
33
// todo: no deep imports, rethink these utilities and/or how they are exported from the graffle package.
4-
import type { IncrementWthNewConfig } from '../../layers/6_client/client.js'
5-
import type { FnParametersProperty } from '../../layers/6_client/fluent.js'
6-
import type { Fluent } from '../../lib/fluent/__.js'
4+
import type { Context } from '../../layers/6_client/context.js'
5+
import type { Chain } from '../../lib/chain/__.js'
76

87
export const Throws = () => {
98
return createExtension<ThrowsExtension>({
@@ -30,20 +29,21 @@ export const Throws = () => {
3029
}
3130

3231
type ThrowsExtension = Extension<{
33-
property: ThrowsFn
32+
property: Throws_
3433
}>
3534

36-
interface ThrowsFn extends Fluent.FnProperty<`throws`> {
35+
interface Throws_ extends Chain.Extension {
36+
context: Context
3737
// @ts-expect-error untyped params
3838
return: Throws<this['params']>
3939
}
4040

41-
interface Throws<$Args extends FnParametersProperty> {
41+
interface Throws<$Args extends Chain.Extension.Parameters<Throws_>> {
4242
/**
4343
* TODO
4444
*/
4545
// @ts-expect-error fixme
46-
(): IncrementWthNewConfig<$Args, ThrowsifyConfig<$Args['state']['context']['config']>>
46+
throws: () => IncrementWthNewConfig<$Args, ThrowsifyConfig<$Args['context']['config']>>
4747
}
4848

4949
type ThrowsifyConfig<$BuilderConfig extends BuilderConfig> = ConfigManager.Set<

src/extensions/Upload/Upload.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ import { Graffle } from '../../entrypoints/main.js'
77
import { Upload } from './Upload.js'
88

99
import { type SchemaService, serveSchema } from '../../../tests/_/lib/serveSchema.js'
10-
import type { ClientContext } from '../../entrypoints/utilities-for-generated.js'
10+
import type { Context } from '../../entrypoints/utilities-for-generated.js'
1111
import type { Client } from '../../layers/6_client/client.js'
1212

1313
let schemaServer: SchemaService
1414

15-
let graffle: Client<ClientContext>
15+
let graffle: Client<Context>
1616

1717
beforeAll(async () => {
1818
schemaServer = await serveSchema({ schema })

src/generator/generator/__snapshots__/generate.test.ts.snap

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ exports[`kitchen-sink generated modules > modules/methods-document.ts 1`] = `
134134
import * as $$Schema from './schema.js'
135135
import * as $$SelectionSets from './selection-sets.js'
136136

137-
export interface Document<$Context extends $$Utilities.ClientContext> {
137+
export interface Document<$Context extends $$Utilities.Context> {
138138
<$Document>(
139139
document: $$Utilities.ExactNonEmpty<$Document, $$SelectionSets.$Document<$Context['scalars']>>,
140140
): $$Utilities.DocumentRunner<
@@ -159,7 +159,7 @@ import type * as $$Utilities from '../../../../../../src/entrypoints/utilities-f
159159
import * as $$Schema from './schema.js'
160160
import * as $$SelectionSets from './selection-sets.js'
161161

162-
export interface QueryMethods<$Context extends $$Utilities.ClientContext> {
162+
export interface QueryMethods<$Context extends $$Utilities.Context> {
163163
$batch: <$SelectionSet>(
164164
selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Query<$Context['scalars']>>,
165165
) => Promise<
@@ -851,7 +851,7 @@ export interface QueryMethods<$Context extends $$Utilities.ClientContext> {
851851
>
852852
}
853853

854-
export interface MutationMethods<$Context extends $$Utilities.ClientContext> {
854+
export interface MutationMethods<$Context extends $$Utilities.Context> {
855855
$batch: <$SelectionSet>(
856856
selectionSet: $$Utilities.Exact<$SelectionSet, $$SelectionSets.Mutation<$Context['scalars']>>,
857857
) => Promise<
@@ -900,7 +900,7 @@ export interface MutationMethods<$Context extends $$Utilities.ClientContext> {
900900
>
901901
}
902902

903-
export interface BuilderMethodsRoot<$Context extends $$Utilities.ClientContext> {
903+
export interface BuilderMethodsRoot<$Context extends $$Utilities.Context> {
904904
query: QueryMethods<$Context>
905905
mutation: MutationMethods<$Context>
906906
}
@@ -7700,7 +7700,7 @@ import * as $$Schema from "./schema.js";
77007700
import type * as $$Utilities from "graffle/utilities-for-generated";
77017701
import type { InferResult } from "graffle/schema";
77027702

7703-
export interface QueryRootMethods<$Context extends $$Utilities.ClientContext> {
7703+
export interface QueryRootMethods<$Context extends $$Utilities.Context> {
77047704
$batch: <$SelectionSet>(
77057705
selectionSet: $$Utilities.Exact<
77067706
$SelectionSet,
@@ -7748,9 +7748,7 @@ export interface QueryRootMethods<$Context extends $$Utilities.ClientContext> {
77487748
>;
77497749
}
77507750

7751-
export interface BuilderMethodsRoot<
7752-
$Context extends $$Utilities.ClientContext,
7753-
> {
7751+
export interface BuilderMethodsRoot<$Context extends $$Utilities.Context> {
77547752
undefined: QueryRootMethods<$Context>;
77557753
}
77567754

0 commit comments

Comments
 (0)