@benjibenji/graphql-codegen-client-preset-swc-plugin
v0.4.0
Published
A SWC plugin for https://the-guild.dev/graphql/codegen/plugins/presets/preset-client. Forked to work with new Next.js versions and client components.
Downloads
537
Maintainers
Readme
This is an unsupported fork to make the plugin work with new versions of Next.js and "use client" directives. Use at your own peril.
@benjibenji/graphql-codegen-client-preset-swc-plugin
[!NOTE] Updated to use SWC core 0.90.* to support Next.js 14.2.0
When using the @graphql-codegen/client-preset
on large scale projects might want to enable code splitting or tree shaking on the client-preset
generated files. This is because instead of using the map which contains all GraphQL operations in the project, we can use the specific generated document types.
This plugin works for SWC only.
Installation
yarn add -D @benjibenji/graphql-codegen-client-preset-swc-plugin
Usage
You will need to provide the artifactDirectory
path that should be the same as the one configured in your codegen.ts
Vite
import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react-swc'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
react({
plugins: [
['@benjibenji/graphql-codegen-client-preset-swc-plugin', { artifactDirectory: './src/gql', gqlTagName: 'graphql' }]
]
})
]
})
Next.js
const nextConfig = {
// ...
experimental: {
swcPlugins: [
['@benjibenji/graphql-codegen-client-preset-swc-plugin', { artifactDirectory: './src/gql', gqlTagName: 'graphql' }]
]
}
}
.swcrc
{
// ...
jsc: {
// ...
experimental: {
plugins: [
['@benjibenji/graphql-codegen-client-preset-swc-plugin', { artifactDirectory: './src/gql', gqlTagName: 'graphql' }]
]
}
}
}
Release
To publish a new version ensure you have done the following:
- Update the version in
package.json
- Update the
CHANGELOG.md
with the new version and changes - Commit the changes
- From GitHub Actions, run the
Rust plugin
workflow