{"_id":"@blackcater/merge","_rev":"3-d97505e914cb191cc992ef420dbbde7d","name":"@blackcater/merge","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@blackcater/merge","version":"1.0.0","description":"对象合并","main":"dist/merge.js","browser":"dist/merge.umd.js","module":"dist/merge.es.js","jsnext:main":"dist/merge.es.js","repository":{"type":"git","url":"git+https://github.com/blackcater/merge.git"},"author":{"name":"blackcater","email":"blackcater2015@gmail.com"},"license":"MIT","files":["dist"],"private":false,"scripts":{"dev":"rollup -c rollup.config.js -w","pro":"rollup -c rollup.config.js","lint":"eslint --fix '{src,test}/**/*.js'","prettier":"prettier --write '{src,test}/**/*.js'","test":"jest -c jest.config.json","test:watch":"jest -c jest.config.json --watch","test:coverage":"jest -c jest.config.json --coverage","coveralls":"cat ./coverage/lcov.info | coveralls","precommit":"lint-staged"},"devDependencies":{"babel-core":"^6.26.0","babel-jest":"^22.4.1","babel-preset-env":"^1.6.1","coveralls":"^3.0.0","eslint":"^4.18.1","eslint-config-uber-es2015":"^3.1.2","husky":"^0.14.3","jest":"^22.4.2","lint-staged":"^7.0.0","prettier":"^1.10.2","rollup":"^0.56.3","rollup-plugin-babel":"^3.0.3"},"gitHead":"57ad037e9dbe4b6bdd138cb5c9a529f03bf77856","bugs":{"url":"https://github.com/blackcater/merge/issues"},"homepage":"https://github.com/blackcater/merge#readme","_id":"@blackcater/merge@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.6.0","_npmUser":{"name":"blackcater","email":"blackcater2015@gmail.com"},"dist":{"integrity":"sha512-/cwS4b6ehdl0Y3hAK1cxro7rfz4rw6tkVD0fzDhspth/Im4y4Q1dyKauk2IkBTR3vshrCr76UC0QMt+BRXSLuA==","shasum":"488dbd071aeb2e3b99d2b320158e3bd21d6bd955","tarball":"https://registry.npmjs.org/@blackcater/merge/-/merge-1.0.0.tgz","fileCount":6,"unpackedSize":26352,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHDsyZuPsyc3j7Ix8Np3+rnssTo2f5dwgU9vKa2mAuv5AiEAyyj9hdk61SPUpRRKYZfnzEYp7VGFYY9Ga2zeDHU3WeE="}]},"maintainers":[{"name":"blackcater","email":"blackcater2015@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/merge_1.0.0_1519704872326_0.041314368925979394"},"_hasShrinkwrap":false},"1.0.1":{"name":"@blackcater/merge","version":"1.0.1","description":"对象合并","main":"dist/merge.js","browser":"dist/merge.umd.js","module":"dist/merge.es.js","jsnext:main":"dist/merge.es.js","repository":{"type":"git","url":"git+https://github.com/blackcater/merge.git"},"author":{"name":"blackcater","email":"blackcater2015@gmail.com"},"license":"MIT","files":["dist"],"private":false,"scripts":{"dev":"rollup -c rollup.config.js -w","pro":"rollup -c rollup.config.js","lint":"eslint --fix '{src,test}/**/*.js'","prettier":"prettier --write '{src,test}/**/*.js'","test":"jest -c jest.config.json","test:watch":"jest -c jest.config.json --watch","test:coverage":"jest -c jest.config.json --coverage","coveralls":"cat ./coverage/lcov.info | coveralls","precommit":"lint-staged"},"devDependencies":{"babel-core":"^6.26.0","babel-jest":"^22.4.1","babel-plugin-transform-object-rest-spread":"^6.26.0","babel-preset-env":"^1.6.1","coveralls":"^3.0.0","eslint":"^4.18.1","eslint-config-uber-es2015":"^3.1.2","husky":"^0.14.3","jest":"^22.4.2","lint-staged":"^7.0.0","prettier":"^1.10.2","rollup":"^0.56.3","rollup-plugin-babel":"^3.0.3"},"gitHead":"2b5150933e8d2b8a45c32ff6d5dee757b82f361c","bugs":{"url":"https://github.com/blackcater/merge/issues"},"homepage":"https://github.com/blackcater/merge#readme","_id":"@blackcater/merge@1.0.1","_npmVersion":"5.6.0","_nodeVersion":"9.11.1","_npmUser":{"name":"blackcater","email":"blackcater2015@gmail.com"},"dist":{"integrity":"sha512-9EcMmxl+YBf3R+S5qz3Z+p0dBC4Ij+y4j4tF0w+cbz5WrMan1WzgstpMOx91wgRkZA1OmScgXNbUiE0G8xOz6Q==","shasum":"b594d97af2bef8fdb8df83b8092d4e01bd15d0a5","tarball":"https://registry.npmjs.org/@blackcater/merge/-/merge-1.0.1.tgz","fileCount":6,"unpackedSize":25359,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbM0jECRA9TVsSAnZWagAAqMkP/1ktOWUU5FNmQCBol/+y\n5gJAulOW39mGvunDt2+jhQLdqP0cQNcOlxv+2TBDo6YAgqYMlkXbxY4kXNl3\nqAgLtUDcEIBv+RKTTEQRQfhjSftiw6hoWDL0ZchilYtgp2rE79xbjhEZ2mjH\nZKYWU0zFgizhQMklMOWNaHG9Vw6MqkBfsm0O7u3vCUaIyDldazOdCsyQV+NW\nOeESw6ErT5jHEcPYFOujBZEFRASQA1M/Z6uX0V2lDn4zhXPlYy+hKlSAPbhW\nUZdfQkV1xmdMGWRZN4Xa2D41f6MOoDbpevEqKBYPh35J8gk9l/PbSOopcdAT\nM4h3Ymn5jlFWAIypGivIaSrlYN6GQkHN36hsUnw8NQUOuZbhNhAmJjlEinFK\nlOWshHgstGC9UkGs8bsJJ1REtHhG1b7PNB21n5FXmJW1s2LvKHacvIOlezEO\n4EgoaLXQmwx4M+g3dIvdugO0+UfYrHwael48YwRt6xEYLkVRPuo+2Bwja1Ox\nX0YHEZ82TzMY0UQjKZSWQ9qjSjS8DT3AM+0tUbVPx4LOq6YP+zDcsocxplPq\nVJoSh0oouquknh2Sy+vCrO9spKMqLqSK/hihdpjiuoMrj8s8TqL2GkHFMlYh\nIfYrswUiVlQ1uubC9F5u52s2iyChR6TwR2VFz3McBLL/7nqsFeAEFNI7FkWj\n/oKW\r\n=ZXH/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBeHpZsOC1b9ski8fLqeGWCNeLR3Qpkcd5J9s54axAVAIhALsaAwu4EhIm/sXT5Dwgf5TScAjRfK3sNBtcAAdkm+2s"}]},"maintainers":[{"name":"blackcater","email":"blackcater2015@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/merge_1.0.1_1530087620869_0.38890273971589884"},"_hasShrinkwrap":false}},"time":{"created":"2018-02-27T04:14:32.248Z","1.0.0":"2018-02-27T04:14:32.437Z","modified":"2022-04-04T19:20:04.839Z","1.0.1":"2018-06-27T08:20:20.966Z"},"maintainers":[{"name":"blackcater","email":"blackcater2015@gmail.com"}],"description":"对象合并","homepage":"https://github.com/blackcater/merge#readme","repository":{"type":"git","url":"git+https://github.com/blackcater/merge.git"},"author":{"name":"blackcater","email":"blackcater2015@gmail.com"},"bugs":{"url":"https://github.com/blackcater/merge/issues"},"license":"MIT","readme":"<h1 align=\"center\"><span style=\"color:  rebeccapurple;\">M</span>erge</h1>\n\nA util for merge object.\n\n[![CircleCI](https://circleci.com/gh/blackcater/merge/tree/master.svg?style=svg)](https://circleci.com/gh/blackcater/merge/tree/master)\n[![Coverage Status](https://coveralls.io/repos/github/blackcater/merge/badge.svg?branch=master)](https://coveralls.io/github/blackcater/merge?branch=master)\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fblackcater%2Fmerge.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fblackcater%2Fmerge?ref=badge_shield)\n\n<h2 align=\"center\">↓ Install</h2> \n\n```javascript\n$ yarn add @blackcater/merge\n```\n\n\n<h2 align=\"center\">↓ Usage</h2>\n\n```javascript\nimport { merge } from '@blackcater/merge'\n\nmerge(1, 2) // 2\n\nmerge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }\n\nmerge([1, 2], [3, 4]) // [3, 4]\n\nmerge([1, 2], [3, 4], { type: 'merge' }) // [3, 4]\n\nmerge([1, { a: 2 }], [3, { b: 4 }], { type: 'merge' }) // [3, { a: 2, b: 4 }]\n```\n\n\n<h2 align=\"center\">↓ API</h2>\n\n### new Merge(options)\n\nProject export a `Merge` class. You can pass an options to control the merge category.\n\nThe default option is bellow:\n\n```\n{\n  // options for merge array\n  array: {\n    // strategy for merging array. You can choose push/unshift/merge/replace\n    type: 'replace',\n    // target parameter must be an array\n    array: true,\n    // whether or not to filter the same element in source parameter\n    filter: false,\n    // whether or not to merge element, it works when `type` equals 'merge'\n    merge: false,\n    // whether null value is important, it works when `type` equals 'merge' and `merge` equals 'true'\n    nullable: true,\n    // whether undefined value is important, it works when `type` equals 'merge' and `merge` equals 'true'\n    undefinable: true,\n  },\n  // options for merge object\n  object: {\n    // target parameter must be an object\n    object: true,\n    // whether null value is important\n    nullable: true,\n    // whether undefined value is important\n    undefinable: true,\n  },\n}\n```\n\n### merge.merge(source, target, options)\n\nThe structure of `options` parameter is the same as Class Merge.\n\nThis is a wrapper of `merge.mergeArray` and `merge.mergeOject` function.\n\n```javascript\nimport Merge from '@blackcater/merge'\n\nconst merge = new Merge()\n\nmerge.merge(1, 2) // 2\n\nmerge.merge([1], [2]) // [2]\n\nmerge.merge({ a: 1 }, { b: 2 }) // { a: 1, b: 2 }\n```\n\n### merge.mergeArray(source, target, options)\n\nYou can pass an options. Below is the default value of options\n\n```\n{\n  // strategy for merging array. You can choose push/unshift/merge/replace\n  type: 'replace',\n  // target parameter must be an array\n  array: true,\n  // whether or not to filter the same element in source parameter\n  filter: false,\n  // whether or not to merge element, it works when `type` equals 'merge'\n  merge: false,\n  // whether null value is important, it works when `type` equals 'merge' and `merge` equals 'true'\n  nullable: true,\n  // whether undefined value is important, it works when `type` equals 'merge' and `merge` equals 'true'\n  undefinable: true,\n}\n```\n\n```javascript\nimport Merge from '@blackcater/merge'\n\nconst merge = new Merge()\n\nmerge.mergeArray([1, 2], 3) // 3\nmerge.mergeArray([1, 2], 3, { type: 'push' }) // [1, 2, 3]\nmerge.mergeArray([1, 2], 1, { type: 'push', filter: true }) // [2, 1]\nmerge.mergeArray([1, 2], [null, undefined], { type: 'merge' }) // [null, undefined]\nmerge.mergeArray([1, 2], [null, undefined], { type: 'merge', nullable: false }) // [1, undefined]\nmerge.mergeArray([1, 2], [null, undefined], { type: 'merge', nullable: false, undefinable: false }) // [1, 2]\n```\n\n### merge.mergeObject(source, target, options)\n\nYou can pass an options. Below is the default value of options\n\n```\n{\n  // target parameter must be an object\n  object: true,\n  // whether null value is important\n  nullable: true,\n  // whether undefined value is important\n  undefinable: true,\n}\n```\n\n```javascript\nimport Merge from '@blackcater/merge'\n\nconst merge = new Merge()\n\nmerge.mergeObject({ a: 1 }, 3) // 3\nmerge.mergeObject({ a: 1 }, '1') // { 0: '1', a: 1 }\nmerge.mergeObject({ a: 1, b: 2 }, { a: 3, c: 4 }) // { a: 3, b: 2, c: 4 }\nmerge.mergeObject({ a: 1, b: 2 }, { a: null, b: undefined }) // { a: null, b: undefined }\nmerge.mergeObject({ a: 1, b: 2 }, { a: null, b: undefined }, { nullable: false }) // { a: 1, b: undefined }\nmerge.mergeObject({ a: 1, b: 2 }, { a: null, b: undefined }, { nullable: false, undefinable: false }) // { a: 1, b: 2 }\n```\n\n### Others\n\nFor convenience, project exports an instance of Merge.\n\n```javascript\nimport { merge, mergeArray, mergeObject } from '@blackctaer/merge'\n```\n\n<h2 align=\"center\">↓ LICENSE</h2>\n\n[MIT@blackcater](LICENSE)\n\n\n## License\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fblackcater%2Fmerge.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fblackcater%2Fmerge?ref=badge_large)","readmeFilename":"README.md"}