{"id":20672744,"url":"https://github.com/nas5w/roll-your-own","last_synced_at":"2025-06-20T18:14:41.571Z","repository":{"id":43991000,"uuid":"240978250","full_name":"nas5w/roll-your-own","owner":"nas5w","description":"Learn built-in JavaScript methods by rolling your own!","archived":false,"fork":false,"pushed_at":"2023-01-05T07:32:49.000Z","size":714,"stargazers_count":25,"open_issues_count":8,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-19T20:45:23.000Z","etag":null,"topics":["es6","javascript"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/nas5w.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-16T22:46:44.000Z","updated_at":"2025-02-05T02:16:07.000Z","dependencies_parsed_at":"2023-02-03T18:31:22.276Z","dependency_job_id":null,"html_url":"https://github.com/nas5w/roll-your-own","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nas5w/roll-your-own","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nas5w%2Froll-your-own","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nas5w%2Froll-your-own/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nas5w%2Froll-your-own/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nas5w%2Froll-your-own/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nas5w","download_url":"https://codeload.github.com/nas5w/roll-your-own/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nas5w%2Froll-your-own/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260994045,"owners_count":23094283,"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":["es6","javascript"],"created_at":"2024-11-16T20:38:40.613Z","updated_at":"2025-06-20T18:14:36.556Z","avatar_url":"https://github.com/nas5w.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003cimg alt=\"Roll Your Own JavaScript\" src=\"./logo.png\" /\u003e\n\u003c/div\u003e\n\n\u003cp align=\"center\"\u003eLearning JavaScript by recreating it\u003c/p\u003e\n\n---\n\n[![Build Status](https://travis-ci.com/nas5w/roll-your-own.svg?branch=master)](https://travis-ci.com/nas5w/roll-your-own)\n\n\nThis repository is purely educational exploration of recreating built-in JavaScript methods. I started with a number of Array methods, but it would be great to expand to other Object and primitive types as well!\n\n## Methods\n\n- Array Methods\n  - [concat](./array/concat.js)\n  - [every](./array/every.js)\n  - [filter](./array/filter.js)\n  - [isArray](./array/isArray.js)\n  - [map](./array/map.js)\n  - [of](./array/of.js)\n  - [reduce](./array/reduce.js)\n  - [some](./array/some.js)\n  - [toString](./array/toString.js)\n\n## Contributing\n\nHappy to have PRs to the repository proposing new methods or fixes to existing ones! Please open an issue first to get approval for any work you do, I'd hate to reject proposed changes because someone else is already doing the same work.\n\nHere's the general process to follow to contribute:\n\n1. Propose the change/fix in a Github Issue\n2. Clone down the repository\n3. Create tests for the changes you're making\n4. Make the change and pass all tests\n5. Create a Pull Request to this repository with the update(s)\n\nPlease try not to use known polyfills for the methods you contribute, I'd like this to remain a learning experience rather than a copy/paste exercise!\n\n---\n\nWant to learn more about JavaScript? Consider signing up for my [free newsletter](https://buttondown.email/typeofnan) where I periodically send out digestible bits of JavaScript knowledge!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnas5w%2Froll-your-own","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnas5w%2Froll-your-own","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnas5w%2Froll-your-own/lists"}