Releases: eddeee888/graphql-code-generator-plugins
@eddeee888/gcg-typescript-resolver-files@0.9.4
Patch Changes
- b734d8b: Revert VariableStatement assumption that can cause runtime errors
@eddeee888/gcg-typescript-resolver-files@0.9.3
Patch Changes
@eddeee888/gcg-typescript-resolver-files@0.9.2
@eddeee888/gcg-typescript-resolver-files@0.9.1
Patch Changes
- e999093: Add hooks to defineConfig context
@eddeee888/gcg-typescript-resolver-files@0.9.0
Minor Changes
-
454d1df: Add resolverGeneration 'minimal' mode
minimal
is the equivalent of:{ "query": "*", "mutation": "*", "subscription": "*", "scalar": "*", "object": "", "union": "", "interface": "" }
-
454d1df: Implement file auto-wireup if detected at the right filesystem location
Patch Changes
- c48e8c6: Update internals to avoid parsing schema twice
@eddeee888/gcg-typescript-resolver-files@0.8.1
@eddeee888/gcg-server-config@0.2.1
Patch Changes
- 3213b73: Bump base codegen plugin to apply patches from upstream
@eddeee888/gcg-typescript-resolver-files@0.8.0
Minor Changes
-
6bf957d: Extend
resolverGeneration
functionalityAllow passing in an object that to control which files to be generated. By default (i.e.
resolverGeneration: 'recommended'
), it's equivalent to the following settings:defineConfig({ resolverGeneration: { query: '*', mutation: '*', subscription: '*', scalar: '*', object: '*', union: '', interface: '', }, });
Each option can take a glob pattern to tell the preset which files of a given type to be generated based on its normalized file name.
A normalized file name has this pattern:
<Module name>.<Top-level type name>.<Field resolver>?
Consider this schema:
# src/schema/pet/schema.graphql extend type Query { pets: [Pet!]! } type Cat { id: ID! } type Dog { id: ID! } union Pet = Cat | Dog # src/schema/user/schema.graphql extend type Mutation { createUser(id: ID!): CreateUserResult! } type User { id: ID! } type CreateUserOk { result: User! } type CreateUserError { error: String! } union CreateUserResult = CreateUserOk | CreateUserError
Then, the generated files and normalised names are:
src/schema/pet/resolvers/Query/pets.ts
, affected byquery
option, normalized name:pet.Query.pets
src/schema/pet/resolvers/Cat.ts
, affected byobject
option, normalized name:pet.Cat
src/schema/pet/resolvers/Dog.ts
, affected byobject
option, normalized name:pet.Dog
src/schema/pet/resolvers/Pet.ts
, affected byunion
option, normalized name:pet.Pet
src/schema/user/resolvers/Mutation/createUser.ts
, affected bymutation
option, normalized name:user.Mutation.createUser
src/schema/user/resolvers/User.ts
, affected byobject
option, normalized name:user.User
src/schema/user/resolvers/CreateUserOk.ts
, affected byobject
option, normalized name:user.CreateUserOk
src/schema/user/resolvers/CreateUserError.ts
, affected byobject
option, normalized name:user.CreateUserError
src/schema/user/resolvers/CreateUserResult.ts
, affected byunion
option, normalized name:user.CreateUserResult
Now, let's say we want to disable all union files, types ending with
Ok
orError
, the config would look like this:defineConfig({ resolverGeneration: { query: '*', mutation: '*', subscription: '*', scalar: '*', object: ['!*.*Ok', '!*.*Error'], // Disables objects ending with `Ok` or `Error` in every module union: '', // Empty string disables all file generation of relevant type in every module interface: '*', }, });
-
00a80bc: Bump ts-morph to v22 which requires TypeScript 5.4
Patch Changes
-
6bf957d: Add colours to logs
-
de5599b: Move union and interface config from server config to server preset
This config is fairly opinionated and may not make sense being on server config. However, it is definitely the default mode of operation we want to use for server preset to avoid having extra files, simplifying the setup.
-
Updated dependencies [de5599b]
- @eddeee888/gcg-server-config@0.2.0
@eddeee888/gcg-server-config@0.2.0
Minor Changes
-
de5599b: Move union and interface config from server config to server preset
This config is fairly opinionated and may not make sense being on server config. However, it is definitely the default mode of operation we want to use for server preset to avoid having extra files, simplifying the setup.
@eddeee888/gcg-typescript-resolver-files@0.7.5
Patch Changes
-
4ab8016: Use TypeScript typechecker to collect type properties
Previously, we manually walked through the program to collect properties of types. This is problematic as there are lots of ways to declare mappers that we cannot manually handle. On top of this, type property properties can be handled natively correctly by TypeScript typechecker.
Note: class declaration private properties are picked up by TypeScript typechecker, which could be problematic. We are keeping that case as-is.