{"id":21831383,"url":"https://github.com/nodef/extra-entries","last_synced_at":"2026-02-27T15:02:47.721Z","repository":{"id":33025522,"uuid":"133400406","full_name":"nodef/extra-entries","owner":"nodef","description":"A collection of functions for operating upon Entries.","archived":false,"fork":false,"pushed_at":"2025-04-08T16:42:48.000Z","size":535,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-12T08:59:29.705Z","etag":null,"topics":["chunk","compare","concat","count","count-as","difference","drop","entries","every","extra","filter","filter-at","find","find-all","flat","flat-map","for-each","from-lists","get","get-all"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/extra-entries","language":"TypeScript","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/nodef.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-14T17:49:18.000Z","updated_at":"2025-04-08T16:42:49.000Z","dependencies_parsed_at":"2024-08-27T07:01:25.419Z","dependency_job_id":"01767554-b653-4e9c-aad9-958e80c84d3d","html_url":"https://github.com/nodef/extra-entries","commit_stats":{"total_commits":165,"total_committers":1,"mean_commits":165.0,"dds":0.0,"last_synced_commit":"0e56c0d7fb5bcc1a9bf197493fe540be4aabd538"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-entries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-entries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-entries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nodef%2Fextra-entries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nodef","download_url":"https://codeload.github.com/nodef/extra-entries/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248543861,"owners_count":21121838,"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":["chunk","compare","concat","count","count-as","difference","drop","entries","every","extra","filter","filter-at","find","find-all","flat","flat-map","for-each","from-lists","get","get-all"],"created_at":"2024-11-27T19:10:04.475Z","updated_at":"2026-02-27T15:02:47.644Z","avatar_url":"https://github.com/nodef.png","language":"TypeScript","readme":"A collection of functions for operating upon Entries.\u003cbr\u003e\n📦 [Node.js](https://www.npmjs.com/package/extra-entries),\n🌐 [Web](https://www.npmjs.com/package/extra-entries.web),\n📜 [Files](https://unpkg.com/extra-entries/),\n📰 [Docs](https://nodef.github.io/extra-entries/),\n📘 [Wiki](https://github.com/nodef/extra-entries/wiki/).\n\n[Entries] is a list of key-value pairs, with unique keys. This package\nincludes common functions related to querying **about** entries, **generating**\nthem, **comparing** one with another, finding their **size**, **adding** and\n**removing** entries, obtaining its **properties**, getting a **part** of it,\ngetting a **subset** entries in it, **finding** an entry in it, performing\n**functional** operations, **manipulating** it in various ways, **combining**\ntogether entries or its sub-entries, of performing **set operations** upon it.\n\nAll functions except `fromLists()` take entries as 1st parameter, and expect it\nto be [iterable]. It does not need to be an array. **Entries** are returned\nby `Array`, `Object`, `Set`, `Map`.\n\nThis package is available in *Node.js* and *Web* formats. The web format\nis exposed as `extra_entries` standalone variable and can be loaded from\n[jsDelivr CDN].\n\n\u003e Stability: [Experimental](https://www.youtube.com/watch?v=L1j93RnIxEo).\n\n[Entries]: https://github.com/nodef/extra-entries/wiki/Entries\n[iterable]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols\n[jsDelivr CDN]: https://cdn.jsdelivr.net/npm/extra-entries.web/index.js\n\n\u003cbr\u003e\n\n```javascript\nconst entries = require('extra-entries');\n// import * as entries from \"extra-entries\";\n// import * as entries from \"https://unpkg.com/extra-entries/index.mjs\"; (deno)\n\nvar x = [['a', 1], ['b', 2], ['c', 3], ['d', 4], ['e', 5]];\n[...entries.filter(x, v =\u003e v % 2 === 1)];\n// → [ [ 'a', 1 ], [ 'c', 3 ], [ 'e', 5 ] ]\n\nvar x = [['a', 1], ['b', 2], ['c', -3], ['d', -4]];\nentries.some(x, v =\u003e v \u003e 10);\n// → false\n\nvar x = [['a', 1], ['b', 2], ['c', -3], ['d', -4]];\nentries.min(x);\n// → -4\n\nvar x = [['a', 1], ['b', 2], ['c', 3]];\n[...entries.subsets(x)].map(a =\u003e [...a]);\n// → [\n// →   [],\n// →   [ [ 'a', 1 ] ],\n// →   [ [ 'b', 2 ] ],\n// →   [ [ 'a', 1 ], [ 'b', 2 ] ],\n// →   [ [ 'c', 3 ] ],\n// →   [ [ 'a', 1 ], [ 'c', 3 ] ],\n// →   [ [ 'b', 2 ], [ 'c', 3 ] ],\n// →   [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ]\n// → ]\n```\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n## Index\n\n\n| Property | Description |\n|  ----  |  ----  |\n| [is] | Check if value is an iterable. |\n| [keys] | List all keys. |\n| [values] | List all values. |\n|  |  |\n| [fromLists] | Convert lists to entries. |\n|  |  |\n| [compare] | Compare two entries. |\n| [isEqual] | Check if two entries are equal. |\n|  |  |\n| [size] | Find the length of an iterable. |\n| [isEmpty] | Check if an iterable is empty. |\n|  |  |\n| [get] | Get value at key. |\n| [getAll] | Get values at keys. |\n| [getPath] | Get value at path in nested entries. |\n| [hasPath] | Check if nested entries has a path. |\n| [set] | Set value at key. |\n| [swap] | Exchange two values. |\n| [remove] | Remove value at key. |\n|  |  |\n| [count] | Count values which satisfy a test. |\n| [countAs] | Count occurrences of values. |\n| [min] | Find smallest value. |\n| [minEntry] | Find smallest entry. |\n| [max] | Find largest value. |\n| [maxEntry] | Find largest entry. |\n| [range] | Find smallest and largest values. |\n| [rangeEntries] | Find smallest and largest entries. |\n|  |  |\n| [head] | Get first value. |\n| [tail] | Get values except first. |\n| [take] | Keep first n values only. |\n| [drop] | Discard first n values only. |\n|  |  |\n| [subsets] | List all possible subsets. |\n| [randomKey] | Pick an arbitrary key. |\n| [randomEntry] | Pick an arbitrary entry. |\n| [randomSubset] | Pick an arbitrary subset. |\n|  |  |\n| [has] | Check if entries has a key. |\n| [hasValue] | Check if entries has a value. |\n| [hasEntry] | Check if entries has an entry. |\n| [hasSubset] | Check if entries has a subset. |\n| [find] | Find first value passing a test (default order). |\n| [findAll] | Find values passing a test. |\n| [search] | Finds key of an entry passing a test. |\n| [searchAll] | Find keys of entries passing a test. |\n| [searchValue] | Find a key with given value. |\n| [searchValueAll] | Finds keys with given value. |\n|  |  |\n| [forEach] | Call a function for each value. |\n| [some] | Check if any value satisfies a test. |\n| [every] | Check if all values satisfy a test. |\n| [map] | Transform values of entries. |\n| [reduce] | Reduce values of entries to a single value. |\n| [filter] | Keep entries which pass a test. |\n| [filterAt] | Keep entries with given keys. |\n| [reject] | Discard entries which pass a test. |\n| [rejectAt] | Discard entries with given keys. |\n| [flat] | Flatten nested entries to given depth. |\n| [flatMap] | Flatten nested entries, based on map function. |\n| [zip] | Combine matching entries from all entries. |\n|  |  |\n| [partition] | Segregate values by test result. |\n| [partitionAs] | Segregate entries by similarity. |\n| [chunk] | Break entries into chunks of given size. |\n|  |  |\n| [concat] | Append entries from all entries, preferring last. |\n| [join] | Join entries together into a string. |\n|  |  |\n| [isDisjoint] | Check if entries have no common keys. |\n| [unionKeys] | Obtain keys present in any entries. |\n| [union] | Obtain entries present in any entries. |\n| [intersection] | Obtain entries present in both entries. |\n| [difference] | Obtain entries not present in another entries. |\n| [symmetricDifference] | Obtain entries not present in both entries. |\n| [randomValue] | Pick an arbitrary value. |\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n\n[![](https://img.youtube.com/vi/5UABeDXf_iE/maxresdefault.jpg)](https://www.youtube.com/watch?v=5UABeDXf_iE)\u003cbr\u003e\n[![ORG](https://img.shields.io/badge/org-nodef-green?logo=Org)](https://nodef.github.io)\n[![DOI](https://zenodo.org/badge/133400406.svg)](https://zenodo.org/badge/latestdoi/133400406)\n[![Coverage Status](https://coveralls.io/repos/github/nodef/extra-entries/badge.svg?branch=master)](https://coveralls.io/github/nodef/extra-entries?branch=master)\n[![Test Coverage](https://api.codeclimate.com/v1/badges/4624983540e6b87358dc/test_coverage)](https://codeclimate.com/github/nodef/extra-entries/test_coverage)\n[![Maintainability](https://api.codeclimate.com/v1/badges/4624983540e6b87358dc/maintainability)](https://codeclimate.com/github/nodef/extra-entries/maintainability)\n![](https://ga-beacon.deno.dev/G-RC63DPBH3P:SH3Eq-NoQ9mwgYeHWxu7cw/github.com/nodef/extra-entries)\n\n\n[is]: https://github.com/nodef/extra-entries/wiki/is\n[keys]: https://github.com/nodef/extra-entries/wiki/keys\n[values]: https://github.com/nodef/extra-entries/wiki/values\n[fromLists]: https://github.com/nodef/extra-entries/wiki/fromLists\n[compare]: https://github.com/nodef/extra-entries/wiki/compare\n[isEqual]: https://github.com/nodef/extra-entries/wiki/isEqual\n[size]: https://github.com/nodef/extra-entries/wiki/size\n[isEmpty]: https://github.com/nodef/extra-entries/wiki/isEmpty\n[get]: https://github.com/nodef/extra-entries/wiki/get\n[getAll]: https://github.com/nodef/extra-entries/wiki/getAll\n[getPath]: https://github.com/nodef/extra-entries/wiki/getPath\n[hasPath]: https://github.com/nodef/extra-entries/wiki/hasPath\n[set]: https://github.com/nodef/extra-entries/wiki/set\n[swap]: https://github.com/nodef/extra-entries/wiki/swap\n[remove]: https://github.com/nodef/extra-entries/wiki/remove\n[count]: https://github.com/nodef/extra-entries/wiki/count\n[countAs]: https://github.com/nodef/extra-entries/wiki/countAs\n[min]: https://github.com/nodef/extra-entries/wiki/min\n[minEntry]: https://github.com/nodef/extra-entries/wiki/minEntry\n[max]: https://github.com/nodef/extra-entries/wiki/max\n[maxEntry]: https://github.com/nodef/extra-entries/wiki/maxEntry\n[range]: https://github.com/nodef/extra-entries/wiki/range\n[rangeEntries]: https://github.com/nodef/extra-entries/wiki/rangeEntries\n[head]: https://github.com/nodef/extra-entries/wiki/head\n[tail]: https://github.com/nodef/extra-entries/wiki/tail\n[take]: https://github.com/nodef/extra-entries/wiki/take\n[drop]: https://github.com/nodef/extra-entries/wiki/drop\n[subsets]: https://github.com/nodef/extra-entries/wiki/subsets\n[randomKey]: https://github.com/nodef/extra-entries/wiki/randomKey\n[randomEntry]: https://github.com/nodef/extra-entries/wiki/randomEntry\n[randomSubset]: https://github.com/nodef/extra-entries/wiki/randomSubset\n[has]: https://github.com/nodef/extra-entries/wiki/has\n[hasValue]: https://github.com/nodef/extra-entries/wiki/hasValue\n[hasEntry]: https://github.com/nodef/extra-entries/wiki/hasEntry\n[hasSubset]: https://github.com/nodef/extra-entries/wiki/hasSubset\n[find]: https://github.com/nodef/extra-entries/wiki/find\n[findAll]: https://github.com/nodef/extra-entries/wiki/findAll\n[search]: https://github.com/nodef/extra-entries/wiki/search\n[searchAll]: https://github.com/nodef/extra-entries/wiki/searchAll\n[searchValue]: https://github.com/nodef/extra-entries/wiki/searchValue\n[searchValueAll]: https://github.com/nodef/extra-entries/wiki/searchValueAll\n[forEach]: https://github.com/nodef/extra-entries/wiki/forEach\n[some]: https://github.com/nodef/extra-entries/wiki/some\n[every]: https://github.com/nodef/extra-entries/wiki/every\n[map]: https://github.com/nodef/extra-entries/wiki/map\n[reduce]: https://github.com/nodef/extra-entries/wiki/reduce\n[filter]: https://github.com/nodef/extra-entries/wiki/filter\n[filterAt]: https://github.com/nodef/extra-entries/wiki/filterAt\n[reject]: https://github.com/nodef/extra-entries/wiki/reject\n[rejectAt]: https://github.com/nodef/extra-entries/wiki/rejectAt\n[flat]: https://github.com/nodef/extra-entries/wiki/flat\n[flatMap]: https://github.com/nodef/extra-entries/wiki/flatMap\n[zip]: https://github.com/nodef/extra-entries/wiki/zip\n[partition]: https://github.com/nodef/extra-entries/wiki/partition\n[partitionAs]: https://github.com/nodef/extra-entries/wiki/partitionAs\n[chunk]: https://github.com/nodef/extra-entries/wiki/chunk\n[concat]: https://github.com/nodef/extra-entries/wiki/concat\n[join]: https://github.com/nodef/extra-entries/wiki/join\n[isDisjoint]: https://github.com/nodef/extra-entries/wiki/isDisjoint\n[unionKeys]: https://github.com/nodef/extra-entries/wiki/unionKeys\n[union]: https://github.com/nodef/extra-entries/wiki/union\n[intersection]: https://github.com/nodef/extra-entries/wiki/intersection\n[difference]: https://github.com/nodef/extra-entries/wiki/difference\n[symmetricDifference]: https://github.com/nodef/extra-entries/wiki/symmetricDifference\n[randomValue]: https://github.com/nodef/extra-entries/wiki/randomValue\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodef%2Fextra-entries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnodef%2Fextra-entries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnodef%2Fextra-entries/lists"}