Registry / devops / graphql-static-binding

graphql-static-binding

JSON →
library0.9.3jsnpmunverified

graphql-static-binding (v0.9.3, last released 2019) generates static TypeScript binding files from a GraphQL schema, enabling type-safe query construction without runtime schema introspection. It is designed for use with graphql-tools and the static binding pattern popularized by Prisma. The package requires graphql ^0.11.0-0.13.0 and has not seen updates in years; users should consider alternatives like GraphQL Code Generator.

npm install graphql-static-binding
INSTALL
IMPORT
SIG · GRAPHQL-STATIC-BIN
G
graphql-static-binding
devopsjavascriptv0.9.3
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import generateBinding from 'graphql-static-binding'
const generateBinding = require('graphql-static-binding')
ESM default export; CommonJS require also works but is not recommended.
BindingGenerator
import { BindingGenerator } from 'graphql-static-binding'
import BindingGenerator from 'graphql-static-binding'
Named export; NOT the default export.
types
import type { Binding } from 'graphql-static-binding'
import { Binding } from 'graphql-static-binding'
Use 'import type' in TypeScript to avoid runtime inclusion; Binding is a type-only export.

Generates a static binding object from a schema, allowing type-safe query string construction with arguments and selection set.

import { makeExecutableSchema } from 'graphql-tools'; import generateBinding from 'graphql-static-binding'; const typeDefs = ` type Query { user(id: ID!): User } type User { id: ID! name: String } `; const resolvers = { Query: { user: (_, { id }) => ({ id, name: 'Alice' }), }, }; const schema = makeExecutableSchema({ typeDefs, resolvers }); const binding = generateBinding(schema); // Now binding.query.user({ id: '1' }) returns a selection set string const query = binding.query.user({ id: '1' }, '{ id name }'); console.log(query); // Output: query { user(id: "1") { id name } }
Debug
Known issues
breakinggraphql-static-binding only supports graphql versions 0.11.0 through 0.13.0. Using graphql 14+ will cause errors.
fix
Downgrade graphql to ^0.13.0 or use an alternative library like graphql-code-generator.
affects: >=0.14.0
deprecatedThe package has not been updated since 2019 and relies on outdated graphql-tools APIs.
fix
Migrate to GraphQL Code Generator or other modern tools.
affects: >=0.9.0
gotchaThe generated binding must be used with the same schema version it was generated from; schema mismatches cause runtime errors.
fix
Re-generate bindings whenever the schema changes.
affects: >=0.9.0
gotchaDefault export generateBinding returns a function, not a class. Attempting to use 'new generateBinding(schema)' will throw.
fix
Call generateBinding(schema) without new.
affects: >=0.9.0
Errors
Common errors & fixes
TypeError: graphql_1.isAbstractType is not a function
graphql version mismatch; graphql 14+ removed isAbstractType.
fix
Install graphql@0.13.0: npm install graphql@0.13.0
Cannot read property 'fields' of undefined
Schema passed to generateBinding is invalid or incomplete.
fix
Ensure schema is built with makeExecutableSchema and contains valid type definitions.
Cannot find module 'graphql/utilities/schemaPrinter'
graphql 15+ restructured module paths; graphql-static-binding expects older graphql.
fix
Use graphql@0.13.0 or switch to an alternative.
Upgrade
Version history
0.9.3latest on npm
Audit
Dependencies
graphqlrequiredpeer dependency required for schema processing
Agent activity
6 hits · last 30 days
node
6
Resources
graphql-static-binding — npm install graphql-static-binding · libregistry