JavaScript
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
tests
.editorconfig
.eslintrc
.gitignore
.istanbul.yml
.travis.yml
LICENSE
README.md
appveyor.yml
index.js
package.json

README.md

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