😎
[next/jest] jest-transform-graphql でのトランスフォームエラー
実行環境
"jest": "29.5.0"
"next": "13.2.4"
jest-transform-graphql でのトランスフォームエラー
graphql コードを読み込む際、jest-transform-graphql
を利用してトランスフォームを行うのですが、下記のエラーに遭遇しました。
jest
のバージョン28
のブレーキングチェンジで発生したエラーとされていますが、バージョン29
でも同様のエラーが発生しました。
`process()` or/and `processAsync()` method of code transformer found at
"node_modules/jest-transform-graphql/index.js"
should return an object or a Promise resolving to an object. The object
must have `code` property with a string of processed code.
This error may be caused by a breaking change in Jest 28:
https://jestjs.io/docs/upgrading-to-jest28#transformer
Code Transformation Documentation:
https://jestjs.io/docs/code-transformation
対処方法
transform-graphql-jest
にcode
オブジェクトを付与するように書き換えて transform に設定すると利用できるようになります。
一時的な対応なのでバージョンが上がったタイミングで挙動を確認してください。
...
transform: {
'\\.(gql|graphql)$': './transform-graphql-jest-similar.js',
}
// transform-graphql-jest-similar.js
const { process: upstreamProcess } = require("jest-transform-graphql");
const process = (...args) => {
const code = upstreamProcess(...args);
return { code };
};
module.exports = { process };
Discussion