{"id":16239110,"url":"https://github.com/xtrinch/sails-pagination-middleware","last_synced_at":"2025-03-19T16:31:16.563Z","repository":{"id":57141523,"uuid":"146863991","full_name":"xtrinch/sails-pagination-middleware","owner":"xtrinch","description":"Sails 1.x pagination middleware or hook returning total count in a transformed JSON response","archived":false,"fork":false,"pushed_at":"2018-09-03T18:38:33.000Z","size":16,"stargazers_count":6,"open_issues_count":2,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T09:06:32.989Z","etag":null,"topics":["middleware","pagination","sails","sails-pagination","sails-pagination-hook","sails-pagination-middleware"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xtrinch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-31T08:28:11.000Z","updated_at":"2024-02-17T20:01:50.000Z","dependencies_parsed_at":"2022-09-03T07:40:24.125Z","dependency_job_id":null,"html_url":"https://github.com/xtrinch/sails-pagination-middleware","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtrinch%2Fsails-pagination-middleware","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtrinch%2Fsails-pagination-middleware/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtrinch%2Fsails-pagination-middleware/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtrinch%2Fsails-pagination-middleware/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xtrinch","download_url":"https://codeload.github.com/xtrinch/sails-pagination-middleware/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244463727,"owners_count":20456934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["middleware","pagination","sails","sails-pagination","sails-pagination-hook","sails-pagination-middleware"],"created_at":"2024-10-10T13:42:22.746Z","updated_at":"2025-03-19T16:31:16.180Z","avatar_url":"https://github.com/xtrinch.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![npm version](https://badge.fury.io/js/sails-pagination-middleware.svg)](https://badge.fury.io/js/sails-pagination-middleware)\n[![npm](https://img.shields.io/npm/dt/sails-pagination-middleware.svg)]()\n\n# sails-pagination-middleware\n\n## About\n\nMiddleware for sails.js for finding the total count by criteria, via a Django rest framework inspired transformed request. \n\nCriteria pagination / filtering is built in to Sails, with keywords `limit`, `skip`, `where`. This package only adds a totalCount field to aid with building page indicators. You could define your page size in your frontend application with the keyword `limit` and just adjust `skip` accordingly. Meaning you could implement all sorts of different pagination indicators with this system.\n\nExample of the transformed request to `/api/todos?skip=10\u0026limit=10\u0026where={\"title\":{\"contains\":\"test\"}}`:\n\n    {\n        \"results\": [{\n            /* results here */\n        }],\n        \"totalCount\": 80\n    }\n\nPackage follows the Sails initiative 'convention over configuration', so installing the middleware assumes, you would like to transform requests at all index endpoints. See section advanced usage for other options.\n\n## Use case example\n\nCheck out an use case example over at [vue-sails-todo](https://github.com/xtrinch/vue-sails-todo).\n\n## Basic Usage\n\n    npm install --save sails-pagination-middleware\n\nThen in your `config/http.js`, add `paginate` to first place in array:\n\n    middleware: {\n        paginate: require('sails-pagination-middleware'),\n        order: [\n          'paginate',\n          // ...\n         ]\n\n## Sails version support\nIt only supports __Sails 1.x+__\n\n## Advanced Usage\n\nYou can create a policy, say we called it `api/policies/paginate.js`\n\n    module.exports = require('sails-pagination-middleware').generate({});\n\nThen in `config/policies.js` you can specify which `find` call will get augmented with the count field.\n\n    UserController: {\n        'find': ['isLoggedIn', 'paginate'],\n    }\n\n## Extra Options\n\nThere are options that you can change, just call the `generate()` function\n\n        require('sails-pagination-middleware').generate({\n            // if you want to add/remove an action i.e. 'user/search' or whatever\n            // the array can contain a string for exact match or a regular expression for a pattern\n            // if you use this options, the array you use will override the default, it will NOT concat\n            // this is the default,\n            // it will match all the usual :model/find, :model/:id/:association/populate\n            actions: ['find', 'populate', /^.*\\/(find|populate)$/]\n\n            // if the .count() calls fails, to throw an error or not\n            silentError: false // default\n        }),\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtrinch%2Fsails-pagination-middleware","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtrinch%2Fsails-pagination-middleware","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtrinch%2Fsails-pagination-middleware/lists"}