{"_id":"@dengzhaofun/egg-validate-joi","_rev":"1-a0002897e9af4b87217bb4f65f35ac94","name":"@dengzhaofun/egg-validate-joi","dist-tags":{"latest":"1.1.3"},"versions":{"1.1.3":{"name":"@dengzhaofun/egg-validate-joi","version":"1.1.3","description":"joi plugin for egg","eggPlugin":{"name":"validateJoi"},"keywords":["egg","eggPlugin","egg-plugin","joi","egg-validate-joi"],"dependencies":{"joi":"^13.4.0"},"devDependencies":{"autod":"^3.0.0","autod-egg":"^1.0.0","egg":"^2.0.0","egg-bin":"^4.3.0","egg-ci":"^1.8.0","egg-mock":"^3.13.0","eslint":"^4.11.0","eslint-config-egg":"^5.1.0","webstorm-disable-index":"^1.2.0"},"engines":{"node":">=8.0.0"},"scripts":{"test":"npm run lint -- --fix && egg-bin pkgfiles && npm run test-local","test-local":"egg-bin test","cov":"egg-bin cov","lint":"eslint .","ci":"egg-bin pkgfiles --check && npm run lint && npm run cov","pkgfiles":"egg-bin pkgfiles","autod":"autod"},"ci":{"version":"8, 9"},"repository":{"type":"git","url":"git+https://github.com/mosaic101/egg-validate-joi.git"},"bugs":{"url":"https://github.com/mosaic101/egg-validate-joi.git/issues"},"homepage":"https://github.com/mosaic101/egg-validate-joi#readme","author":{"name":"Jianjin Wu"},"license":"MIT","gitHead":"9b964d076642b679331f7b169139f22c38cdc8ff","_id":"@dengzhaofun/egg-validate-joi@1.1.3","_npmVersion":"6.4.1","_nodeVersion":"11.0.0","_npmUser":{"name":"dengzhaofun","email":"3328638734@qq.com"},"maintainers":[{"name":"dengzhaofun","email":"3328638734@qq.com"}],"dist":{"integrity":"sha512-/ESj5kmy3mbG2tc826wBpawlGi9lioazlac+/nulyXXjA2TDl9dWGvNi3J9SqTzf5lcRmwO6enmEenDktmVOVA==","shasum":"cdb620812c2736a491480420f7e46bfbedac1998","tarball":"https://registry.npmjs.org/@dengzhaofun/egg-validate-joi/-/egg-validate-joi-1.1.3.tgz","fileCount":7,"unpackedSize":11832,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcNwOJCRA9TVsSAnZWagAA4gwP/j86I+nGyY12OW69O7sL\ntIN2oFwG4NgVYyrrR++570jnVsWyYoHh6VL6EXttcNiT6cKG0sflJf2wPwUd\nMQUg1B9gbo4jIdeub8qYzH8k+nv/LMtpr/IKWsk1mQJkieeh4dSwvhs44uj/\ne/gRM2ysQvMYUtr/QXyU6cQrAvx1bTFYW34c0l0ixbefVmIz2sHW0M2IbA5V\nLiQox/HYuWpA+bdR/4WOOq71yvnUIUvicsaGOHNBk+q0WoD2yqXoyyVlcJeR\n3APE6NVTwCEkhA44srigoPQdaGsToZ5ZQDz5c1IwQ2lbJiFlHat8UO6ccJj2\nXjAFgtLXJnjbA27WE5cCnw8oiGYJDJIi2JZUazA6Ow4kmecR0n1XBPp9bkKy\nmuap++r24lIBkwnHQt3kp9GajKUXFST75ytZxxN8CEAGixPFziTR9+51e4HD\n6AFK+PkSV7hvqzziYEodxDpELkc+0lfe7n2V8TApyNqjeq6RLvkunhNI/uz3\nrRxsRGQUg1r/fm4ESYSBTZ6kHwR0x7dLow/Bu3kfL1B7wMQneDQ4CohZZm51\nOW4x75GPbUHXY1zOYQBq8r4gXr/7iIgSBWz5GZT0d01rzc7863+/u7Z8ObKu\nqzMqLBExlRgNZaRlP3RS1ITj9C0CCMWpGJJdh3YUzehMNc0Vq7n6SniS+Pdp\nHuNN\r\n=HpDx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZCTFHfO6TQ4Df7KIOmQVeXJ60Pk01zi+CoE77UcJm5AiEA9QPUfG9ux9pDFAIWzEptOtFVRPa0WA4tO3uU4h/RALQ="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/egg-validate-joi_1.1.3_1547109257156_0.2698972628583871"},"_hasShrinkwrap":false}},"time":{"created":"2019-01-10T08:34:16.965Z","1.1.3":"2019-01-10T08:34:17.277Z","modified":"2022-04-05T03:44:55.479Z"},"maintainers":[{"name":"dengzhaofun","email":"3328638734@qq.com"}],"description":"joi plugin for egg","homepage":"https://github.com/mosaic101/egg-validate-joi#readme","keywords":["egg","eggPlugin","egg-plugin","joi","egg-validate-joi"],"repository":{"type":"git","url":"git+https://github.com/mosaic101/egg-validate-joi.git"},"author":{"name":"Jianjin Wu"},"bugs":{"url":"https://github.com/mosaic101/egg-validate-joi.git/issues"},"license":"MIT","readme":"# egg-validate-joi\n\n[![NPM version][npm-image]][npm-url]\n[![build status][travis-image]][travis-url]\n[![Test coverage][codecov-image]][codecov-url]\n[![David deps][david-image]][david-url]\n[![Known Vulnerabilities][snyk-image]][snyk-url]\n[![npm download][download-image]][download-url]\n\n[npm-image]: https://img.shields.io/npm/v/egg-validate-joi.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/egg-validate-joi\n[travis-image]: https://img.shields.io/travis/eggjs/egg-validate-joi.svg?style=flat-square\n[travis-url]: https://travis-ci.org/eggjs/egg-validate-joi\n[codecov-image]: https://img.shields.io/codecov/c/github/eggjs/egg-validate-joi.svg?style=flat-square\n[codecov-url]: https://codecov.io/github/eggjs/egg-validate-joi?branch=master\n[david-image]: https://img.shields.io/david/eggjs/egg-validate-joi.svg?style=flat-square\n[david-url]: https://david-dm.org/eggjs/egg-validate-joi\n[snyk-image]: https://snyk.io/test/npm/egg-validate-joi/badge.svg?style=flat-square\n[snyk-url]: https://snyk.io/test/npm/egg-validate-joi\n[download-image]: https://img.shields.io/npm/dm/egg-validate-joi.svg?style=flat-square\n[download-url]: https://npmjs.org/package/egg-validate-joi\n\n<!--\nDescription here.\n-->\njoi plugin for egg.\n[joi-api](https://github.com/hapijs/joi/blob/v13.4.0/API.md).\n\n## Install\n\n```bash\n$ npm i egg-validate-joi --save\n```\n\n## Usage\n\n```js\n// {app_root}/config/plugin.js\nexports.validateJoi = {\n  enable: true,\n  package: 'egg-validate-joi',\n};\n```\n\n## Configuration\n\n[options-config](https://github.com/hapijs/joi/blob/v13.4.0/API.md#validatevalue-schema-options-callback)\n```js\n// {app_root}/config/config.default.js\nexports.validateJoi = {\n  options: {\n    abortEarly: false, // when true, stops validation on the first error, otherwise returns all the errors found. Defaults to true.\n  },\n};\n```\nor\n```js\nconfig.validateJoi = {\n  options: {\n    abortEarly: false,\n  },\n};\n```\nsee [config/config.default.js](config/config.default.js) for more detail.\n\n## Example\n\n// {app_root}/app/router.js\n```js\nmodule.exports = app => {\n  const { router, controller } = app;\n  router.post('/', controller.home.create);\n  router.post('/:id/topics', controller.home.createTopic);\n};\n```\n\n// {app_root}/app/controller/home.js\n```js\nasync create() {\n  const { ctx, app } = this;\n  const { Joi } = app;\n  const errors = ctx.validateJoi({\n    body: {\n      id: Joi.string().guid({ version: [ 'uuidv4' ] }).required(),\n      name: Joi.string().required(),\n      email: Joi.string().email().required(),\n    },\n  });\n  if (errors) console.log(errors);\n  // if errors exist, errors is object, for example:\n  // errors: {\n  //   'body.id': '\"id\" must be a valid GUID',\n  //   'body.name': '\"name\" must be a string',\n  //   'body.email': '\"email\" must be a valid email',\n  // }\n\n}\n\nasync createTopic() {\n  const { ctx, app } = this;\n  const { Joi } = app;\n  const errors = ctx.validateJoi({\n    params: {\n      id: Joi.string().guid({ version: [ 'uuidv4' ] }).required(),\n    },\n    body: {\n      topicId: Joi.string().guid({ version: [ 'uuidv4' ] }).required(),\n      name: Joi.string().required(),\n    },\n  });\n  if (errors) console.log(errors);\n  // if errors exist, errors is object, for example:\n  // errors: {\n  //   'params.id': '\"id\" must be a valid GUID',\n  //   'body.topicId': '\"id\" must be a valid GUID',\n  //   'body.name': '\"name\" must be a string',\n  // }\n}\n```\n<!-- example here -->\n\n## Add Rules\ndeveloping~~~\n\n## Questions & Suggestions\n\nPlease open an issue [here](https://github.com/mosaic101/egg-validate-joi/issues).\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}