{"_id":"@digital-envision/sequelize-fqp","_rev":"2-35c0ed3b3ccce34d6823f7414d3e0897","name":"@digital-envision/sequelize-fqp","dist-tags":{"latest":"0.1.5"},"versions":{"0.0.1":{"name":"@digital-envision/sequelize-fqp","version":"0.0.1","description":"Filter Query Parser for Sequelize ORM","main":"dist/index.js","scripts":{"build":"tsc","dev":"nodemon src/index.ts","prepare":"husky install","test":"jest --watchAll --verbose"},"keywords":[],"author":"","devDependencies":{"@commitlint/cli":"^17.0.3","@commitlint/config-conventional":"^17.0.3","@types/jest":"^28.1.6","@types/lodash":"^4.14.182","@types/sequelize":"^4.28.14","@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","eslint":"^8.20.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","husky":"^8.0.1","jest":"^28.1.3","lint-staged":"^13.0.3","nodemon":"^2.0.19","ts-jest":"^28.0.7","ts-node":"^10.9.1","typescript":"^4.7.4"},"peerDependencies":{"moment":"^2.29.4","sequelize":"^6.21.3"},"dependencies":{"filter-query-parser":"^2.2.0","lodash":"^4.17.21"},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"types":"./dist/index.d.ts","gitHead":"1df9ceae096a61f0c8cda725e7e57688ec901136","_id":"@digital-envision/sequelize-fqp@0.0.1","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-cfg0e4JLqSNNPKhNfbe43bHx9eRn5+dkHGUhQ1/qMpNP9UI9G4ovzu42iarE3fS1wQWjidWJuF1QpvGyPrwbOA==","shasum":"2b84702fae9fd0994bec615691ae6ad41b64e39d","tarball":"https://registry.npmjs.org/@digital-envision/sequelize-fqp/-/sequelize-fqp-0.0.1.tgz","fileCount":39,"unpackedSize":43426,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDpHfT7bgklEHUCUsOedemGk1r5qiHpEfhCySt8qd4WQAIhAKpZfno9himYUJ7M0l2LcjrCpajzn2BLD2AV397R34vj"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4hThACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqKRg//Zf8fL53Kq/eim0uwhYJbDb2ArA40cprlgEl4sj0bmsgZmnvy\r\nznusaieWP+N5o5GQBbywiw8ioL3aaNZHUT8LmrIaqrM7bigW79Un98yifYMD\r\nrxnHU+ciUSB+Jku96zPLa7UScz6X6jYNYH9XKNTWJKsrw+NUI8bPyrdVMCGs\r\nTCVDGIez2e/IPzTjrH/wQ20+H1HcGnCHRK7yCb30U+QRJyMqzAQAj+cRKhye\r\nmWGFsTHRRPcftjVwzLmO+ZVFxDyUN8H1Z9LpdT7yWawMu9Eme0GYAjVB/vZ5\r\n3H+PHQCezH5HxFc4KQCvpFK7gDJzb7+nM0Uu3P7Scz+ifp6FMfcPit0uko9e\r\n63yxxaurP9Nx8sq6JAGlB6LeO0iCznYsA3eAK9GEDQ0GgPLlmbpeE6/y62Cj\r\npkS/7i6JbDRUnQE3pzC/vGkqKuX8Ox3AO1ZoCXbrVScaBH4Ljli0q/dL5Krb\r\nvU9gmZIrQuJogazXPCEp7KJRaO1gE2AQvQw23Xey365ZeOYGshG9SH23mRz1\r\nj6lGgeMPMEX10WmKb9L6ySNs+cv8FTvhdMGnBetyfuh63VE3gDeGn1UVcNE4\r\npJpTgiyL+XKKkDLLJ/xa08MQcrtb/24fSM+ksMaLxDoBQeQ29s+U+kY3qyN4\r\nuvonuKJQK5NidWX2YUyB8Rw+Z7bzD+BLycc=\r\n=9xM0\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"krsbx","email":"firdaus.sati51@gmail.com"},"directories":{},"maintainers":[{"name":"krsbx","email":"firdaus.sati51@gmail.com"},{"name":"developer-de","email":"developer@digitalenvision.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sequelize-fqp_0.0.1_1658983649583_0.6567916951565433"},"_hasShrinkwrap":false},"0.0.1-a":{"name":"@digital-envision/sequelize-fqp","version":"0.0.1-a","description":"Filter Query Parser for Sequelize ORM","main":"dist/index.js","scripts":{"build":"tsc","dev":"nodemon src/index.ts","prepare":"husky install","test":"jest --watchAll --verbose"},"keywords":[],"author":"","devDependencies":{"@commitlint/cli":"^17.0.3","@commitlint/config-conventional":"^17.0.3","@types/jest":"^28.1.6","@types/lodash":"^4.14.182","@types/sequelize":"^4.28.14","@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","eslint":"^8.20.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","husky":"^8.0.1","jest":"^28.1.3","lint-staged":"^13.0.3","nodemon":"^2.0.19","ts-jest":"^28.0.7","ts-node":"^10.9.1","typescript":"^4.7.4"},"peerDependencies":{"moment":"^2.29.4","sequelize":"^6.21.3"},"dependencies":{"filter-query-parser":"^2.2.0","lodash":"^4.17.21"},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"types":"./dist/index.d.ts","gitHead":"a37e2f3e49e9a755a13bcc4de154394a6437f77d","_id":"@digital-envision/sequelize-fqp@0.0.1-a","_nodeVersion":"16.15.0","_npmVersion":"8.5.5","dist":{"integrity":"sha512-AvBklN8GjVDaMwHVhGdzve3sRko1Fs9ks8QqXzp2TSFOZshQzWdDieYTOU0HWhjjYbN++ybQe1N37q/MqORtLw==","shasum":"da908eee0152f9cec4c18536e8c2ac5604accb2b","tarball":"https://registry.npmjs.org/@digital-envision/sequelize-fqp/-/sequelize-fqp-0.0.1-a.tgz","fileCount":39,"unpackedSize":43435,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwqXSxEFl0bjCWVFgmz6ah4h+WOyA28daVQMIWKnKOywIgczkd9UPwkMSkTHKiE1SNzathZYAhjkEjy8ErdXdkiQg="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi4hatACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoK2g//TWmHE/jXrQAfnkgMtN+14zoOTR31S+fZcdWB/ZEZzqkRPz94\r\n08hPaqG6AKps402E5LriJ+/W2A0BbuB7lfD9imCcGiw1NEwJdxZ5r1eHJ95s\r\n5ObvBDvkTqVbHJVSRFW9Iow/+CIAeZU4RjujXLvnDIytjlkWwAOZtvj9LGov\r\nerzUHzSXPRTEFP2CrlEgVEXCOcavbfdqpjxRK22ojWXzPlDdjTcTXp2Y7g9O\r\nZNOVPm4XvNmRpcYTz4zaJyFRwhAxT2LPiO25w3EuMyOZl1TGrBXVWnkLojWV\r\nbIn1plWPaatx3Ssm1AU54aEM3XILH9M+VF4SgZxhd+p/lmKjZ6KzdmDhOvjY\r\nvBh/SK5mF0r09NzBHl6K8YTbeAl/E1qc9EULH35M/Q0QevLtwNOS9dupyit/\r\nup5oRh01sGgbiKwZUtTPg+UBDHSjuSAo+ozmiJevqWvJfbL9XYoh8l3vC6NF\r\nGMMIgLlL2peVvJHhEkL5ueI8I/v8SmQqWfHPf/hCiz61DBGQXbLVtSiR5b9r\r\nj+DiliCU3Lhku8nnfFcM4xnDGyYCsoNiqiqgKaHAdQNwf1xBWbq7fEQ9K5sD\r\nQ8zVzuZsgPXLWlW5H2qh5PS8gXDROjR5SQ4k0neJ30zhLhh834DqJ2Yw5/M1\r\nkhAlAu10BHXTkBpCc3vtxv069xvqeb25wS0=\r\n=HEDH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"krsbx","email":"firdaus.sati51@gmail.com"},"directories":{},"maintainers":[{"name":"krsbx","email":"firdaus.sati51@gmail.com"},{"name":"developer-de","email":"developer@digitalenvision.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sequelize-fqp_0.0.1-a_1658984109002_0.618865551879962"},"_hasShrinkwrap":false},"0.1.5":{"name":"@digital-envision/sequelize-fqp","version":"0.1.5","description":"Filter Query Parser for Sequelize ORM","main":"dist/index.js","scripts":{"build":"tsc","dev":"nodemon src/index.ts","prepare":"husky install","test":"jest --verbose","test:dev":"jest --watchAll --verbose"},"keywords":[],"author":"","devDependencies":{"@commitlint/cli":"^17.0.3","@commitlint/config-conventional":"^17.0.3","@types/jest":"^28.1.6","@types/lodash":"^4.14.182","@types/sequelize":"^4.28.14","@typescript-eslint/eslint-plugin":"^5.30.7","@typescript-eslint/parser":"^5.30.7","eslint":"^8.20.0","eslint-config-prettier":"^8.5.0","eslint-plugin-import":"^2.26.0","eslint-plugin-prettier":"^4.2.1","husky":"^8.0.1","jest":"^28.1.3","lint-staged":"^13.0.3","nodemon":"^2.0.19","ts-jest":"^28.0.7","ts-node":"^10.9.1","typescript":"^4.7.4"},"peerDependencies":{"moment":"^2.29.4","sequelize":"^6.21.3"},"dependencies":{"filter-query-parser":"^2.2.0","lodash":"^4.17.21"},"lint-staged":{"**/*":"prettier --write --ignore-unknown"},"types":"./dist/index.d.ts","gitHead":"38d668802cfcd11d933faa57a2f545f58f2337dd","_id":"@digital-envision/sequelize-fqp@0.1.5","_nodeVersion":"16.16.0","_npmVersion":"8.11.0","dist":{"integrity":"sha512-3hiIeUnF80fd91M80CvnYO4z93HFe05WV52bzdeUxlUCuxgz4ESWPh8YcxwqeBnYyZPznUFpDVyAodCJCV1raw==","shasum":"c642a6c5368aeef722badbbc5eb3f9889bdc2d13","tarball":"https://registry.npmjs.org/@digital-envision/sequelize-fqp/-/sequelize-fqp-0.1.5.tgz","fileCount":31,"unpackedSize":30912,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC1col2MxNHMfMbVitupQDqVZdNXhAOL/6gdG/LESD5DAiEA17RVs75+5DVjyRKbkrAcQ+V+iTgEbU5kLnbGDML2Lbk="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/I7iACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmoahw/9F8dcl2u6tT6XXuWvJK1/xhPGhckFRl1VE+vVMnHJ2xG6d4lv\r\n0oPKhN9vL3dv7UH4hxk1R+xdB5vx+TBDx3sDoY0hd/tEHgyS5b9on7TntOqN\r\nqTzTvR4+CC0Yg0j7VhXkfoL3gpFHBsyS0oeEbW+h8ktn1hxpbBEgdctHH4xK\r\n70qwnrNd/uNztYnu6cjAaC/Q9apAuLbqS9+n+E4FT9PrPvZn1y8p/YI2rJOF\r\nmkIMpNgqC9g+Nc6s6Nmd1o3NOjsrL/kJcdoiYNmoAu9jkT0slRLJqUBqnZDI\r\nfbeN8JUFx2uVU1scwdPC13RX7wx6nDp1qWf1pPnuVbyj0/2HynNyVh1F8m3O\r\n+kQikWwDuaipNJFqjnnRd1JATpNf5Vu6muaZJrGycwP1pTfWzC+kbjIfqjTp\r\nHogwEpL3VVx1Kn2rNz3z//7h+usRWGjNMknI++biAJPKfmHbZ1nmNFsycilG\r\nS1aRn3AldXV5gSlvflyz/tnQaPgJXSSWUWtbhzMOqM8DTkV7MjhzXhBUN6zi\r\n7TNh+015X474GmID5D6cG1M4XHBTKQB73+xiIkCufzW1iD5aIbXy+KOd7PsQ\r\nwm0vkm7T73+hStF/mepej0q1XrpA+QBbb8A/BtLUCe/2tXToqjJM6BH6L+s4\r\nQjH+X7/WdkNwGUmNfUe1mHNs7CJ0Plwj+q8=\r\n=Hp/x\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"developer-de","email":"developer@digitalenvision.com.au"},"directories":{},"maintainers":[{"name":"krsbx","email":"firdaus.sati51@gmail.com"},{"name":"developer-de","email":"developer@digitalenvision.com.au"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/sequelize-fqp_0.1.5_1660718817967_0.24869845020935766"},"_hasShrinkwrap":false}},"time":{"created":"2022-07-28T04:47:29.526Z","0.0.1":"2022-07-28T04:47:29.785Z","modified":"2022-08-17T06:46:58.234Z","0.0.1-a":"2022-07-28T04:55:09.123Z","0.1.5":"2022-08-17T06:46:58.118Z"},"maintainers":[{"name":"krsbx","email":"firdaus.sati51@gmail.com"},{"name":"developer-de","email":"developer@digitalenvision.com.au"}],"description":"Filter Query Parser for Sequelize ORM","keywords":[],"readme":"# Sequelize Filter Query Parser\n\nFilter Query Parser for Sequelize ORM\n\nUsing [filter-query-parser](https://github.com/VJD7/filter-query-parser/) as the base\n\n# How To Use\n\n1. Create a new Middleware that can be use for all routes e.g. `parserMw`\n\n- Javascript\n\n```js\n// Files :  parser.js\n\nconst sequelizeFQP = require('@digital-envision/sequelize-fqp');\n\nexports.queryParserMw = (req, res, next) => {\n  req.filterQueryParams = req.query.filters\n    ? sequelizeFQP(req.query.filters)\n    : {};\n  next();\n};\n```\n\n- Typescript\n\n```ts\n// Files :  parser.js\n\nimport sequelizeFQP from '@digital-envision/sequelize-fqp';\n\nexport const queryParserMw = (req, res, next) => {\n  req.filterQueryParams = req.query.filters\n    ? sequelizeFQP(req.query.filters)\n    : {};\n  next();\n};\n```\n\n2. Use the FQP Results in baseRepository\n\n- Javascript\n\n```js\n// Files : baseRepository.js\n\nexports.findAll =\n  (model) =>\n  (conditions, filterQueryParams = {}, options = {}) => {\n    /* {...} */\n\n    const rules = [{ ...filterQueryParams }];\n\n    /* {...} */\n\n    const where = { ...conditions };\n\n    if (where[Op.and]) {\n      where[Op.and] = [...where[Op.and], ...rules];\n    } else {\n      where[Op.and] = rules;\n    }\n\n    /* {...} */\n  };\n```\n\n- Typescript\n\n```ts\n// Files : baseRepository.ts\n\nexport const findAll =\n  (model) =>\n  (conditions, filterQueryParams = {}, options = {}) => {\n    /* {...} */\n\n    const rules = [{ ...filterQueryParams }];\n\n    /* {...} */\n\n    const where = { ...conditions };\n\n    if (where[Op.and]) {\n      where[Op.and] = [...where[Op.and], ...rules];\n    } else {\n      where[Op.and] = rules;\n    }\n\n    /* {...} */\n  };\n```\n","readmeFilename":"README.md"}