1.2.4 • Published 2 months ago

@universal-packages/express-parameters v1.2.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Express parameters

npm version Testing codecov

universal-parameters as an express middleware.

Install

npm install @universal-packages/express-parameters

npm install express

Middleware

parameters([unionKind])

Unites request relevant attributes to set a Parameters object in the request to pass to the following handlers.

import { parameters } from '@universal-packages/express-parameters'
import express from 'express'

const app = express()

app.use(parameters())

Union kind

By default the parameters middleware will use the request body as a subject for the Parameters object, you can pass another strategy depending your needs. For example:

app.use(parameters('params-body'))
  • join Joins all body, params and query as the subject.

  • separate Builds a new object using all body, params and query within their own keys as the subject.

  • body Uses body as the subject.

  • body-params Joins body and params as the subject.

  • body-query Joins body and query as the subject.

  • query Uses query as the subject.

  • query-params Joins query and params as the subject.

  • params Uses params as the subject.

express params

In order for the middleware to access the params request object, it needs to be used as route handler.

import { parameters } from '@universal-packages/express-parameters'
import express from 'express'

const app = express()

app.get('/user/:id', parameters('join'), (request) => {
  console.log(equest.parameters.subject.id)
})

// > 1

express body

In order for the middleware to access the body request object, it needs to be previously parsed as json.

import { parameters } from '@universal-packages/express-parameters'
import express, { json } from 'express'

const app = express()

app.use(json())
app.use(parameters())
// > 1

Global methods

injectParameters(request: Request)

To only inject the parameters object into the request and don't behave as middle ware use this method. In case you are doing some custom middleware.

import { injectParameters } from '@universal-packages/express-parameters'
import express from 'express'

const app = express()

app.use((request, response, next) => {
  injectParameters(request)
  next()
})

// > 1

Typescript

This library is developed in TypeScript and shipped fully typed.

Contributing

The development of this library happens in the open on GitHub, and we are grateful to the community for contributing bugfixes and improvements. Read below to learn how you can take part in improving this library.

License

MIT licensed.

1.2.4

2 months ago

1.2.3

2 months ago

1.2.2

8 months ago

1.2.1

8 months ago

1.2.0

11 months ago

1.1.4

1 year ago

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.0

1 year ago