@@ -53,7 +53,10 @@ export interface GenerateOptions {
53
53
* }
54
54
* ```
55
55
*/
56
- scalarTypes ?: Record < string , string > ;
56
+ scalarTypes ?: Exclude <
57
+ deps . typescriptPlugin . TypeScriptPluginConfig [ 'scalars' ] ,
58
+ string
59
+ > ;
57
60
/**
58
61
* Prepend code to the schema file, useful with the `scalarTypes` option.
59
62
*/
@@ -177,7 +180,7 @@ export async function generate(
177
180
178
181
const codegenResultPromise = deps . codegen ( {
179
182
schema : parse ( deps . printSchemaWithDirectives ( schema ) ) ,
180
- config : { } as deps . typescriptPlugin . TypeScriptPluginConfig ,
183
+ config : { } satisfies deps . typescriptPlugin . TypeScriptPluginConfig ,
181
184
documents : [ ] ,
182
185
filename : 'gqty.generated.ts' ,
183
186
pluginMap : {
@@ -186,14 +189,15 @@ export async function generate(
186
189
plugins : [
187
190
{
188
191
typescript : {
192
+ constEnums : true ,
189
193
onlyOperationTypes : true ,
190
194
declarationKind : 'interface' ,
191
195
addUnderscoreToArgsType : true ,
192
196
scalars : scalarTypes ,
193
197
namingConvention : 'keep' ,
194
198
enumsAsTypes : enumsAsStrings ,
195
199
enumsAsConst : enumsAsConst ,
196
- } as deps . typescriptPlugin . TypeScriptPluginConfig ,
200
+ } satisfies deps . typescriptPlugin . TypeScriptPluginConfig ,
197
201
} ,
198
202
] ,
199
203
} ) ;
@@ -578,7 +582,7 @@ export async function generate(
578
582
scalarsEnumsHash [ pureType ]
579
583
? enumsNames . includes ( pureType )
580
584
? pureType
581
- : `Scalars ["${ pureType } "]`
585
+ : `ScalarsEnums ["${ pureType } "]`
582
586
: pureType ,
583
587
] ;
584
588
@@ -754,13 +758,13 @@ export async function generate(
754
758
subscription: Subscription
755
759
}
756
760
757
- export type MakeNullable<T> = {
758
- [K in keyof T ]: T[K] | undefined;
759
- };
760
-
761
- export interface ScalarsEnums extends MakeNullable<Scalars> {
761
+ export type ScalarsEnums = {
762
+ [Key in keyof Scalars ]: Scalars[Key] extends { output: unknown }
763
+ ? Scalars[Key]['output']
764
+ : never;
765
+ } & {
762
766
${ deps . sortBy ( enumsNames ) . reduce ( ( acum , enumName ) => {
763
- acum += `${ enumName } : ${ enumName } | undefined ;` ;
767
+ acum += `${ enumName } : ${ enumName } ;` ;
764
768
return acum ;
765
769
} , '' ) }
766
770
}
0 commit comments