{"_id":"@beliven/rb-data-provider-json-server","name":"@beliven/rb-data-provider-json-server","dist-tags":{"latest":"0.33.0"},"versions":{"0.33.0":{"name":"@beliven/rb-data-provider-json-server","version":"0.33.0","description":"A Restboard data provider for JSON REST server","main":"src/index.js","type":"module","scripts":{"test":"tap --disable-coverage --allow-empty-coverage"},"repository":{"type":"git","url":"git+https://github.com/restboard/rb-data-provider-json-server.git"},"keywords":["REST","JSON","server","data","provider","restboard"],"author":{"name":"Emanuele Bertoldi","email":"emanuele.bertoldi@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/beliven-it/rb-data-provider-json-server/issues"},"homepage":"https://github.com/beliven-it/rb-data-provider-json-server#readme","dependencies":{"cross-fetch":"^4.0.0"},"peerDependencies":{"@beliven/rb-core-module":"^0.32.0"},"devDependencies":{"eslint":"^8.48.0","tap":"^18.6.1"},"publishConfig":{"access":"public"},"_id":"@beliven/rb-data-provider-json-server@0.33.0","gitHead":"dcee40c60ee6d126121e30f7a8a7dfeeebe33e0c","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-1aECu+Cp9JXfctjWUACPIhUPrnNHA9DtJL3/GGehF/JINkCe/lpGz2G02lVUWcSN1/cBRrAOZT9ar7LMAPY78g==","shasum":"9719762967d35c508b53da8b69f74bd6e0d89e4c","tarball":"https://registry.npmjs.org/@beliven/rb-data-provider-json-server/-/rb-data-provider-json-server-0.33.0.tgz","fileCount":18,"unpackedSize":23440,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAvzFf8vxxZi6osG0l+7MIVhsLOCzQHroIob/leVlL6IAiEAoO3JPI46rBlHajmDoneq+1Izr7ZfiWQc53wohP2EzGs="}]},"_npmUser":{"name":"beliven.dev","email":"dev@beliven.com"},"directories":{},"maintainers":[{"name":"beliven.dev","email":"dev@beliven.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rb-data-provider-json-server_0.33.0_1744296434327_0.3566544821387765"},"_hasShrinkwrap":false}},"time":{"created":"2025-04-10T14:47:14.243Z","0.33.0":"2025-04-10T14:47:14.505Z","modified":"2025-04-10T14:47:14.813Z"},"maintainers":[{"name":"beliven.dev","email":"dev@beliven.com"}],"description":"A Restboard data provider for JSON REST server","homepage":"https://github.com/beliven-it/rb-data-provider-json-server#readme","keywords":["REST","JSON","server","data","provider","restboard"],"repository":{"type":"git","url":"git+https://github.com/restboard/rb-data-provider-json-server.git"},"author":{"name":"Emanuele Bertoldi","email":"emanuele.bertoldi@gmail.com"},"bugs":{"url":"https://github.com/beliven-it/rb-data-provider-json-server/issues"},"license":"MIT","readme":"# rb-data-provider-json-server\n\nA [Restboard](https://restboard.github.io/) data provider for JSON REST server\n\n[![Node.js CI](https://github.com/beliven-it/rb-data-provider-json-server/actions/workflows/node.js.yml/badge.svg)](https://github.com/beliven-it/rrb-data-provider-json-server/actions/workflows/node.js.yml)\n\n## Getting started\n\n```js\nimport createProvider from \"@beliven/rb-data-provider-json-server\";\n\nconst provider = createProvider(\"https://jsonplaceholder.typicode.com\");\n\nprovider\n  .getMany(\"posts\")\n  .then((posts) => console.log(posts))\n  .catch((err) => console.error(err));\n```\n\nAdditional options can be configured during the data provider construction:\n\n```js\nconst provider = createProvider(\"https://jsonplaceholder.typicode.com\", {\n  timeout: 3000,\n  retries: 5,\n  backoff: 300,\n});\n```\n\n## REST Dialect\n\n| Method       | API call                                 |\n| ------------ | ---------------------------------------- |\n| `getMany`    | `GET http://my.api.url/:resource`        |\n| `getOne`     | `GET http://my.api.url/:resource/:id`    |\n| `createOne`  | `POST http://my.api.url/:resource`       |\n| `updateOne`  | `PATCH http://my.api.url/:resource/:id`  |\n| `updateMany` | `PATCH http://my.api.url/:resource`      |\n| `deleteOne`  | `DELETE http://my.api.url/:resource/:id` |\n| `deleteMany` | `DELETE http://my.api.url/:resource`     |\n\n## Options\n\n| Name                  | Description                                           | Default     |\n| --------------------- | ----------------------------------------------------- | ----------- |\n| `timeout`             | The timeout (ms) for each single HTTP request attempt | `5000`      |\n| `retries`             | The number of attempts before failing                 | `3`         |\n| `backoff`             | The incremental delay (ms) between request attempts   | `500`       |\n| `client`              | A fetch-like HTTP client used to perform the requests | `fetch`     |\n| `tokenGetter`         | An async function to get the bearer token to be used  | `undefined` |\n| `contentTypeParser`   | A function used to parse the content type of the request payload (if any) | `(data) => 'application/json; charset=UTF-8'` |\n| `responseDataParser`  | A sync function to extract the payload from the response payload | `(payload) => payload?.data \\|\\| payload` |\n| `responseMetaParser`  | A sync function to extract the meta details from the response payload (e.g. pagination data) | `(payload) => payload?.meta \\|\\| {}` |\n| `responseErrorParser`  | A (a)sync function to extract the details from an error response | `(res) => res?.statusText \\|\\| res?.status` |\n| `querystringRenderer` | A function to render the request querystring | Provided `renderQuerystring` function |\n| `idempotentUpdate`    | If true, the `PUT` method will be used on update requests | `false`     |\n| `cache`               | An optional cache object to store request responses. Should implement the following API: `has(reqId)`, `get(reqId)`, `set(reqId,res)` | `undefined` |\n\n## Test\n\n```bash\nnpm test\n```\n\n## Contribute\n\nIf you want, you can also freely donate to fund the project development:\n\n[![Donate](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://paypal.me/EBertoldi)\n\n## Have you found a bug?\n\nPlease open a new issue on:\n\n<https://github.com/beliven-it/rb-data-provider-json-server/issues>\n\n## Acknowledgements\n\nThis project is inspired by:\n\n- [ra-data-json-server](https://github.com/marmelab/react-admin/tree/master/packages/ra-data-json-server)\n\n## License\n\nCopyright (c) Emanuele Bertoldi\n\n[MIT License](http://en.wikipedia.org/wiki/MIT_License)\n","readmeFilename":"README.md","_rev":"1-76b0b91d15f498ed42f1b3f3471db5c9"}