0.2.0 • Published 7 years ago

modfun v0.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

modfun :cloud:

Moderate fun with Modular Functions: a fast no-dependencies function router for cloud functions.

var modfun = require('modfun')

var controller = {
  getUser = function(req, res) {
    var [ username ] = req.params
    ...
    res.status(200).json(user)
  }
}

var app = modfun(controller)
GET http://cloudfunction/project/getUser/[username]

Enhance with middleware and custom error handlers:

var modfun = require('modfun')
var morgan = require('morgan')
var cors = require('cors')
var jwt = require('express-jwt')

...

exports.app = modfun(
  {
    authenticate: authenticate,
    user: [authorize, getUser] // middleware preceding operation
  },
  {
    middleware: [logger], // global middleware that runs every time
    errorHandler: (err, req, res) => res.status(500).send(err.message) // custom error handler
  }
)

Easy to expose an existing module to Google Cloud Functions:

user-module.js

exports.get = (username) => {
  ...
  return user;
}
exports.setNickname = (username, nickname) => {
  ...
  return;
}

index.js

var modfun = require('modfun')
var myModule = require('./user-module')

exports.user = modfun(myModule, { mode: 'function' })

And apply commonly used middleware:

var modfun = require('modfun')
var morgan = require('morgan')
var cors = require('cors')
var jwt = require('express-jwt')
var controller = require('./service-controller')

exports.service = modfun(controller, [ morgan('tiny'), cors(), jwt(secret) ])

Enforce correct number of input arguments for your functions with the arity checker:

var modfun = require('modfun')

const app = modfun(
  {
    authenticate: authenticate, // /authenticate
    user: [authorize, modfun.arity(1), getUser], // /user/jdoe
    updatePIN: [authorize, modfun.arity(2), updatePIN] // /updatePIN/jdoe/9876
  }
);

Features

  • Basic routing to functions
  • Parameter parsing
  • Automatic HTTP reponse building
  • Connect/Express-like middleware support
  • Google Cloud Functions
  • Future AWS Lambda
  • Can act as a middleware on other Connect-based frameworks

Installation

$ npm install modfun

Or

$ yarn add modfun
0.2.0

7 years ago

0.1.4

7 years ago

0.1.3

7 years ago

0.1.2

7 years ago

0.1.1

7 years ago

0.1.0

7 years ago