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