Generate various boring parts of your server
npm install @compas/code-gen---
Code generators for routers, validators, SQL queries, API clients and more. Take
a look at the documentation.
Compas is in maintenance mode. The packages will be maintained for the
foreseeable future. New features might be added, but some will also be dropped
in favor of other ecosystem-available libraries. Please don't start new projects
using Compas.
``js
mainFn(import.meta, main);
async function main() {
const app = new App();
const T = new TypeCreator("post");
const R = T.router("/post");
app.add(
new TypeCreator("database")
.object("post")
.keys({
title: T.string().searchable(),
body: T.string(),
})
.enableQueries({ withDates: true }),
T.crud("/post").entity(T.reference("database", "post")).routes({
listRoute: true,
singleRoute: true,
createRoute: true,
updateRoute: true,
deleteRoute: true,
}),
);
await app.generate({
outputDirectory: "./src/generated/application",
dumpStructure: true,
dumpApiStructure: true,
dumpPostgres: true,
enabledGenerators: ["validator", "router", "sql", "apiClient"],
});
}
`
`js
mainFn(import.meta, main);
async function main() {
const app = new App({ verbose: true });
const fromRemote = await loadApiStructureFromRemote(
Axios,
"https://some.compas.powered.backend",
);
app.extend(fromRemote);
await app.generate({
outputDirectory: "./src/generated",
isBrowser: true,
enabledGenerators: ["type", "apiClient", "reactQuery"],
});
await spawn("yarn", ["format"]);
}
``