https://github.com/gingerich/mesa
A sensible component framework
https://github.com/gingerich/mesa
component composition microservice
Last synced: about 1 year ago
JSON representation
A sensible component framework
- Host: GitHub
- URL: https://github.com/gingerich/mesa
- Owner: gingerich
- License: mit
- Created: 2018-03-06T04:32:17.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2022-04-24T21:25:46.000Z (almost 4 years ago)
- Last Synced: 2025-01-29T18:25:16.734Z (about 1 year ago)
- Topics: component, composition, microservice
- Language: JavaScript
- Homepage:
- Size: 561 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 20
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Mesa
A sensible component framework for anything
## A Quick Example
```js
class Greetings extends Mesa.Component {
compose() {
return ({ msg }) => `${this.config.greeting} ${msg.name}!`
}
}
const greetingService = Mesa.createService()
greetingService.action(
{ act: 'greet' },
Greetings.spec({ greeting: 'Hello' })
)
greetingService
.call('greet', { name: 'World' })
.then(res => console.log(res))
// 'Hello World!'
```
## Transport Layer
Plug-and-play transport layer keeps your service transport independent.
```js
const layer = Transport.createLayer()
.protocol('tcp', TCP.transport())
.use(Serializers.JSON())
const transporter = layer.transporter(connect => {
connect.ingress.at('tcp://localhost:3000')
})
Mesa.createService()
.plugin(transporter.plugin())
.action('greet', Greetings.spec({ greeting: 'Hello' }))
transporter.connect().then(() => console.log('connected!'))
```