@keawade/framethework
TypeScript icon, indicating that this package has built-in type declarations

0.4.2 • Public • Published

Framethework

GitHub Workflow Status GitHub

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.

Usage

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

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.

Things I want to implement

  • Middlewares
  • Not found errors
  • API gateway
  • Action JSON schema param validation
  • OpenAPI docs generation from action params

Package Sidebar

Install

npm i @keawade/framethework

Weekly Downloads

4

Version

0.4.2

License

MIT

Unpacked Size

33.7 kB

Total Files

29

Last publish

Collaborators

  • keawade