@graplix/codegen
v2.2.0
Published
Code generation toolkit and CLI for Graplix TypeScript helpers
Maintainers
Readme
@graplix/codegen
Generates TypeScript helpers from Graplix schema files.
CLI
npx @graplix/codegen ./schema.graplixWith mapper overrides:
npx @graplix/codegen ./schema.graplix ./schema.generated.ts --mapper user=./models#User --mapper repository=./models#RepositoryConfig files are also supported (cosmiconfig):
graplix.codegen.json|yaml|yml|js|cjs|mjs|ts|cts|mtsgraplix-codegen.config.json|yaml|yml|js|cjs|mjs|ts|cts|mtspackage.jsonwith"graplix-codegen"key
JSON Schema for editor auto-complete/validation:
https://unpkg.com/@graplix/codegen@latest/schema.json
Example (graplix.codegen.json):
{
"$schema": "https://unpkg.com/@graplix/codegen@latest/schema.json",
"schema": "./schema.graplix",
"output": "./schema.generated.ts",
"mappers": {
"user": "./models#User"
}
}CLI args override config values.
Generated API
The generated file exports a buildEngine async factory function bound to
your schema:
import { buildEngine } from "./schema.generated";
const engine = await buildEngine({
resolvers: { ... }, // typed per your schema + mappers
resolveType: (value, context) => { ... },
});
const allowed = await engine.check({
user: myUser,
object: myRepo,
relation: "owner",
context: {},
});Programmatic API
import { generateTypeScript, generateTypeScriptFromFile } from "@graplix/codegen";