{"id":16419146,"url":"https://github.com/cameronhunter/sort-order","last_synced_at":"2025-03-16T17:34:02.910Z","repository":{"id":49048998,"uuid":"54178793","full_name":"cameronhunter/sort-order","owner":"cameronhunter","description":"Combine a series of sort functions to create complex sort orders.","archived":false,"fork":false,"pushed_at":"2024-05-01T21:15:35.000Z","size":208,"stargazers_count":2,"open_issues_count":5,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-10-12T07:16:07.374Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/cameronhunter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-03-18T06:20:42.000Z","updated_at":"2023-11-20T22:43:52.000Z","dependencies_parsed_at":"2024-01-23T00:34:22.935Z","dependency_job_id":"4797c47c-9c11-4c2e-aaeb-a7d34fb15e6f","html_url":"https://github.com/cameronhunter/sort-order","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cameronhunter%2Fsort-order","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cameronhunter%2Fsort-order/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cameronhunter%2Fsort-order/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cameronhunter%2Fsort-order/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cameronhunter","download_url":"https://codeload.github.com/cameronhunter/sort-order/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221666403,"owners_count":16860413,"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":[],"created_at":"2024-10-11T07:16:04.507Z","updated_at":"2024-10-27T10:58:53.456Z","avatar_url":"https://github.com/cameronhunter.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `sort-order`\n\n[![npm package](https://img.shields.io/npm/v/sort-order?logo=npm)](https://www.npmjs.com/package/sort-order)\n[![npm downloads](https://img.shields.io/npm/dm/sort-order?logo=npm)](https://www.npmjs.com/package/sort-order)\n[![main branch status](https://img.shields.io/github/actions/workflow/status/cameronhunter/sort-order/post-merge.yml?logo=github\u0026label=main)](https://github.com/cameronhunter/sort-order/actions/workflows/post-merge.yml)\n\n\u003e Combine a series of sort functions to create complex sort orders.\n\n## Install\n\n```bash\nnpm install --save sort-order\n```\n\n## Example\n\nSort an array of objects by `creator` first, then `joinTime` and finally `id`:\n\n```javascript\nimport sortBy from 'sort-order';\n\n// Items to order\nconst a = { creator: true, joinTime: 0, id: 987 };\nconst b = { creator: false, joinTime: 1, id: 123 };\nconst c = { creator: false, joinTime: 1, id: 456 };\nconst d = { creator: false, joinTime: 2, id: 789 };\n\n// Individual sort functions\nconst creator = (a, b) =\u003e (a.creator \u0026\u0026 -1) || (b.creator \u0026\u0026 1) || 0;\nconst field = (field) =\u003e (a, b) =\u003e a[field] - b[field];\n\n// Combined sort function\nconst ordering = sortBy(creator, field('joinTime'), field('id'));\n\n// Sort!\n[d, c, b, a].sort(ordering); // [a, b, c, d]\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcameronhunter%2Fsort-order","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcameronhunter%2Fsort-order","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcameronhunter%2Fsort-order/lists"}