@bitovi/sequelize-querystring-parser

0.3.6 • Public • Published

sequelize-querystring-parser

This library builds on top of @bitovi/querystring-parser to transform CRUD-related querystrings into structured data for the Sequelize ORM.

Installation

npm install @bitovi/sequelize-querystring-parser

If you do not plan to use this library with Sequelize, please install @bitovi/querystring-parser.

Usage

const querystringParser = require("@bitovi/sequelize-querystring-parser");

Sort Parameters

References:

const result = querystringParser.parse("sort=-date,name");
console.log(result);
// {
//   orm: "sequelize",
//   data: {
//     order: [["date", "DESC"],["name","ASC"]]
//  },
//   errors: [],
// };

Pagination Parameters

References:

const result = querystringParser.parse("page[number]=1&page[size]=10");
console.log(result);
// {
//   orm: "sequelize",
//   data: {
//     offset: 0,
//     limit: 10
//  },
//   errors: []
// };

Fields Parameters

References:

const result = querystringParser.parse("fields[]=id,name");
console.log(result);
// {
//   orm: "sequelize",
//   data: {
//     attributes: ["id","name"]
//  },
//   errors: []
// };

Include Parameters

References:

const result = querystringParser.parse("include=pets,dogs");
console.log(result);
// {
//   orm: "sequelize",
//   data: {
//     include: [
//       { association: "pets", include: [] },
//       { association: "dogs", include: [] }
//     ]
//  },
//   errors: []
// };

Filter Parameters

References:

const result = querystringParser.parse("filter=and(any('age','10','20'),equals('name','mike'))");
console.log(result);
// {
//   orm: "sequelize",
//   data: {
//     where: {
//       [Symbol(and)] : [
//         {
//           age: {
//             [Symbol(in)]: [10, 20]
//           }
//         },
//         {
//           name: {
//             [Symbol(eq)]: "mike"
//           }
//         }
//       ]
//     }
//  },
//   errors: []
// };

Note: Database Validations should be done before or after passing the query to the library before the database call is made.

Note: The Symbol() calls use the Op imported from the Sequelize library, not the Javascript Symbol class.

Example

A more practical example on how to use this library in your project can be found here

Further Documentation

This library builds on @bitovi/querystring-parser. See its documentation for more on using querystring-parser.

Package Sidebar

Install

npm i @bitovi/sequelize-querystring-parser

Weekly Downloads

630

Version

0.3.6

License

MIT

Unpacked Size

44.6 kB

Total Files

15

Last publish

Collaborators

  • bmomberger-bitovi
  • janebitovi
  • kyle-n
  • bitovi-os
  • bitovi-core-os
  • mickmcgrath13
  • phillipskevin
  • tehfedaykin
  • rlmcneary2
  • mhaynie_bitovi
  • fabioemoutinho
  • christopherjbaker
  • justinbmeyer
  • cherif_b
  • alishouman