What it is#
Most generators are safe to run once. The second run, over a tree somebody has edited, is where they clobber work, and where teams stop regenerating and start hand-maintaining. jostraca is built for the second run.
You declare the output as a tree of components, Project, Folder, File and Content, in ordinary code, with loops and conditionals and no template syntax. A define phase builds the whole tree in memory, and a build phase writes it, so jostraca knows every file before it touches the disk.
When a file already exists, you choose what happens: overwrite it, preserve the old version beside the new, present the new version as an alternative for a person to pick, write a diff, or three-way merge against the last generation so local edits survive. A protect marker keeps a region of a file out of the generator's reach entirely.
It is implemented in TypeScript and in Go with byte-identical output, and it writes every file the SDK generator emits, which is why regenerating an SDK over a customised tree gives you a merge rather than a surprise.
Install: npm install jostraca
In the voxgig organisation#
The repositories in this section pushed to in the 6 months before . The overview lists every active repository, by section.
| Repository | What it is | Package | Last push |
|---|---|---|---|
| build | Code generation for Voxgig system projects: reads the compiled model and writes deployment artifacts and application code with jostraca. | @voxgig/build |
The other sections#
- SDK GeneratorSix surfaces from one OpenAPI description.
- SDK Catalog600+ generated SDKs, as repositories you can read.
- aontuType-safe system definitions, as guardrails for coding agents.
- tabnasAn extensible parsing engine, and a compile target for agents.
- SenecaA microservices toolkit for Node.js.
- Voxgig toolsThe libraries inside every generated SDK, ported to every language the SDKs ship in.
Start with the code#
Every repository is public. Read it, fork it, or send a pull request. When a project needs to go further than its README, talk to us.