Note: I built this to play around with code patterns and abstractions not as a serious attempt at building a good framework. Please don't use it.
Framethework is a microservices framework built on top of NATS.
Using Framethework requires a NATS server. All examples assume a NATS server is already running unless otherwise specified.
This basic example shows how to create a small math
service to add two numbers
and call it locally.
import { action, Broker, Service } from '@keawade/framethework';
// Write a service
class MathService extends Service {
public name = 'math';
@action()
public add(params: { a: number; b: number }): number {
return params.a + params.b;
}
}
// Create a broker
const broker = new Broker();
// Register your service(s) with the broker
broker.registerService(MathService);
// Start the broker
broker
.start()
// Call the service
.then(() => broker.call('math.add', { a: 5, b: 3 }))
// Print the response
.then((res) => console.log('5 + 3 =', res))
.catch((err) => console.error(`Error occurred! ${err.message}`));
Framethework Runner is a utility that helps you run Framethework services. With
it you don't need to create a Broker instance. Instead you can simply call the
framethework-runner
with paths to your service class files and it will automatically
create a broker and load your services.
framethework-runner ./path/to/MyService.js
Check out the examples/
directory for some example services.
- Middlewares
- Not found errors
- API gateway
- Action JSON schema param validation
- OpenAPI docs generation from action params