@escueladigital/micro
Version:
Microservice manager for nodejs with kafka
39 lines (35 loc) • 1.09 kB
JavaScript
const { name } = require(`${process.cwd()}/package.json`)
const Koa = require('koa')
const koaJwt = require('koa-jwt')
const bodyParser = require('koa-bodyparser')
const {
db,
Logger: { logger, Reporter },
Pubsub,
JwtConfig,
} = require('./src')
const initialize = require('./src/load')
const commitOffsets = require('./src/offsets')
/* eslint-disable */
const checkParams = (port, secret) => {
if (!port || !secret) return 'error'
}
const app = new Koa()
module.exports = {
start: async (port, secret, googleKey) => {
checkParams(port, secret)
app.use(bodyParser({ jsonLimit: '1mb', textLimit: '1mb' })) // Max parcing size of data
app.use(koaJwt({ secret, passthrough: true })) // Jwt middleware
app.use(JwtConfig.middleware) // Get the token from header.
app.logger = logger(app, googleKey || undefined)
app.datasources = await db.connect(app.logger, Reporter)
app.name = name
const pubsub = new Pubsub(app.logger)
await pubsub.openConnection()
app.PubSub = pubsub
initialize(app, port)
},
app,
commitOffsets,
Reporter,
}