From c7cc845d7684b78d86ccab63816bfea8156fee18 Mon Sep 17 00:00:00 2001 From: Aleksandr Bukhalo Date: Mon, 28 Mar 2022 19:26:29 +0300 Subject: [PATCH] fix: add ability to pass Internal and External types into Scalar (#381) --- src/ScalarTypeComposer.ts | 17 ++++++++++------- src/SchemaComposer.ts | 4 +++- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/ScalarTypeComposer.ts b/src/ScalarTypeComposer.ts index b0b494c..bc7c1e5 100644 --- a/src/ScalarTypeComposer.ts +++ b/src/ScalarTypeComposer.ts @@ -17,12 +17,15 @@ import { graphqlVersion } from './utils/graphqlVersion'; import { printScalar, SchemaPrinterOptions } from './utils/schemaPrinter'; import { getScalarTypeDefinitionNode } from './utils/definitionNode'; -export type ScalarTypeComposerDefinition = +export type ScalarTypeComposerDefinition = | TypeAsString - | Readonly + | Readonly> | Readonly; -export type ScalarTypeComposerAsObjectDefinition = GraphQLScalarTypeConfig & { +export type ScalarTypeComposerAsObjectDefinition = GraphQLScalarTypeConfig< + TInternal, + TExternal +> & { extensions?: Extensions; directives?: Directive[]; }; @@ -47,8 +50,8 @@ export class ScalarTypeComposer { * Create `ScalarTypeComposer` with adding it by name to the `SchemaComposer`. * This type became available in SDL by its name. */ - static create( - typeDef: ScalarTypeComposerDefinition, + static create( + typeDef: ScalarTypeComposerDefinition, schemaComposer: SchemaComposer ): ScalarTypeComposer { if (!(schemaComposer instanceof SchemaComposer)) { @@ -70,8 +73,8 @@ export class ScalarTypeComposer { * Create `ScalarTypeComposer` without adding it to the `SchemaComposer`. * This method may be useful in plugins, when you need to create type temporary. */ - static createTemp( - typeDef: ScalarTypeComposerDefinition, + static createTemp( + typeDef: ScalarTypeComposerDefinition, schemaComposer?: SchemaComposer ): ScalarTypeComposer { const sc = schemaComposer || new SchemaComposer(); diff --git a/src/SchemaComposer.ts b/src/SchemaComposer.ts index a1bec70..6598a57 100644 --- a/src/SchemaComposer.ts +++ b/src/SchemaComposer.ts @@ -555,7 +555,9 @@ export class SchemaComposer extends TypeStorage { + createScalarTC( + typeDef: ScalarTypeComposerDefinition + ): ScalarTypeComposer { return ScalarTypeComposer.create(typeDef, this); }