Skip to content

Commit

Permalink
refactor: rename ext typehook
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonkuhrt committed Oct 31, 2024
1 parent b031e6c commit 6df957c
Show file tree
Hide file tree
Showing 4 changed files with 28 additions and 28 deletions.
2 changes: 1 addition & 1 deletion src/extensions/Introspection/Introspection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export const Introspection = (input?: Input) => {
}

type IntrospectionExtension = Extension<{
property: Introspect_
chainExtension: Introspect_
}>

interface Introspect_ extends Chain.Extension {
Expand Down
2 changes: 1 addition & 1 deletion src/extensions/Throws/Throws.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export const Throws = () => {
}

type ThrowsExtension = Extension<{
property: Throws_
chainExtension: Throws_
}>

interface Throws_ extends Chain.Extension {
Expand Down
48 changes: 24 additions & 24 deletions src/layers/6_client/extension/extension.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export interface TypeHooks {
/**
* Extend chaining interface with new methods.
*/
property?: Chain.Extension
chainExtension?: Chain.Extension
/**
* Manipulate the execution result of a request.
*
Expand Down Expand Up @@ -47,29 +47,7 @@ export interface EmptyTypeHooks {
onRequestDocumentRootType: undefined
}

export interface Extension<$TypeHooks extends TypeHooks = TypeHooks> extends Base, Fn {
typeHooks: $TypeHooks
}

export namespace Extension {
export namespace Hooks {
export interface OnRequestDocumentRootType extends Fn {}
export namespace OnRequestDocumentRootType {
export interface Params {
selectionRootType: Select.SelectionSet.RootType
}
}
export interface OnRequestResult extends Fn {}
export namespace OnRequestResult {
export interface Params<$Extensions extends GlobalRegistry.Extensions = GlobalRegistry.Extensions> {
result: GraffleExecutionResultEnvelope
registeredSchema: GlobalRegistry.Client<$Extensions>
}
}
}
}

interface Base {
export interface Extension<$TypeHooks extends TypeHooks = TypeHooks> extends Fn {
/**
* The name of the extension
*/
Expand Down Expand Up @@ -100,6 +78,28 @@ interface Base {
client: Client<Context>
},
) => unknown
/**
* TODO
*/
typeHooks: $TypeHooks
}

export namespace Extension {
export namespace Hooks {
export interface OnRequestDocumentRootType extends Fn {}
export namespace OnRequestDocumentRootType {
export interface Params {
selectionRootType: Select.SelectionSet.RootType
}
}
export interface OnRequestResult extends Fn {}
export namespace OnRequestResult {
export interface Params<$Extensions extends GlobalRegistry.Extensions = GlobalRegistry.Extensions> {
result: GraffleExecutionResultEnvelope
registeredSchema: GlobalRegistry.Client<$Extensions>
}
}
}
}

export const createExtension = <$Extension extends Extension = Extension<EmptyTypeHooks>>(
Expand Down
4 changes: 2 additions & 2 deletions src/layers/6_client/extension/use.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ export interface Use<$Args extends Chain.Extension.Parameters<Use_>> {
*/
use: <$Extension extends Extension>(extension: $Extension) => Chain.Definition.MaterializeWithNewContext<
(
$Extension['typeHooks']['property'] extends Chain.Extension
? Chain.Definition.Extend<$Args['chain'], $Extension['typeHooks']['property']>
$Extension['typeHooks']['chainExtension'] extends Chain.Extension
? Chain.Definition.Extend<$Args['chain'], $Extension['typeHooks']['chainExtension']>
: $Args['chain']
),
// If the extension adds type hooks, merge them into the config.
Expand Down

0 comments on commit 6df957c

Please sign in to comment.