This package has been deprecated

Author message:

This package has been moved under the @sliit-foss namespace and is now available at @sliit-foss/request-query-utils. As such, this package is deprecated and no longer maintained.

request-query-utils

1.0.9 • Public • Published

request-query-utils

A package to isolate filters and sorts from a given request's query parameters

Installation

# using npm
npm install request-query-utils

# using yarn
yarn add request-query-utils

Usage

# using require
const { getRequestFilters, getRequestSorts, getRequestQueryParams } = require("request-query-utils");

# using import
import { getRequestFilters, getRequestSorts, getRequestQueryParams } from "request-query-utils";

Example

  • Example request uri - ?filter[name]=Ciri&filter[age]=19&sort=-id&sort=height

const params = getRequestQueryParams({
  req, // node.js request object
});

console.log(params) // output: [{ key: 'filter[name]', value: 'Ciri' }, { key: 'filter[age]', value: '19' }, { key: 'sort', value: '-id' }, { key: 'sort', value: 'height' } ]

const filters = getRequestFilters({
  req, // node.js request object
});

console.log(filters) // output - [ { key: 'name', value: 'Ciri' }, { key: 'age', value: '19' } ]

const sorts = getRequestSorts({
  req, // node.js request object
});

console.log(sorts) // output - [ { key: 'id', value: -1 }, { key: 'height', value: 1 } ]

Additional Options

  • All functions can take in an addition boolean parameter returnObject which will return a single object with the merged values isolated from the function. The return type by default is an array.

  • For example, requests to above three functions with returnObject provided as true will result in the following outputs:

// getRequestQueryParams - { 'filter[name]': 'Ciri', 'filter[age]': '19', sort: '-id', 'sort-1652632797392': 'height'  }

// getRequestFilters - { name: 'Ciri', age: '19' }

// getRequestSorts - { id: -1, height: 1 }
  • The getRequestFilters function can take in the parameter mongooseSupport which will modify the filter object in certain ways to match a mongoose filter query:

  • For example, requests to above three functions with returnObject provided as true will result in the following outputs:

// Request uri - ?filter[name]=Ciri&filter[age]=19,20,21,22&sort=-id&sort=height

// getRequestFilters - { name: 'Ciri', age: { $in: ['19', '20', '21', '22'] } }

Package Sidebar

Install

npm i request-query-utils

Weekly Downloads

1

Version

1.0.9

License

MIT

Unpacked Size

10.9 kB

Total Files

9

Last publish

Collaborators

  • sliit.foss