{"_id":"@yaacovcr/transform","_rev":"9-ffbeb1508b921396025c02eb1b60c9eb","name":"@yaacovcr/transform","dist-tags":{"latest":"0.0.8"},"versions":{"0.0.0":{"name":"@yaacovcr/transform","version":"0.0.0","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.0","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"99d04d4453ee11bdd57eb4ce0422ea63428d5662","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.0.tgz","fileCount":64,"integrity":"sha512-fdoo9ZRNKhmU4T/emuz4dVcbUGstuABaSrjykLjtvkZpD3o19Se4noVFAElsU1AYw33TI+JIvSEanNXO2n6+1Q==","signatures":[{"sig":"MEYCIQCcklp7UYRh9JX6uKG2762wa/J71VGpGXOfhKS0bDnsywIhANXecd8r9kQo29eiMR1S/QAhmebszIsnfgjDVORwURQ/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100330},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"b007eeee1e0e2f672c3b55f8ae74604c052917e0","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"graphql":"^17.0.0-alpha.8"},"publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.0_1740321820715_0.910491118190621","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@yaacovcr/transform","version":"0.0.1","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.1","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"40972f6b8e5dd3bfbfc417f725d552b4bafaf1bc","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.1.tgz","fileCount":64,"integrity":"sha512-3tb21AsslkpO3Xpy4Zn3pYiFiTOzv9jN30I8+wq63LwhvNizL3XEhJ6GDza8Vsj94tyGzW5AKKpNw28PNPVkag==","signatures":[{"sig":"MEUCICju6/ivFVmQH9wESPyR2TT2pype92eDKli8HxJAceN2AiEA6jNwdpTntZdG3DSb6OZbABMJJA7gjYoXJ2EWP28IAIw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100330},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"9c004aeee5a5a55d0944a7fc58732187240cd6a9","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.13.1","dependencies":{"graphql":"^17.0.0-alpha.8"},"publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.1_1740323517186_0.357796301752054","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@yaacovcr/transform","version":"0.0.2","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.2","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"71056462796692b300e33d5c67ee95222dbe6afd","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.2.tgz","fileCount":114,"integrity":"sha512-7QENiaeSFMcd45c05FGpEZkKIPhr0lJOK9sf+u1HsS2/kRqVvQJc7go2Fo+jPp5zZZf1LN/JKJ4yD2E1iIStTw==","signatures":[{"sig":"MEQCIDyseDlbL8tmSESPoMvCemJICVjx5c41gJizcgegYo/lAiAtnT8TBkLH+WvSYrwOKe6yNSaq9UZGrAalVjTFVcjgqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":343697},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"76054c1867fb63c7aece00d4f03417161a50e188","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"graphql":"^17.0.0-alpha.8"},"publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.2_1741609451088_0.2601518927688493","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@yaacovcr/transform","version":"0.0.3","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.3","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"563f7189ac17de979e4d930cab29a66c570a9820","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.3.tgz","fileCount":169,"integrity":"sha512-EuhLMbbrCwiT8zczOa/M/9sh+ewmpgq8U06IIH8btuaBfPYQmHjsSulJSCG37eUy4c7tI1SwpeGeKHxP2vcz2A==","signatures":[{"sig":"MEUCIDQ4LeDbFwVNIrKAfWM451eb7W5aWRdHJdYhtor1rNkcAiEA8Oxs8YnTjvnrw7z3HbKg5le8ZAhncNPORR30wwGPByc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":554846},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"033d0b2c9d994ed68c010aa9a25d6b64bda0f677","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"graphql":"^17.0.0-alpha.8"},"publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.3_1742818524240_0.1483313197758238","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@yaacovcr/transform","version":"0.0.4","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.4","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"ea60b650d7015c5874a36ad73ae189b8beb327ed","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.4.tgz","fileCount":169,"integrity":"sha512-6M94oGK8iSZGYKnNbiqRMDZJ8kPmyZJq3cZzwLSb5snY0RPDNnJNJWWgBceKJkwgnxsikOIkU/kdjv3NhfssBA==","signatures":[{"sig":"MEUCIHPI7UoTjE3oDa0HetOlkvlSQvZRv5Dy91UfbDa/dpAwAiEA5y7n6dG2J35nn4txHdgPSk+lEjwiNeCqU9x2mKHAAxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":567400},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"08260681a2722475d0530d8d5e82d488e8e8cc75","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"peerDependencies":{"graphql":"^17.0.0-alpha.8"},"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.4_1742888547662_0.8451013575891153","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@yaacovcr/transform","version":"0.0.5","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.5","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"35e0f44770b65f1ec447bbf9284aeff662744344","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.5.tgz","fileCount":169,"integrity":"sha512-+kx7PpBJhZDil/d1lQgI8W3IbJ5N1zNhZrjnjbKV8oRaVqH0RlljaCgzGuq3ChLT13FtRTRCNhUVKw/y29OjWw==","signatures":[{"sig":"MEYCIQCgY8/B39fwHVcD7YgoFeAAtbRXKHRqziqFxw47nCgdLQIhALZyiR3PAzs24AY7QZ8Bp7r3YqRIjXanWCsI93DKOPhU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":586628},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"4b4775c2223d2daf561c779695dfd553d5b37efa","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"peerDependencies":{"graphql":"^17.0.0-alpha.8"},"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.5_1743106595944_0.588737471579865","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@yaacovcr/transform","version":"0.0.6","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.6","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"7f53a2b10de2a4ac6612c643fb9cbe20f23db156","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.6.tgz","fileCount":189,"integrity":"sha512-mIX/NujVvTth7bhYlCccjv/HEzFLL5SPosnVeduyZGRZdnh9YP6A0oo50OKmTz+F8uA74BsRbUGAMJIO1ElhuQ==","signatures":[{"sig":"MEUCIF701tTBUjQCCjd10idBp7FJXnkpw76wCccLBgdbcR6ZAiEAzbcGl5C84u21Lp6hNejdTWJkqMdUPrUX14KMYFyqrZo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":652617},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"55442e3678b03f074a83e9ca6f57e562a7f065c5","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"peerDependencies":{"graphql":"^17.0.0-alpha.8"},"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.6_1745921469170_0.8508917598868107","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@yaacovcr/transform","version":"0.0.7","keywords":["graphql","transform","transformer","result","incrmeental"],"license":"MIT","_id":"@yaacovcr/transform@0.0.7","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"dist":{"shasum":"dae14e9a117d1f705ab22a52513084b330a50d8b","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.7.tgz","fileCount":199,"integrity":"sha512-xLiBijQx9jgqyJq3xoI/uh70B9O/Hp6dvE4YMMVKEFZFkqmJlM68sm8jjQRwqJOY2UJf7XL8CtzIv7T6BZdZ0g==","signatures":[{"sig":"MEQCICkJYjCfOjr6Hd5dZwLc7GSWksFYHkdD8JeN+U6/MDMpAiAg7J/lpmMZm1YQ3CFlNDfpjIBNQJoLP1vmbVez9cM4qg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":723079},"main":"index","types":"./index.d.ts","module":"index.mjs","engines":{"node":"^18.14.0 || >=19.7.0"},"gitHead":"f7492f8d92cd445e71179ae05f9eccae3088bc06","_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"repository":{"url":"git+https://github.com/yaacovCR/transform.git","type":"git"},"_npmVersion":"10.9.2","description":"A set of tools for transforming GraphQL results.","directories":{},"sideEffects":false,"_nodeVersion":"22.15.0","publishConfig":{"tag":"alpha"},"typesVersions":{"*":{"*":["NotSupportedTSVersion.d.ts"]},">=4.4.0":{"*":["*"]}},"_hasShrinkwrap":false,"peerDependencies":{"graphql":"^17.0.0-alpha.8"},"_npmOperationalInternal":{"tmp":"tmp/transform_0.0.7_1746641173153_0.44464761090268445","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@yaacovcr/transform","version":"0.0.8","description":"A set of tools for transforming GraphQL results.","license":"MIT","typesVersions":{">=4.4.0":{"*":["*"]},"*":{"*":["NotSupportedTSVersion.d.ts"]}},"sideEffects":false,"homepage":"https://github.com/yaacovCR/transform","bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"repository":{"type":"git","url":"git+https://github.com/yaacovCR/transform.git"},"keywords":["graphql","transform","transformer","result","incrmeental"],"engines":{"node":"^18.14.0 || >=19.7.0"},"peerDependencies":{"graphql":"^17.0.0-alpha.8"},"publishConfig":{"tag":"alpha"},"main":"index","module":"index.mjs","_id":"@yaacovcr/transform@0.0.8","gitHead":"0280a0016a491f9c067912c4875bda55fb642a53","types":"./index.d.ts","_nodeVersion":"22.15.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-nMcIDcS9b8f9NyMRShc75FPZgNpJHN5VK9ilJMf85ICOW6qNwEvFqYzuykrXp4eYC4b6RXZehbokHCB1rUF9Cg==","shasum":"91e54e1e1931b7ed55639e4eacf2153866c5e42a","tarball":"https://registry.npmjs.org/@yaacovcr/transform/-/transform-0.0.8.tgz","fileCount":204,"unpackedSize":761796,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFMs0IfFJ/0XZldokcUUn+nmX9o0UqwT+QhFsqUHk7CNAiEAmgEwdddxM3bwjSnYgNjNdHzcUmKqlCApoAevfx86Qek="}]},"_npmUser":{"name":"yaacovcr","email":"yaacovcr@gmail.com"},"directories":{},"maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/transform_0.0.8_1747126186941_0.1608170007844616"},"_hasShrinkwrap":false}},"time":{"created":"2025-02-23T14:43:40.614Z","modified":"2025-05-13T08:49:47.309Z","0.0.0":"2025-02-23T14:43:40.892Z","0.0.1":"2025-02-23T15:11:57.393Z","0.0.2":"2025-03-10T12:24:11.248Z","0.0.3":"2025-03-24T12:15:24.427Z","0.0.4":"2025-03-25T07:42:27.836Z","0.0.5":"2025-03-27T20:16:36.155Z","0.0.6":"2025-04-29T10:11:09.482Z","0.0.7":"2025-05-07T18:06:13.508Z","0.0.8":"2025-05-13T08:49:47.139Z"},"bugs":{"url":"https://github.com/yaacovCR/transform/issues"},"license":"MIT","homepage":"https://github.com/yaacovCR/transform","keywords":["graphql","transform","transformer","result","incrmeental"],"repository":{"type":"git","url":"git+https://github.com/yaacovCR/transform.git"},"description":"A set of tools for transforming GraphQL results.","maintainers":[{"name":"yaacovcr","email":"yaacovcr@gmail.com"}],"readme":"# @yaacovcr/transform\n\n## Installation\n\nUsing npm:\n\n```\nnpm install @yaacovCR/transform graphql@17.0.0-alpha.8\n```\n\nUsing yarn:\n\n```\nyarn add @yaacovCR/transform graphql@17.0.0-alpha.8\n```\n\nUsing pnpm:\n\n```\npnpm add @yaacovCR/transform graphql@17.0.0-alpha.8\n```\n\n## Overview\n\nThis library, primarily through its `transform()` export, provides several helpful functionalities for working with GraphQL results:\n\n- **Result Composition:** Combine GraphQL results, including incremental delivery payloads (`@defer`/`@stream`), from multiple downstream GraphQL services into a single unified result. (Note: Composition is currently under development and primarily functional for root fields.)\n- **Result Transformation:** Modify results using configurable transformers based on the leaf type, object field, or specific location within a GraphQL operation.\n- **Legacy Incremental Format Mapping:** Convert results from the modern incremental delivery specification to the legacy format used in earlier `graphql-js` versions.\n\nNotes:\n\n- When multiple transformer types are applied to the same field, they execute in the following order: leaf value transformer -> object field transformer -> path-scoped field transformer.\n\n- A separate `legacyExecuteIncrementally()` export is also available. It leverages the same underlying transformation logic but is specifically designed to provide backwards compatibility for the legacy incremental delivery format when interacting with a single GraphQL service (i.e., without composition).\n\n## Usage\n\n### Composition of GraphQL Results\n\nTo compose results from multiple GraphQL services, provide a `subschemas` array to `transform()`:\n\n```ts\nimport { transform } from '@yaacovCR/transform';\n\nconst transformed = await transform({\n  schema,\n  document,\n  variableValues,\n  subschemas: [\n    {\n      label: 'Subschema1',\n      subschema: new GraphQLSchema({ ... }),\n      executor: myExecutor1,\n    },\n    {\n      label: 'Subschema2',\n      subschema: new GraphQLSchema({ ... }),\n      executor: myExecutor1,\n    },\n  ],\n});\n```\n\n### Transformation of GraphQL Results\n\n## Configurable Leaf Transformers\n\nTo apply transformations to specific leaf types (scalars or enums), pass `leafTransformers` to `transform()`:\n\n```ts\nimport { transform } from '@yaacovCR/transform';\n\nconst transformed = await transform({\n  schema,\n  document,\n  variableValues,\n  subschemas,\n  leafTransformers: {\n    Color: (value) => (value === 'GREEN' ? 'DARK_GREEN' : value),\n  },\n});\n```\n\nThe signature is as follows:\n\n```ts\ntype LeafTransformers = ObjMap<LeafTransformer>;\n\ntype LeafTransformer = (\n  value: unknown,\n  type: GraphQLLeafType,\n  path: Path,\n) => unknown;\n```\n\n## Configurable Object Field Transformers\n\nTo apply transformations to specific fields within object types, pass `objectFieldTransformers` to `transform()`, namespaced by type name and field name:\n\n```ts\nimport { transform } from '@yaacovCR/transform';\n\nconst transformed = await transform({\n  schema,\n  document,\n  variableValues,\n  subschemas,\n  objectFieldTransformers: {\n    SomeType: {\n      someField: (value) => 'transformed',\n    },\n  },\n});\n```\n\nThe signature is as follows:\n\n```ts\ntype ObjectFieldTransformers = ObjMap<ObjMap<FieldTransformer>>;\n\ntype FieldTransformer = (\n  value: unknown,\n  field: GraphQLField,\n  path: Path,\n) => unknown;\n```\n\n## Configurable Path-Scoped Field Transformers\n\nTo apply transformations based on a field's specific location within the operation, pass `pathScopedFieldTransformers` to `transform()`. The keys are period-delimited paths reflecting the field structure in the operation (numeric list indices are omitted).\n\n```ts\nimport { transform } from '@yaacovCR/transform';\n\nconst transformed = await transform({\n  schema,\n  document,\n  variableValues,\n  subschemas,\n  objectFieldTransformers: {\n    'someType.someFieldNameOrAlias': (value) => 'transformed',\n  },\n});\n```\n\n### Legacy Incremental Delivery Format\n\nIf you need to interact with systems expecting the older incremental delivery format (from `graphql-js` pre-v17), you can enable conversion:\n\n```ts\nimport { transform } from '@yaacovCR/transform';\n\nconst result = await transform({\n  schema,\n  document,\n  variableValues,\n  subschemas,\n  legacyIncremental: true,\n});\n```\n\nAlternatively, if you are working with a single GraphQL service (no composition) and need the legacy format, the `legacyExecuteIncrementally()` function provides a dedicated interface:\n\n```ts\nimport { legacyExecuteIncrementally } from '@yaacovCR/transform';\n\nconst result = await legacyExecuteIncrementally({\n  schema,\n  document,\n  variableValues,\n  operationName,\n  rootValue,\n  contextValue,\n  fieldResolver,\n  typeResolver,\n  subscribeFieldResolver,\n  perEventExecutor,\n  enableEarlyExecution,\n  hideSuggestions,\n  abortSignal,\n});\n```\n\n### Changelog\n\nChanges are tracked as [GitHub releases](https://github.com/yaacovCR/transform/releases).\n\n### License\n\n@yaacovcr/transform is [MIT-licensed](./LICENSE).\n","readmeFilename":"README.md"}