{"_id":"@mizdra/graphql-codegen-typescript-fabbrica","_rev":"9-2561ae31e31ec692a31855515622c8a6","name":"@mizdra/graphql-codegen-typescript-fabbrica","dist-tags":{"latest":"0.6.3"},"versions":{"0.3.0":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.3.0","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.3.0","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"783ffc7c4ade7b844a6c65cc1fb7bac340a2f42d","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.3.0.tgz","fileCount":48,"integrity":"sha512-ShPEpC6GrzL1fqXqx4Ua1heid8ExrK/evJI1vozVPt6mZWebwKG0tf26v9KwQ0F8HZBufnq4BURUMXobWi9ckQ==","signatures":[{"sig":"MEUCICZR+7gzBIHbR71hlgC0Ti1WLb6KMtCcz6jclhfYHD7uAiEA2b8wqarIrxG9bs+UTnbWLgL9gGNy6pf1Uq9dZ333UOw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87956},"type":"commonjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helper":{"types":"./dist/helper/index.d.ts","default":"./dist/helper/index.js"}},"gitHead":"3d510089ab5d4912243c45c3d016352394f326aa","private":false,"scripts":{"e2e":"npm -w e2e run start","lint":"run-s -c lint:*","test":"vitest","build":"tsc -p tsconfig.build.json","pree2e":"npm run build","lint:tsc":"tsc","lint:eslint":"eslint .","lint:prettier":"prettier --check ."},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e"],"_npmVersion":"8.11.0","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"19.8.1","dependencies":{"@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.47.0","vitest":"^0.34.5","graphql":"^16.8.1","prettier":"^3.0.2","typescript":"^5.1.6","@types/node":"^20.5.1","npm-run-all":"^4.1.5","@types/eslint":"^8.44.2","@tsconfig/node18":"^18.2.0","@tsconfig/strictest":"^2.0.1","@graphql-codegen/cli":"^5.0.0","@graphql-codegen/typescript":"^4.0.1","@mizdra/eslint-config-mizdra":"^2.0.0","@mizdra/prettier-config-mizdra":"^1.0.0","vitest-github-actions-reporter":"^0.10.0"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.3.0_1696261572324_0.9054706697221284","host":"s3://npm-registry-packages"}},"0.3.1":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.3.1","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.3.1","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"266d29d3e5f367c09e1fac0a6938289661c1c95b","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.3.1.tgz","fileCount":48,"integrity":"sha512-skouIGkjVWPS1P9xj8qnExq4NbKpxDJRu/d8HFUmzuPB8kBSNYSrekmC3/7Q5/Js+XMB+amI83rR8mEBzfxCyQ==","signatures":[{"sig":"MEQCIHmH2JMCnCdCLBiGQtxyV/Hj+07Df0o0Q4iHvN8oEVU4AiBisfAfFabNaW7yZsWcpS0xpiRpZB5XXRhsp0Va/X4Diw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":87958},"type":"commonjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helper":{"types":"./dist/helper/index.d.ts","default":"./dist/helper/index.js"}},"gitHead":"d22839c29b5b611db03e9300c9396b353704e43b","private":false,"scripts":{"e2e":"npm -w e2e run start","lint":"run-s -c lint:*","test":"vitest","build":"tsc -p tsconfig.build.json","pree2e":"npm run build","lint:tsc":"tsc","lint:eslint":"eslint .","lint:prettier":"prettier --check ."},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e"],"_npmVersion":"10.2.4","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"21.4.0","dependencies":{"@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.47.0","vitest":"^0.34.5","graphql":"^16.8.1","prettier":"^3.0.2","typescript":"^5.1.6","@types/node":"^20.5.1","npm-run-all":"^4.1.5","@types/eslint":"^8.44.2","@tsconfig/node18":"^18.2.0","@tsconfig/strictest":"^2.0.1","@graphql-codegen/cli":"^5.0.0","@graphql-codegen/typescript":"^4.0.1","@mizdra/eslint-config-mizdra":"^2.0.0","@mizdra/prettier-config-mizdra":"^1.0.0","vitest-github-actions-reporter":"^0.10.0"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.3.1_1705919594616_0.9501263896015986","host":"s3://npm-registry-packages"}},"0.3.2":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.3.2","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.3.2","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"14543816a42c522c5f16fc9558cb8c0309d628ef","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.3.2.tgz","fileCount":48,"integrity":"sha512-cCbfhGPwdP+64GVI4bGddqCtxUvD6d1tMXKDvsH9gZ4NDHKhnrxY+0DowDu0x78TWkjRnH7lvUVI6BeRcKiAag==","signatures":[{"sig":"MEYCIQCweFtGl8ivJcRHfhVrU/K6qMvkscXhHbVBRaLnRxxjhgIhAPVdRO7OUaZhxq3QR3bObX9IrRuntXrkkhw7T0XmORQ8","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":88039},"type":"commonjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./helper":{"types":"./dist/helper/index.d.ts","default":"./dist/helper/index.js"}},"gitHead":"9ac221aaefe886097b2fcc732fc1493f467e49f9","private":false,"scripts":{"e2e":"npm -w e2e run start","lint":"run-s -c lint:*","test":"vitest","build":"tsc -p tsconfig.build.json","pree2e":"npm run build","lint:tsc":"tsc","lint:eslint":"eslint .","lint:prettier":"prettier --check ."},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e"],"_npmVersion":"10.2.4","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"21.4.0","dependencies":{"@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"eslint":"^8.47.0","vitest":"^0.34.5","graphql":"^16.8.1","prettier":"^3.0.2","typescript":"^5.1.6","@types/node":"^20.5.1","npm-run-all":"^4.1.5","@types/eslint":"^8.44.2","@tsconfig/node18":"^18.2.0","@tsconfig/strictest":"^2.0.1","@graphql-codegen/cli":"^5.0.0","@graphql-codegen/typescript":"^4.0.1","@mizdra/eslint-config-mizdra":"^2.0.0","@mizdra/prettier-config-mizdra":"^1.0.0","vitest-github-actions-reporter":"^0.10.0"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.3.2_1706004377476_0.7843983420119158","host":"s3://npm-registry-packages"}},"0.4.0":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.4.0","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.4.0","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"ca94b9bd5578cfeb0ed13921ed9fcbe6c4a089c4","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.4.0.tgz","fileCount":54,"integrity":"sha512-1OM2NYf5TiNEHT+kgDWIRlP25G3EIxHQ7K26Mnjrbco3tSGdCpyqWMauCM6xjdEyuAKjnon8tawViVLdxdEj0w==","signatures":[{"sig":"MEQCIDT0NpJewDIQ56T7S5x0Y55jL549LDjw+bWQbDNXiPXoAiApo140iGkLQ7qNsfktqDYCSYBIask6vCPPC6spEG9OqA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":150512},"type":"module","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./helper":{"import":{"types":"./dist/esm/helper/index.d.ts","default":"./dist/esm/helper/index.js"},"require":{"types":"./dist/cjs/helper/index.d.cts","default":"./dist/cjs/helper/index.cjs"}}},"gitHead":"60420482a0009d3e8953e0a4785f74983c2b869d","private":false,"scripts":{"e2e":"npm -w e2e/esm -w e2e/cjs run start","lint":"run-s -c lint:*","test":"vitest","build":"run-s -c build:*","pree2e":"npm run build","lint:tsc":"tsc","build:cjs":"tsup","build:esm":"tsc -p tsconfig.build.json","lint:eslint":"eslint .","lint:prettier":"prettier --check ."},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e/esm","e2e/cjs","e2e/browser"],"_npmVersion":"10.2.4","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"21.4.0","dependencies":{"@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","eslint":"^8.47.0","vitest":"^1.3.1","graphql":"^16.8.1","prettier":"^3.0.2","typescript":"^5.4.2","@types/node":"^20.5.1","npm-run-all":"^4.1.5","webdriverio":"^8.33.1","@types/eslint":"^8.44.2","@vitest/browser":"^1.3.1","@tsconfig/node18":"^18.2.0","@tsconfig/strictest":"^2.0.1","@graphql-codegen/cli":"^5.0.0","@graphql-codegen/typescript":"^4.0.1","@mizdra/eslint-config-mizdra":"^2.0.0","@mizdra/prettier-config-mizdra":"^1.0.0","vitest-github-actions-reporter":"^0.11.1"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.4.0_1710606272507_0.6404775858963796","host":"s3://npm-registry-packages"}},"0.5.0":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.5.0","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.5.0","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"5a2045646655bc46fcce3c9fe8db76fff0df2411","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.5.0.tgz","fileCount":54,"integrity":"sha512-WUk5YLZqT8fnBubt8jRdZ2XSpYpG1TRi7JaFJA28xpB9+fZZ64H9WQfwWuvP/D7fpyJx4KOeSScrCgpks/cIuQ==","signatures":[{"sig":"MEYCIQCwO8mdKb9ZKkYN4qT4Wd3uOxcDYa3Y5dkovPwY9hjb1gIhAOOlMOv721u6+X1QpH2zBH5aFIH7SFd1suDnt3zMePEV","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":157054},"type":"module","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./helper":{"import":{"types":"./dist/esm/helper/index.d.ts","default":"./dist/esm/helper/index.js"},"require":{"types":"./dist/cjs/helper/index.d.cts","default":"./dist/cjs/helper/index.cjs"}}},"gitHead":"779967863f6f0ecfeb69e841104b6c62b5f4ee91","private":false,"scripts":{"e2e":"npm -w e2e/esm -w e2e/cjs run start","lint":"run-s -c lint:*","test":"vitest","build":"run-s -c build:*","pree2e":"npm run build","lint:tsc":"tsc","build:cjs":"tsup","build:esm":"tsc -p tsconfig.build.json","lint:eslint":"eslint .","lint:prettier":"prettier --check ."},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e/esm","e2e/cjs","e2e/browser"],"_npmVersion":"10.2.4","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"21.4.0","dependencies":{"@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","eslint":"^8.47.0","vitest":"^1.3.1","graphql":"^16.8.1","prettier":"^3.0.2","typescript":"^5.4.2","@types/node":"^20.5.1","npm-run-all":"^4.1.5","webdriverio":"^8.33.1","@types/eslint":"^8.44.2","@vitest/browser":"^1.3.1","@tsconfig/node18":"^18.2.0","@tsconfig/strictest":"^2.0.1","@graphql-codegen/cli":"^5.0.0","@graphql-codegen/typescript":"^4.0.1","@mizdra/eslint-config-mizdra":"^2.0.0","@mizdra/prettier-config-mizdra":"^1.0.0","vitest-github-actions-reporter":"^0.11.1"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.5.0_1711188817200_0.6143406562609035","host":"s3://npm-registry-packages"}},"0.6.0":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.6.0","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.6.0","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"3c3961677b4e280f7656a4a35267e2795a82bb86","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.6.0.tgz","fileCount":54,"integrity":"sha512-Jkimjs2kYH6VYsveeVYAfZ4Lch4zqUIuW6FxBpfOSSrKeu/n7mVbfU2zQMejlBeeND5brtVjhA1Ozi/CHfnpvw==","signatures":[{"sig":"MEUCIQCTYue7otx5v2pj4oyaGgDqa7Q+87y6uIqacMLk8MQ55AIgb7Dw5xH8Ihk0LIm8XMtG3/78mfRkHPqW6NFz3FmlWb0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":163193},"type":"module","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./helper":{"import":{"types":"./dist/esm/helper/index.d.ts","default":"./dist/esm/helper/index.js"},"require":{"types":"./dist/cjs/helper/index.d.cts","default":"./dist/cjs/helper/index.cjs"}}},"gitHead":"339d74838cbf2a6ededc832138eaa72f7ce2bd7b","private":false,"scripts":{"e2e":"npm -w e2e/esm -w e2e/cjs run start","lint":"run-s -c lint:*","test":"vitest","build":"run-s -c build:*","pree2e":"npm run build","lint:tsc":"tsc","build:cjs":"tsup","build:esm":"tsc -p tsconfig.build.json","lint:eslint":"eslint .","lint:prettier":"prettier --check ."},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","overrides":{"tsconfig-paths":"^4.0.0"},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e/esm","e2e/cjs","e2e/browser"],"_npmVersion":"10.5.1","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{"graphql-relay":"^0.10.2","@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.1","tsup":"^8.0.2","eslint":"^8.47.0","vitest":"^1.3.1","graphql":"^16.8.1","prettier":"^3.0.2","typescript":"^5.4.2","@types/node":"^20.5.1","npm-run-all":"^4.1.5","webdriverio":"^8.33.1","@types/eslint":"^8.44.2","@vitest/browser":"^1.3.1","@tsconfig/node18":"^18.2.0","@tsconfig/strictest":"^2.0.1","@graphql-codegen/cli":"^5.0.0","@graphql-codegen/typescript":"^4.0.1","@mizdra/eslint-config-mizdra":"^2.0.0","@mizdra/prettier-config-mizdra":"^1.0.0","vitest-github-actions-reporter":"^0.11.1"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.6.0_1721320427298_0.445262892715403","host":"s3://npm-registry-packages"}},"0.6.1":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.6.1","keywords":["testing","mock","graphql","graphql-code-generator"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.6.1","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"a72ddbac9117892a8e7fa6fe0242f8201af3b045","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.6.1.tgz","fileCount":54,"integrity":"sha512-Sa50LZAY0j1FL1MS6ebialT/lW7yigTiID4keVu0oi3sh/JgTE4sPeYEAlTHAUtI2c0r6EHMZNREhRCMgVRYIg==","signatures":[{"sig":"MEUCIQCAlLAs1PDzbrA7IjO/zoVKbKL4gm8qyMnhj//g3KA3LwIgWlLQZ7TY6Yc+oz2wcGsQb3zUuCJUD2ssjKApR7+q4h0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":158198},"type":"module","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./helper":{"import":{"types":"./dist/esm/helper/index.d.ts","default":"./dist/esm/helper/index.js"},"require":{"types":"./dist/cjs/helper/index.d.cts","default":"./dist/cjs/helper/index.cjs"}}},"gitHead":"67e05c4b7f59a8688f55da8cb41192c95982d9fc","private":false,"scripts":{"e2e":"run-s -c setup-playwright build e2e:*","lint":"run-s -c lint:*","test":"vitest","build":"run-s -c build:*","e2e:cjs":"npm -w e2e/02-cjs run start","e2e:esm":"npm -w e2e/01-esm run start","lint:tsc":"tsc","build:cjs":"tsup","build:esm":"tsc -p tsconfig.build.json","e2e:browser":"npm -w e2e/03-browser run start","lint:eslint":"eslint .","e2e:composite":"npm --prefix e2e/04-composite run start","lint:prettier":"prettier --check .","setup-playwright":"npx playwright install --with-deps chromium"},"_npmUser":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"prettier":"@mizdra/prettier-config-mizdra","repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e/01-esm","e2e/02-cjs","e2e/03-browser"],"_npmVersion":"10.8.2","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"22.0.0","dependencies":{"graphql-relay":"^0.10.2","@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","tsup":"^8.2.4","eslint":"^9.10.0","vitest":"^2.1.1","graphql":"^16.9.0","prettier":"^3.3.3","playwright":"^1.47.1","typescript":"^5.6.2","@types/node":"^22.5.5","npm-run-all":"^4.1.5","@vitest/browser":"^2.1.1","@tsconfig/node18":"^18.2.4","@tsconfig/strictest":"^2.0.5","@graphql-codegen/cli":"^5.0.2","@graphql-codegen/typescript":"^4.0.9","@mizdra/eslint-config-mizdra":"^6.0.0","@mizdra/prettier-config-mizdra":"^2.0.0"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.6.1_1726758528559_0.9404575463271649","host":"s3://npm-registry-packages"}},"0.6.2":{"name":"@mizdra/graphql-codegen-typescript-fabbrica","version":"0.6.2","keywords":["graphql","graphql-code-generator","mock","testing"],"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.6.2","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"67c08463865d032972467fa31a6f2abd26a80ad6","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.6.2.tgz","fileCount":12,"integrity":"sha512-fJ8e5vlicArmqhmn7iLnmIBDqpoehDbjJqhb4r8uYIW72aCmGJn/1VMZlbUHPqYrpGjFXpNgcqalo79kloNw+g==","signatures":[{"sig":"MEUCIFS7KgYdALQ8QptsJrfuqGcOKQBNltQDQ/ZAGcHKFM8ZAiEAwJLZCy8DPUmLEEve+QxRv+s48C0loJwGWcj6hmnZdNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mizdra%2fgraphql-codegen-typescript-fabbrica@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":50613},"type":"module","engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./helper":{"import":{"types":"./dist/esm/helper/index.d.ts","default":"./dist/esm/helper/index.js"},"require":{"types":"./dist/cjs/helper/index.d.cts","default":"./dist/cjs/helper/index.cjs"}}},"gitHead":"b31546af78fd7482fe5a60fc2f1000440b73f4e6","private":false,"scripts":{"e2e":"run-s -c setup-playwright build e2e:*","lint":"run-s -c lint:*","test":"vitest","build":"run-s -c build:*","e2e:cjs":"npm -w e2e/02-cjs run start","e2e:esm":"npm -w e2e/01-esm run start","lint-fix":"run-s -c lint-fix:*","lint:tsc":"tsc","build:cjs":"tsup","build:esm":"tsc -p tsconfig.build.json","lint:oxfmt":"oxfmt --check","e2e:browser":"npm -w e2e/03-browser run start","lint:oxlint":"oxlint","e2e:composite":"npm --prefix e2e/04-composite run start","lint-fix:oxfmt":"oxfmt --write .","lint-fix:oxlint":"oxlint --fix","setup-playwright":"npx playwright install --with-deps chromium"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"oidc:a52b14d3-fe04-4852-b5e4-544644976fda"}},"devEngines":{"packageManager":{"name":"npm","onFail":"warn","version":"12.0.0"}},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e/01-esm","e2e/02-cjs","e2e/03-browser"],"_npmVersion":"11.17.0","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"graphql-relay":"^0.10.2","@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.1","tsup":"^8.2.4","oxfmt":"^0.58.0","oxlint":"^1.73.0","vitest":"^2.1.1","graphql":"^16.9.0","playwright":"^1.47.1","typescript":"^5.6.2","@types/node":"^22.5.5","npm-run-all2":"^7.0.2","@vitest/browser":"^2.1.1","oxlint-tsgolint":"^0.24.0","@tsconfig/node18":"^18.2.4","@tsconfig/strictest":"^2.0.5","@graphql-codegen/cli":"^5.0.2","@mizdra/oxfmt-config":"^0.2.0","@mizdra/oxlint-config":"^0.5.0","@graphql-codegen/typescript":"^4.0.9"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"tmp":"tmp/graphql-codegen-typescript-fabbrica_0.6.2_1783693534041_0.3669308113954035","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"_id":"@mizdra/graphql-codegen-typescript-fabbrica@0.6.3","bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"dist":{"shasum":"80b477476223ebc8040ba15174a5a34586f07483","tarball":"https://registry.npmjs.org/@mizdra/graphql-codegen-typescript-fabbrica/-/graphql-codegen-typescript-fabbrica-0.6.3.tgz","integrity":"sha512-JYPrzBSzroQmE0s/PIQgNpl/tW37ZAzRfLwnQXYyc2PRPLZ7VrTt8ZcUpK74AOvReFVUzmffepiO7QFbvvlKgQ==","fileCount":54,"unpackedSize":158979,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@mizdra%2fgraphql-codegen-typescript-fabbrica@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDi/9EGBRuRmudIWxNvwwNEdq6acE9QWD7VITD+zOllvwIhAI5m3o9nd+55dALZluAamzE0pamTAaIV+2fKLrMzg3Q9"}]},"name":"@mizdra/graphql-codegen-typescript-fabbrica","type":"module","author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"engines":{"node":">=18.0.0"},"exports":{".":{"import":{"types":"./dist/esm/index.d.ts","default":"./dist/esm/index.js"},"require":{"types":"./dist/cjs/index.d.cts","default":"./dist/cjs/index.cjs"}},"./helper":{"import":{"types":"./dist/esm/helper/index.d.ts","default":"./dist/esm/helper/index.js"},"require":{"types":"./dist/cjs/helper/index.d.cts","default":"./dist/cjs/helper/index.cjs"}}},"gitHead":"31c11c7fb7a8419ce99be71e6639dfa2715c0fe9","license":"MIT","private":false,"scripts":{"e2e":"run-s -c setup-playwright build e2e:*","lint":"run-s -c lint:*","test":"vitest","build":"run-s -c build:*","e2e:cjs":"npm -w e2e/02-cjs run start","e2e:esm":"npm -w e2e/01-esm run start","lint-fix":"run-s -c lint-fix:*","lint:tsc":"tsc","build:cjs":"tsup","build:esm":"tsc -p tsconfig.build.json","lint:oxfmt":"oxfmt --check","e2e:browser":"npm -w e2e/03-browser run start","lint:oxlint":"oxlint","e2e:composite":"npm --prefix e2e/04-composite run start","lint-fix:oxfmt":"oxfmt --write .","lint-fix:oxlint":"oxlint --fix","setup-playwright":"npx playwright install --with-deps chromium"},"version":"0.6.3","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a52b14d3-fe04-4852-b5e4-544644976fda"},"approver":{"name":"mizdra","email":"pp.mizdra@gmail.com"}},"homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","keywords":["graphql","graphql-code-generator","mock","testing"],"devEngines":{"packageManager":{"name":"npm","onFail":"warn","version":"12.0.0"}},"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"workspaces":["e2e/01-esm","e2e/02-cjs","e2e/03-browser"],"_npmVersion":"11.17.0","description":"GraphQL Code Generator Plugin to define mock data factory.","directories":{},"maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.5.0","dependencies":{"graphql-relay":"^0.10.2","@graphql-codegen/plugin-helpers":"^5.0.1","@graphql-codegen/visitor-plugin-common":"^4.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"devDependencies":{"tsx":"^4.19.1","tsup":"^8.2.4","oxfmt":"^0.58.0","oxlint":"^1.73.0","vitest":"^2.1.1","graphql":"^16.9.0","playwright":"^1.47.1","typescript":"^5.6.2","@types/node":"^22.5.5","npm-run-all2":"^7.0.2","@vitest/browser":"^2.1.1","oxlint-tsgolint":"^0.24.0","@tsconfig/node18":"^18.2.4","@tsconfig/strictest":"^2.0.5","@graphql-codegen/cli":"^5.0.2","@mizdra/oxfmt-config":"^0.2.0","@mizdra/oxlint-config":"^0.5.0","@graphql-codegen/typescript":"^4.0.9"},"peerDependencies":{"graphql":"^16.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/graphql-codegen-typescript-fabbrica_0.6.3_1783694478679_0.4870137788603983"},"_hasShrinkwrap":false}},"time":{"created":"2023-10-02T15:46:12.255Z","modified":"2026-07-10T14:41:19.047Z","0.3.0":"2023-10-02T15:46:12.521Z","0.3.1":"2024-01-22T10:33:14.778Z","0.3.2":"2024-01-23T10:06:17.637Z","0.4.0":"2024-03-16T16:24:32.703Z","0.5.0":"2024-03-23T10:13:37.374Z","0.6.0":"2024-07-18T16:33:47.508Z","0.6.1":"2024-09-19T15:08:48.738Z","0.6.2":"2026-07-10T14:25:34.127Z","0.6.3":"2026-07-10T14:41:18.768Z"},"bugs":{"url":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica/issues"},"author":{"name":"mizdra","email":"pp.mizdra@gmail.com"},"license":"MIT","homepage":"https://github.com/mizdra/graphql-codegen-typescript-fabbrica#readme","keywords":["graphql","graphql-code-generator","mock","testing"],"repository":{"url":"git+https://github.com/mizdra/graphql-codegen-typescript-fabbrica.git","type":"git"},"description":"GraphQL Code Generator Plugin to define mock data factory.","maintainers":[{"name":"mizdra","email":"pp.mizdra@gmail.com"}],"readme":"# graphql-codegen-typescript-fabbrica\n\nGraphQL Code Generator Plugin to define mock data factory.\n\n## Installation\n\n```sh\nnpm install -D @mizdra/graphql-codegen-typescript-fabbrica @graphql-codegen/cli @graphql-codegen/typescript\nnpm install -S graphql\n```\n\n## Requirements\n\n- `graphql` >= 16.0.0\n- `typescript` >= 5.0.0\n  - `--moduleResolution Bundler`, `--moduleResolution Node16` or `--moduleResolution NodeNext` is required\n\n## Playground\n\nYou can try this library in the following playground.\n\n- https://stackblitz.com/edit/playground-graphql-codegen-typescript-fabbrica?file=src%2Findex.test.ts&view=editor\n\n## Usage\n\nFirst, you should configure the configuration file of GraphQL Code Generator as follows.\n\n```ts\n// codegen.ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\n\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      config: {\n        enumsAsTypes: true, // required\n        avoidOptionals: true, // required\n        // skipIsAbstractType: false, // If you use Relay, you should set this option to `false`\n      },\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      config: {\n        typesFile: './types', // required\n        // typesFile: './types.js' // If you use factories from Node.js and set `--moduleResolution` of `tsconfig.json` to `Node16` or `NodeNext`, you should add `.js` extension\n      },\n    },\n  },\n};\n\nexport default config;\n```\n\n```graphql\n# schema.graphql\ntype Book {\n  id: ID!\n  title: String!\n  author: Author!\n}\ntype Author {\n  id: ID!\n  name: String!\n  books: [Book!]!\n}\n```\n\nSecond, you should generate the code with the GraphQL Code Generator.\n\n```sh\nnpx graphql-codegen\n```\n\nThen, the utilities to define a factory are generated. You can define your preferred factory with it.\n\n```ts\n// src/app.ts\nimport { defineBookFactory, defineAuthorFactory, dynamic } from '../__generated__/fabbrica';\nimport { faker } from '@faker-js/faker';\n\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    __typename: 'Book',\n    id: dynamic(({ seq }) => `Book-${seq}`),\n    title: dynamic(() => faker.word.noun()),\n    author: undefined,\n  },\n});\nconst AuthorFactory = defineAuthorFactory({\n  defaultFields: {\n    __typename: 'Author',\n    id: dynamic(({ seq }) => `Author-${seq}`),\n    name: dynamic(() => faker.person.firstName()),\n    books: undefined,\n  },\n});\n```\n\nThe factory generates strictly typed mock data.\n\n```ts\n// simple\nconst book0 = await BookFactory.build();\nexpect(book0).toStrictEqual({\n  __typename: 'Book',\n  id: 'Book-0',\n  title: expect.any(String),\n  author: undefined,\n});\nexpectTypeOf(book0).toEqualTypeOf<{\n  __typename: 'Book';\n  id: string;\n  title: string;\n  author: undefined;\n}>();\n\n// nested\nconst book1 = await BookFactory.build({\n  author: await AuthorFactory.build(),\n});\nexpect(book1).toStrictEqual({\n  __typename: 'Book',\n  id: 'Book-1',\n  title: expect.any(String),\n  author: {\n    __typename: 'Author',\n    id: 'Author-0',\n    name: expect.any(String),\n    books: undefined,\n  },\n});\nexpectTypeOf(book1).toEqualTypeOf<{\n  __typename: 'Book';\n  id: string;\n  title: string;\n  author: {\n    __typename: 'Author';\n    id: string;\n    name: string;\n    books: undefined;\n  };\n}>();\n```\n\n## Notable features\n\nThe library has several notable features. And many of them are inspired by [FactoryBot](https://thoughtbot.github.io/factory_bot/).\n\n### Dynamic Fields\n\nThe `dynamic` function allows you to define fields with a dynamic value.\n\n```ts\nimport { dynamic } from '../__generated__/fabbrica';\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(() => faker.datatype.uuid()),\n    title: 'Yuyushiki',\n  },\n});\nexpect(await BookFactory.build()).toStrictEqual({\n  id: expect.any(String), // Randomly generated UUID\n  title: 'Yuyushiki',\n});\n```\n\n### Sequences\n\nSequences allow you to build sequentially numbered data.\n\n```ts\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Book-${seq}`),\n    title: dynamic(async ({ seq }) => Promise.resolve(`Yuyushiki Vol.${seq}`)),\n    author: undefined,\n  },\n});\nexpect(await BookFactory.build()).toStrictEqual({\n  id: 'Book-0',\n  title: 'Yuyushiki Vol.0',\n  author: undefined,\n});\nexpect(await BookFactory.build()).toStrictEqual({\n  id: 'Book-1',\n  title: 'Yuyushiki Vol.1',\n  author: undefined,\n});\n```\n\n### Dependent Fields\n\nFields can be based on the values of other fields using `get` function.\n\n```ts\nconst UserFactory = defineUserFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `User-${seq}`),\n    name: 'yukari',\n    email: dynamic(async ({ get }) => `${(await get('name')) ?? 'defaultName'}@yuyushiki.net`),\n  },\n});\nexpect(await UserFactory.build()).toStrictEqual({\n  id: 'User-0',\n  name: 'yukari',\n  email: 'yukari@yuyushiki.net',\n});\nexpect(await UserFactory.build({ name: 'yui' })).toStrictEqual({\n  id: 'User-1',\n  name: 'yui',\n  email: 'yui@yuyushiki.net',\n});\n```\n\n### Building lists\n\nYou can build a list of mock data with the `buildList` method.\n\n```ts\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Book-${seq}`),\n    title: dynamic(({ seq }) => `Yuyushiki Vol.${seq}`),\n    author: undefined,\n  },\n});\nexpect(await BookFactory.buildList(3)).toStrictEqual([\n  { id: 'Book-0', title: 'Yuyushiki Vol.0', author: undefined },\n  { id: 'Book-1', title: 'Yuyushiki Vol.1', author: undefined },\n  { id: 'Book-2', title: 'Yuyushiki Vol.2', author: undefined },\n]);\n```\n\n### Building connection\n\nYou can build a [connection](https://relay.dev/graphql/connections.htm) of mock data with the `buildConnection` method.\n\n```ts\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Book-${seq}`),\n  },\n});\nexpect(await BookFactory.buildConnection(3, { first: 2 })).toStrictEqual([\n  edges: [\n    { cursor: \"YXJyYXljb25uZWN0aW9uOjA=\", node: { id: 'Book-0' } },\n    { cursor: \"YXJyYXljb25uZWN0aW9uOjE=\", node: { id: 'Book-1' } },\n  ],\n  pageInfo: {\n    startCursor: \"YXJyYXljb25uZWN0aW9uOjA=\",\n    endCursor: \"YXJyYXljb25uZWN0aW9uOjE=\",\n    hasPreviousPage: false,\n    hasNextPage: true,\n  },\n]);\n```\n\n### Build mock data of related types (a.k.a. Associations)\n\nYou can build mock data of the relevant type in one shot.\n\n```ts\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Book-${seq}`),\n    title: dynamic(({ seq }) => `Yuyushiki Vol.${seq}`),\n    author: undefined,\n  },\n});\nconst AuthorFactory = defineAuthorFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Author-${seq}`),\n    name: 'Komata Mikami',\n    books: dynamic(async () => BookFactory.buildList(1)), // Build mock data of related types\n  },\n});\nexpect(await AuthorFactory.build()).toStrictEqual({\n  id: 'Author-0',\n  name: 'Komata Mikami',\n  books: [{ id: 'Book-0', title: 'Yuyushiki Vol.0', author: undefined }],\n});\n```\n\n### Transient Fields\n\nTransient fields are only available within the factory definition and are not included in the data being built. This allows more complex logic to be used inside factories.\n\n```ts\nimport { defineAuthorFactory, dynamic } from '../__generated__/fabbrica';\nimport { Author } from '../__generated__/types';\n\nconst AuthorFactory = defineAuthorFactory.withTransientFields({\n  bookCount: 0,\n})({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Author-${seq}`),\n    name: 'Komata Mikami',\n    books: dynamic(async ({ get }) => {\n      const bookCount = (await get('bookCount')) ?? 0;\n      return BookFactory.buildList(bookCount);\n    }),\n  },\n});\nexpect(await AuthorFactory.build({ bookCount: 3 })).toStrictEqual({\n  id: 'Author-0',\n  name: 'Komata Mikami',\n  books: [\n    { id: 'Book-0', title: 'Yuyushiki Vol.0', author: undefined },\n    { id: 'Book-1', title: 'Yuyushiki Vol.1', author: undefined },\n    { id: 'Book-2', title: 'Yuyushiki Vol.2', author: undefined },\n  ],\n});\n```\n\n### Additional Fields\n\nYou can add additional fields to the data being built. This is useful when you want to build a fake data for a query that contains [aliases](https://graphql.org/learn/queries/#aliases), such as:\n\n```graphql\nquery GetAuthorInfo {\n  author(id: '1') {\n    id\n    name\n    books {\n      id\n      title\n    }\n    popularBooks: books(popularOnly: true) {\n      id\n      title\n    }\n  }\n}\n```\n\n```ts\nimport { defineAuthorFactory, type OptionalAuthor, dynamic } from '../__generated__/fabbrica';\nconst AuthorFactory = defineAuthorFactory.withAdditionalFields<{ popularBooks: OptionalAuthor['books'] }>()({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Author-${seq}`),\n    name: 'Komata Mikami',\n    // Generate a fake data for the `Author.books()` field\n    books: dynamic(() => BookFactory.buildList(3)),\n    // Generate a fake data for the `Author.books(popularOnly: true)` field\n    popularBooks: dynamic(() => BookFactory.buildList(1)),\n  },\n});\nexpect(await AuthorFactory.build()).toStrictEqual({\n  id: 'Author-0',\n  name: 'Komata Mikami',\n  books: [\n    { id: 'Book-0', title: 'Yuyushiki Vol.0' },\n    { id: 'Book-1', title: 'Yuyushiki Vol.1' },\n    { id: 'Book-2', title: 'Yuyushiki Vol.2' },\n  ],\n  popularBooks: [{ id: 'Book-3', title: 'Yuyushiki Vol.3' }],\n});\n```\n\n### Traits\n\nTraits allow you to group the default values of fields and apply them to factories.\n\n```ts\nimport I_SPACER from '../assets/spacer.gif';\nimport I_AVATAR from '../assets/dummy/avatar.png';\nimport I_BANNER from '../assets/dummy/banner.png';\n\nconst ImageFactory = defineImageFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Image-${seq}`),\n    url: I_SPACER.src,\n    width: I_SPACER.width,\n    height: I_SPACER.height,\n  },\n  traits: {\n    avatar: {\n      defaultFields: {\n        url: I_AVATAR.src,\n        width: I_AVATAR.width,\n        height: I_AVATAR.height,\n      },\n    },\n    banner: {\n      defaultFields: {\n        url: I_BANNER.src,\n        width: I_BANNER.width,\n        height: I_BANNER.height,\n      },\n    },\n  },\n});\nexpect(await ImageFactory.build()).toStrictEqual({\n  id: 'Image-0',\n  url: I_SPACER.src,\n  width: I_SPACER.width,\n  height: I_SPACER.height,\n});\nexpect(await ImageFactory.use('avatar').build()).toStrictEqual({\n  id: 'Image-1',\n  url: I_AVATAR.src,\n  width: I_AVATAR.width,\n  height: I_AVATAR.height,\n});\nexpect(await ImageFactory.use('banner').build()).toStrictEqual({\n  id: 'Image-2',\n  url: I_BANNER.src,\n  width: I_BANNER.width,\n  height: I_BANNER.height,\n});\n```\n\n## Available configs\n\nSeveral configs can be set in the GraphQL Code Generator configuration file.\n\n### `typesFile`\n\ntype: `string`, required\n\nDefines the file path containing all GraphQL types. This file can be generated with the [typescript plugin](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript).\n\nIf you use factories on Node.js and set `--moduleResolution` of `tsconfig.json` to `Node16` or `NodeNext`, you should add `.js` extension to the file path. If you use factories on other runtimes, you should not add `.js` extension.\n\n```ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      config: {\n        // ...\n      },\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      config: {\n        typesFile: './types', // required\n        // typesFile: './types.js' // If you use factories from Node.js and set `--moduleResolution` of `tsconfig.json` to `Node16` or `NodeNext`, you should add `.js` extension\n      },\n    },\n  },\n};\n```\n\n### `skipTypename`\n\ntype: `boolean`, default: `false`\n\nDoes not add `__typename` to the fields that can be passed to factory.\n\n```ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      config: {\n        // ...\n      },\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      config: {\n        // ...\n        skipTypename: true,\n      },\n    },\n  },\n};\nexport default config;\n```\n\n### `skipIsAbstractType`\n\ntype: `boolean`, default: `true`\n\nDoes not add `__is<AbstractType>` to the fields that can be passed to factory. `__is<AbstractType>` is a field that relay-compiler automatically adds to the query[^1][^2]. It is recommended for Relay users to set this option to `false`.\n\n[^1]: https://github.com/facebook/relay/issues/3129#issuecomment-659439154\n\n[^2]: https://github.com/search?q=repo%3Afacebook%2Frelay%20%2F__is%3CAbstractType%3E%2F&type=code\n\n```ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      config: {\n        // ...\n      },\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      config: {\n        // ...\n        skipIsAbstractType: false,\n      },\n    },\n  },\n};\nexport default config;\n```\n\n### `nonOptionalDefaultFields`\n\ntype: `boolean`, default: `false`\n\nMake it mandatory to pass all fields to `defaultFields`. This is useful to force the `defaultFields` to be updated when new fields are added to the schema.\n\n```ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      config: {\n        // ...\n      },\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      config: {\n        // ...\n        nonOptionalDefaultFields: true,\n      },\n    },\n  },\n};\nexport default config;\n```\n\n### `namingConvention`\n\ntype: `NamingConvention`, default: `change-case-all#pascalCase`\n\nAllow you to override the naming convention of the output.\n\nThis option is compatible with [the one for typescript plugin](https://the-guild.dev/graphql/codegen/docs/config-reference/naming-convention#namingconvention). If you specify it for the typescript plugin, you must set the same value for graphql-codegen-typescript-fabbrica.\n\n```ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  config: {\n    namingConvention: 'change-case-all#lowerCase',\n  },\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      // ...\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      // ...\n    },\n  },\n};\nexport default config;\n```\n\n### `typesPrefix`\n\ntype: `string`, default: `''`\n\nPrefixes all the generated types.\n\nThis option is compatible with [the one for typescript plugin](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript#typesprefix). If you specify it for the typescript plugin, you must set the same value for graphql-codegen-typescript-fabbrica.\n\n```ts\nimport { CodegenConfig } from '@graphql-codegen/cli';\nconst config: CodegenConfig = {\n  schema: './schema.graphql',\n  config: {\n    typesPrefix: 'I',\n  },\n  generates: {\n    '__generated__/types.ts': {\n      plugins: ['typescript'],\n      // ...\n    },\n    './__generated__/fabbrica.ts': {\n      plugins: ['@mizdra/graphql-codegen-typescript-fabbrica'],\n      // ...\n    },\n  },\n};\nexport default config;\n```\n\n### `typesSuffix`\n\ntype: `string`, default: `''`\n\nSuffixes all the generated types.\n\nThis option is compatible with [the one for typescript plugin](https://the-guild.dev/graphql/codegen/plugins/typescript/typescript#typessuffix). If you specify it for the typescript plugin, you must set the same value for graphql-codegen-typescript-fabbrica.\n\n## Troubleshooting\n\n### `error TS7022: '<Type>Factory' implicitly has type 'any' because ...`\n\nCreating a circular type with [Associations](#build-mock-data-of-related-types-aka-associations) may cause compile errors.\n\n```ts\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Book-${seq}`),\n    title: dynamic(({ seq }) => `ゆゆ式 ${seq}巻`),\n    author: dynamic(({ seq }) => AuthorFactory.build()),\n  },\n});\nconst AuthorFactory = defineAuthorFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Author-${seq}`),\n    name: dynamic(({ seq }) => `${seq}上小又`),\n    books: dynamic(({ seq }) => BookFactory.buildList()),\n  },\n});\n```\n\n```console\n$ npx tsc --noEmit\nexample.ts:1:7 - error TS7022: 'BookFactory' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\n\n1     const BookFactory = defineBookFactory({\n            ~~~~~~~~~~~\n\nexample.ts:8:7 - error TS7022: 'AuthorFactory' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.\n\n8     const AuthorFactory = defineAuthorFactory({\n            ~~~~~~~~~~~~~\n```\n\nThis error is due to the type of each field being cycled, making the type undecidable. To avoid this, you can pass `undefined` to any field.\n\n```ts\nconst BookFactory = defineBookFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Book-${seq}`),\n    title: dynamic(({ seq }) => `ゆゆ式 ${seq}巻`),\n    author: dynamic(({ seq }) => AuthorFactory.build()),\n  },\n});\nconst AuthorFactory = defineAuthorFactory({\n  defaultFields: {\n    id: dynamic(({ seq }) => `Author-${seq}`),\n    name: dynamic(({ seq }) => `${seq}上小又`),\n    // Pass `undefined` to avoid type being undecidable.\n    books: undefined,\n  },\n});\n```\n\n### `error TS2307: Cannot find module '@mizdra/graphql-codegen-typescript-fabbrica/helper' or its corresponding type declarations.`\n\nIncorrect values for the `moduleResolution` option in `tsconfig.json` cause compile errors.\n\n```json\n{\n  \"compilerOptions\": {\n    \"moduleResolution\": \"node\" // incorrect\n  }\n}\n```\n\n```console\n$ npx tsc --noEmit\n__generated__/1-basic/fabbrica.ts:7:8 - error TS2307: Cannot find module '@mizdra/graphql-codegen-typescript-fabbrica/helper' or its corresponding type declarations.\n\n7 } from '@mizdra/graphql-codegen-typescript-fabbrica/helper';\n         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n```\n\nTo resolve this error, set the value of `moduleResolution` to `Bundler`, `Node16` or `NodeNext`.\n\n```json\n{\n  \"compilerOptions\": {\n    \"moduleResolution\": \"Bundler\" // ok\n  }\n}\n```\n\n## License\n\nThis library is licensed under the MIT license.\n\nThe copyright contains two names. The first is [@mizdra](https://github.com/mizdra), author of graphql-codegen-typescript-fabbrica. The second is [@Quramy](https://github.com/Quramy), author of [prisma-fabbrica](https://github.com/Quramy/prisma-fabbrica).\n\nThe name of the author of prisma-fabbrica is written because graphql-codegen-typescript-fabbrica reuses some of prisma-fabbrica's code.\n","readmeFilename":"README.md"}