{"_id":"@creanet/records-set","_rev":"3-476f1f7d1f03db8b19b17dded43975b1","name":"@creanet/records-set","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@creanet/records-set","version":"1.0.0","description":"Set of records with one or more unique properties","main":"index.js","scripts":{"test":"node tests/index.js"},"repository":{"type":"git","url":"git@gitlab.creanet.sk:wikarski.milan/records-set.git"},"keywords":["record","set"],"author":{"name":"Milan Wikarski"},"license":"ISC","gitHead":"efb49b2ab2718929055d803c323893c43257bff1","_id":"@creanet/records-set@1.0.0","_npmVersion":"6.0.1","_nodeVersion":"9.5.0","_npmUser":{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"},"dist":{"integrity":"sha512-GBQyqgG6YtrS5yXFihtsmcSf4W2bj0cRYEX5p70zSZfkH3mScU1sr2qn6ddtRzWOOPOw53Z6uIs9OsHYasRtJQ==","shasum":"98463631fb05c16ab9941bf5a3166333c00b3658","tarball":"https://registry.npmjs.org/@creanet/records-set/-/records-set-1.0.0.tgz","fileCount":4,"unpackedSize":5985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciTJBCRA9TVsSAnZWagAAGgMP+waQ+Yyi06HcUCn7WMmO\nqZQjt/fH5AUM3gL6saN1OL1EAgMH336KxypGNfDVT+Jp2B6hyb69w20LItvH\n5P49ksWgr+niqKmJWWO9Cf3gBUXtIUKKuRHfTJYe++oJXBPlA5yOOj42Gon0\ntU5G0thTTCE7dmgmeUVw3ot0hjLuvr2zTfNM1ErXk3B8MYuAfEYj2jhrqhie\nGoFzBHfjqJrrsY77gj/+G7AcrSiQ6YMC9hlxs6jqSE4nLlRv/WKZuaoVVk79\nfotuEDiymOiynPsU/UbWwZxhe41uZldDHvNiV8x3acXnmr+K3pJI3zIw9IS9\nO+wbDQZtxDS9SQ6B3a70ezn0Z+Khjml8sc+UquQ2RG4mio4XRyFG+5VFUfdh\nz8I1cDgoQYIK8QnYwED6Hdt1VlSajYYjRW+phgamx5nG3+Tji3Z/oI5Sh2GY\nqovBXD7oN4oHH4h5W8a870aGtktQf3Kbf6PGq3eyD8dguNT1EatDQDLoHpzG\nfk7moLtRWlsgREao3F4CYor/N3aBUJF3Rye5KzWTyzXTiXOti0oOfCjRpkvR\nF7CNsnnfjAuymngRVKRQSxnuImNQAGPWrlhW3hTvOUOf8UJ9zs9TOc8F2c6e\nuRzmFdcE9tG6/AFfdx97pEIpRFkkTiAk60G/gmh2vtJggYTy4f8wePVCu0fT\nPRIS\r\n=wtc6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4EvfRVg4bwq5d4qMaT0ysf8VvNbWf6pWeF6KK0AQmawIgCbgtV3xY1NVe6ktdGj2biGw21JRQK27jAOuxCEbqkzQ="}]},"maintainers":[{"name":"hejty","email":"belak.lubos@gmail.com"},{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"},{"name":"keromudo","email":"marcel.odumorek@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/records-set_1.0.0_1552495166927_0.010584871022480291"},"_hasShrinkwrap":false},"1.0.1":{"name":"@creanet/records-set","version":"1.0.1","description":"Set of records with one or more unique properties","main":"index.js","scripts":{"test":"node tests/index.js"},"repository":{"type":"git","url":"git@gitlab.creanet.sk:wikarski.milan/records-set.git"},"keywords":["record","set"],"author":{"name":"Milan Wikarski"},"license":"ISC","gitHead":"20c9a7733c5f18384a4eca0a2c5439fcd76c394b","_id":"@creanet/records-set@1.0.1","_npmVersion":"6.0.1","_nodeVersion":"9.5.0","_npmUser":{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"},"dist":{"integrity":"sha512-x+yaZW2Vayox0GOGQTDExS7xKgFdPpGd1hZcgvPObWLr5voMOJkcV9jWVxJB0k0csEife46h2fBJjiUja82bbA==","shasum":"28ea10d8184346d15fba68ab06d5935752909004","tarball":"https://registry.npmjs.org/@creanet/records-set/-/records-set-1.0.1.tgz","fileCount":4,"unpackedSize":5985,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJciTKhCRA9TVsSAnZWagAAj5MP/jdwC3Fd5Rqei+rcJ/4F\nwXySatnSNW7jE7AxbLDBx9y+u5lzydqHkdkrq/nlHA+f+i5iGex328OOU+Lr\n+WixjHVjtcKjr75QfRa5w+jX3/SJ4I5uUDsfuTVPQHWp8aRBkg9xRF05dgBl\nWUeSzlt1fv17Cvy7+FCjgP5Z3LDl9aRO/xtgiq/rA0oF/fYOmnJNVBaWR7Ue\ni1EEDPUd9XSbj9d18hZIA7G9nO5r04GehfUQS7CMmt3Ez4/odnv1WF8ULzYH\nXVgO5kNmQOsaz+J3z2BFiQUhb6rYZLQ8daj6dNZtdiEXmS19APE/0FYtzdps\nJ3dOeCw8+qFIAdke2gQK8RjeD5GU46hJChNJmZoW8LOmK0ShNpYL+mFRSi0N\nHd/puHJN2TJgd8Em0o5Zu6rVXS9E3M2Yz4UZyknqdkAHihBOf0L0mD0vE4IW\n5IBhTUP4WAhc8ZVl0IOWdTEht/8LtDyAuk9YPsDGLFxf7DNTgvANRn3pKB88\nrBYXi3iIIQc7VRR6SUYoAJPRd4mIJHjRo+bfVvjtbL8smYv8k6fVm+VBqEn7\nUxlHPO1P32hEiJM5tXr8gePYCg72w2BjUw1DnPuNMSJwJvv6PyZ7gzRAWXe7\n2bZPum5T6miICiiIcCmo95ShJYJteq0fDoDyU2pBxydc3mZd6BZ3RiKUWUef\nXBD2\r\n=skoy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBvJiszm6YZEM3GEqi8/Lp/AfBktTQwOFH+WlA54VmUkAiEA1Ik8OlcTVXjAGLhjqRdex73cFdrUTKWKy4hOvQG3gxc="}]},"maintainers":[{"name":"hejty","email":"belak.lubos@gmail.com"},{"name":"keromudo","email":"marcel.odumorek@gmail.com"},{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/records-set_1.0.1_1552495264800_0.8272658071410777"},"_hasShrinkwrap":false},"1.0.2":{"name":"@creanet/records-set","version":"1.0.2","description":"Set of records with one or more unique properties","main":"index.js","scripts":{"test":"node tests/index.js"},"repository":{"type":"git","url":"git@gitlab.creanet.sk:wikarski.milan/records-set.git"},"keywords":["record","set"],"author":{"name":"Milan Wikarski"},"license":"ISC","gitHead":"9afc2796c7fb7c4dbc1fe0b80106bae838545bf7","_id":"@creanet/records-set@1.0.2","_npmVersion":"6.0.1","_nodeVersion":"9.5.0","_npmUser":{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"},"dist":{"integrity":"sha512-/+tkSWGeUn6MwW6ieXNPkkpMqJaHcWp/LFj5pb1UiKf7X8ZuXQTr0VazswhzAnXGdtZAEwlFTTaLS29xUmCo9g==","shasum":"593bad207f6ca0a626f174589ebd6f05f4d07a8c","tarball":"https://registry.npmjs.org/@creanet/records-set/-/records-set-1.0.2.tgz","fileCount":4,"unpackedSize":6129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcjmpJCRA9TVsSAnZWagAABMAP/0ycaOhkBgWV89oZRHKr\nrSubzo3pyvC/UAtMFRgNEG0HPquzUTc++ndYop0PBINXIr+aLv1ds5XYFCgC\nX33zh+lMQaHaEaKfo/CrfDX/PKMWm6AcOktwz2GCTMBDbSiwL3F01/XYSlcl\nXblFwYlK7PKsSr2UbZKofFmVREjruVHg4A5gogdoLrYrE7GzqJXNiOoR4xIa\nleev0Fqdye7xOv5PMjsiZImyhdek606WTrybpzvaf1Hvtui/F2kxSWrMv+Z1\nmGvGZ9Q7sAJMWOvsxcCR/QtUVKh64R6GKHd426EjkYekh9CcbqVFzEE8LmcB\nHSLyV2jRg1OYIE3uUA+1uIlDl2cELxp/mqpL7kZoAGOhWB9oL6cd8F9jPaT2\n8XkRudZ/leWVo/UZUMngRhReNrZVETsc1EXrocK692MPAQA2gDQ2XO5TFcTq\nFYf4MTPkWxJxpISrqF5ELjeckKoT6VjrbuyQ4J8yEMoGFMyETg1yD2ON9tfV\nQpqWtnrKjphHa9egbrpvftZ2DdOf/ce+/69F7xSisyE5q8bbAdP1vFgEvm8H\nLGJeq6VDwakIz1FDQss9cLDjf/IDNpKhRc/jAc+r2V1IAu4KwVYIs5d3Y1nQ\nD+EMm/O04co8ftNcIdiHfN9dhWc/UUXp4Uzg1biQSNF4Xa3ArzY2c8DLpqRR\ngGaz\r\n=TFQR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHAJ0nvFwTHi3xJX3Y7JRWHkyj0DZZR9gvKF4Fk1K6JCAiBoLmCp8DEQTQw+h1HdrE2NujeG1nKB+oYXJjlV9godYg=="}]},"maintainers":[{"name":"hejty","email":"belak.lubos@gmail.com"},{"name":"keromudo","email":"marcel.odumorek@gmail.com"},{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/records-set_1.0.2_1552837192502_0.017487027857188586"},"_hasShrinkwrap":false}},"time":{"created":"2019-03-13T16:39:26.748Z","1.0.0":"2019-03-13T16:39:28.659Z","modified":"2022-04-05T01:41:16.593Z","1.0.1":"2019-03-13T16:41:04.910Z","1.0.2":"2019-03-17T15:39:52.651Z"},"maintainers":[{"name":"hejty","email":"belak.lubos@gmail.com"},{"name":"keromudo","email":"marcel.odumorek@gmail.com"},{"name":"milan.wikarski","email":"milanwikarski3@gmail.com"}],"description":"Set of records with one or more unique properties","keywords":["record","set"],"repository":{"type":"git","url":"git@gitlab.creanet.sk:wikarski.milan/records-set.git"},"author":{"name":"Milan Wikarski"},"license":"ISC","readme":"# Records Set\n\nClass for storing a set of records with unique property.\n\n## Installation\n\nTo install this module use npm or yarn:\n\n```\nnpm install @creanet/records-set\n```\n\n```\nyarn add @creanet/records-set\n```\n\nAfter the module is installed, require it anywhere in the code:\n\n```javascript\nconst RecordsSet = require('@creanet/records-set');\n```\n\n## Creating new instance\n\nTo create a new instance of Records Set, constructor should be called with two parameters:\n\n```javascript\nconst RecordsSet = require('@creanet/records-set');\n\nconst uniqueProp = 'id';\nconst iterable = [\n  {\n    id: '1',\n    foo: 'obj1'\n  },\n  {\n    id: '2',\n    foo: 'obj2'\n  },\n  {\n    id: '2',\n    foo: 'obj3'\n  }\n];\n\nconst set = new RecordsSet(uniqueProp, iterable);\n\nconsole.log(set.values()); // [ { id: '1', foo: 'obj1' }, { id: '2', foo: 'obj2' } ]\n```\n\n## Properties\n\n### size\n\nReturns the number of the records in RecordsSet:\n\n```javascript\nconsole.log(set.size); // 2\nconsole.log(set.size === set.values().length); // true\n```\n\n## Methods\n\n### values()\n\nReturns an array with all records (values):\n\n```javascript\nconsole.log(set.values()); // [ { id: '1', foo: 'obj1' }, { id: '2', foo: 'obj2' } ]\n```\n\n### has(record)\n\nDetermines whether set contains such record by looking for unique property. All other properties will be ignored:\n\n```javascript\nconsole.log(set.has({ id: '2', foo: 'obj2' })); // true\nconsole.log(set.has({ id: '2', foo: 'obj3' })); // true\nconsole.log(set.has({ id: '3', foo: 'obj4' })); // false\n```\n\n### add(values)\n\nUsed to add one or more records. Records with already registered unique prop will be ignored:\n\n```javascript\nset.add({ id: '2', foo: 'obj5' });\nconsole.log(set.size); // 2\n\nset.add({ id: '3', foo: 'obj6' });\nconsole.log(set.size); // 3\n```\n\n### delete(values)\n\nUsed to delete one or more records. Delete can either be passed a record with the unique property:\n\n```javascript\nset.delete({ id: '2', foo: 'obj7' });\nconsole.log(set.values()); // [ { id: '1', foo: 'obj1' }, { id: '3', foo: 'obj6' } ]\n```\n\nOr a simple value:\n\n```javascript\nset.delete('1');\nconsole.log(set.values()); // [ { id: '3', foo: 'obj6' } ]\n```\n\n### clear()\n\nRemoves all records:\n\n```javascript\nset.clear();\nconsole.log(set.values()); // []\n```\n\n## Iteration methods\n\nRecords set can be iterated using these methods:\n\n```javascript\nset.forEach(callback, thisArg);\nset.map(callback, thisArg);\nset.filter(callback, thisArg);\n```\n\nMethods map and filter return a new instance of RecordsSet, forEach returns the original RecordsSet. Alternatively it is possible to use any array iteration method by calling it on the values of the set:\n\n```javascript\nset.values()[iterationMethod];\n```\n\nSome array iteration methods return an array. To turn the result into set, simply call:\n\n```javascript\nset = new Set(set.uniqueProp, set.values().map(callback));\n```\n","readmeFilename":"README.md"}