This template generates TypeScript typings for both client side and server side.
This generator supports custom config and output behavior. Use to following flags/environment variables to modify your output as you wish:
Setting this to true will cause the generator to add the time of the generated output on top of the file.
Will add the elements of this on top of the file.
prepend: [
"// My Comment",
"// My Other Comment"
]
Will map scalars to the predefined types
scalars: {
"Date": "Date"
}
prepend
and scalars
options can be combined to map custom types to scalars.
prepend: [
"import { CustomScalarType } from './custom-types';"
"import { AnotherCustomScalarType } from './another-custom-types';"
],
scalars: {
"CustomScalar": "CustomScalarType",
"AnotherCustomScalar": "AnotherCustomScalarType"
}
This will cause the generator to avoid using TypeScript optionals (?
), so the following definition: type A { myField: String }
will output myField: string | null
instead of myField?: string | null
.
Will generate the declared enums as TypeScript type
instead of enums
. This is useful if you can't use .ts
extension.
This will cause the codegen to output readonly
properties and ReadonlyArray
.
This will cause the codegen to output types for resolvers.
This will cause the codegen not to use namespace
in typings
This will cause the codegen to wrap the generated schema typings with a TypeScript namespace.
This will cause the codegen to prefix graphql type interfaces with a value (if I
is defined as prefix, type Foo
will be generated as an interface named IFoo
)
Use this feature if you need to run the codegen on multiple schemas, but getting a unified types (read more here)