1.0.9 • Published 3 years ago

nxa v1.0.9

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

This projects was used in my project before Next.js 12 added support for middlewares, I'll leave this here just for fun now 😂

About

The purpose of this package is to help me prototype faster without wasting time writing countless boilerplate for Next.js api handlers.

Comes with support for hooks (beforeResponse, afterResponse, onError) to help you validate, check authentication and whatever you need.

You can also use conventience method to have a single file handling multiple http methods thus allowing you to write RESTful routes easily.

Installation

npm i nxa

Usage

// pages/api/users/index.js
const nxa = require("nxa");

export default nxa({
  // if handler method found it will be used for every request
  handler: (req, res) => res.end("OK"),

  // if {get,post,put,patch,delete} named method found it will be routed here
  get(req, res) {
    return res.json({ ok: 1 })
    
  },

  put(req, res) {
    // convenience use res.json under the hood and sets content-type to json
    return { ok: 1 }
  },
  
  // catch-all errors in your handlers
  onError(req,res,error) {
    // handler error and return
    return { message: "youwhatbro" }
  },

  // Executed serially in order
  beforeResponse: [
    validate,
    checkJwt,
    (req, res) =>{
    // exit before method handlers or just return empty to follow
    return "OK"
    
  }],

  // Fires when res emits "finish" event
  afterResponse: (req, res) => {
    // send some metrics?
  }
})

If you don't want nxa to route methods to named functions you can use a generic handler and check method on your own

// pages/api/users/index.js
const nxa = require("nxa");
export default nxa({
  handler(req, res) {
    if (req.method === 'GET') // Do what you need
  }
})

Options

nxa(options): AsyncFunction

fielddescription
handlerUniversal handler for all request on the file
{head,get,post,put,patch,delete}Convenience method to route http methods
beforeResponseArray of functions to execute before handling response
afterResponsefunction to execute on response finish
onErrorfunction called when there is an error in an handler

Contributing

Project is pretty simple and straight forward for what is my needs, but if you have any idea you're welcome.

This projects uses commitizen so be sure to use standard commit format or PR won't be accepted

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat(scope): some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Simone Corsi - @im_simonecorsi

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago