yeps

1.1.1 • Public • Published

Yet Another Event Promised Server

Simple promised node http request-response handler

NPM

npm version Build Status Coverage Status Linux Build Windows Build

Dependency Status devDependency Status NSP Status

Known Vulnerabilities License GitHub stars GitHub forks GitHub issues Twitter

How to install

npm i -S yeps

How to use

app.js

const App = require('yeps');

const app = module.exports = new App();

app.then(async (ctx) => {
  ctx.res.statusCode = 200;
  ctx.res.setHeader('Content-Type', 'application/json');
  ctx.res.end('{"status":"OK"}');
});

app.catch(async (error, ctx) => {
  ctx.res.statusCode = 500;
  ctx.res.setHeader('Content-Type', 'application/json');
  ctx.res.end(JSON.stringify({ error }));
});

bin/www

#!/usr/bin/env node

const http = require('http');
const app = require('../app');

http
  .createServer(app.resolve())
  .listen(parseInt(process.env.PORT || '3000', 10));

package.json

"scripts": {
  "start": "node bin/www"
}

Breaking chain

app.then(async (ctx) => {
  ctx.res.statusCode = 200;
  ctx.res.setHeader('Content-Type', 'application/json');
  ctx.res.end('{"status":"OK"}');
  
  return Promise.reject();
}).then(async () => {
  // it won't work
}).catch(async () => {
  // it won't work
});

Using router

npm i -S yeps-router

app.js

const App = require('yeps');
const Router = require('yeps-router');

const app = module.exports = new App();
const router = new Router();

router.get('/').then(async (ctx) => {
  ctx.res.statusCode = 200;
  ctx.res.setHeader('Content-Type', 'application/json');
  ctx.res.end('{"status":"OK"}');     
});

app.then(router.resolve());

Using server

npm i -S yeps-server

bin/www

#!/usr/bin/env node
    
const server = require('yeps-server');

const app = require('../app');

server.createHttpServer(app);

Error handler

npm i -S yeps-error yeps-logger

app.js

const App = require('yeps');

const error = require('yeps-error');
const logger = require('yeps-logger');

const app = module.exports = new App();

app.all([
  error(),
  logger(),
]);

YEPS documentation

Package Sidebar

Install

npm i yeps

Weekly Downloads

4

Version

1.1.1

License

MIT

Last publish

Collaborators

  • evheniy.bystrov