As far as I know, there are only handful of frameworks doing this, e.g. blitz.js and frourio.
However, I know another easy way - Swagger/OpenAPI + typegen + Nodemon.
// nodemon.json
{
"restartable": "rs",
"execMap": {
"ts": "yarn ts"
},
"events": {
"restart": "yarn openapi || :"
},
"watch": [
"server/"
],
"env": {
"NODE_ENV": "development"
},
"ext": "ts"
}
// package.json
{
"scripts": {
"openapi": "wait-on tcp:$SERVER_PORT && curl -s http://localhost:$SERVER_PORT/api/doc/json -o ./assets/openapi.json && typegen ./assets/openapi.json > ./types/openapi.d.ts",
"ts": "ts-node -r tsconfig-paths/register -O '{\"module\":\"commonjs\",\"noImplicitAny\":false}'"
}
}
And typegen
is openapi-client-axios-typegen. (You can also try swaxios, but I failed to run it.)
With this approach, backend can be any programming languages that support OpenAPI or Swagger. Personally, I use fastify-swagger; but it can also be things like Python's FastAPI or Golang's Gin/Buffalo/Native.
Top comments (0)