{"id":13847094,"url":"https://github.com/nuxodin/lazyfill","last_synced_at":"2026-01-23T07:09:53.161Z","repository":{"id":37738572,"uuid":"357427853","full_name":"nuxodin/lazyfill","owner":"nuxodin","description":"Polyfills on demand 💊","archived":false,"fork":false,"pushed_at":"2024-05-08T20:14:38.000Z","size":174,"stargazers_count":64,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-10-02T18:39:47.501Z","etag":null,"topics":["crossbrowser","polyfill","polyfill-service","polyfills"],"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/nuxodin.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2021-04-13T04:53:00.000Z","updated_at":"2025-05-22T00:29:55.000Z","dependencies_parsed_at":"2022-08-08T23:00:23.471Z","dependency_job_id":"63226bf0-d073-4ffa-b9b5-3945b3c8bf22","html_url":"https://github.com/nuxodin/lazyfill","commit_stats":{"total_commits":232,"total_committers":1,"mean_commits":232.0,"dds":0.0,"last_synced_commit":"c53e43fe2d88269cf84b924461218c23422cc49a"},"previous_names":[],"tags_count":69,"template":false,"template_full_name":null,"purl":"pkg:github/nuxodin/lazyfill","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxodin%2Flazyfill","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxodin%2Flazyfill/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxodin%2Flazyfill/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxodin%2Flazyfill/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nuxodin","download_url":"https://codeload.github.com/nuxodin/lazyfill/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nuxodin%2Flazyfill/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28682383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T05:48:07.525Z","status":"ssl_error","status_checked_at":"2026-01-23T05:48:07.129Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["crossbrowser","polyfill","polyfill-service","polyfills"],"created_at":"2024-08-04T18:00:54.080Z","updated_at":"2026-01-23T07:09:53.147Z","avatar_url":"https://github.com/nuxodin.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# 💊 lazyfill\n\nPolyfill Service - the lazy way\n\n\nPolyfills **are loaded on demand**, only when they are needed 😲  \nInitial **3Kb** to polyfill a lot of Stuff!  \n\n# Ussage\n\nAdd this script on the top of your page:\n```html\n\u003cscript src=\"https://cdn.jsdelivr.net/gh/nuxodin/lazyfill@1.7.14/mod.min.js\"\u003e\u003c/script\u003e\n```\n**done!**\n\n# Polyfills\n\n(Anything missing? Any suggestions?)\n\n\n\n\u003cul\u003e\n   \u003cli\u003eWindow\n   \u003cul\u003e\n      \u003cli\u003ecookieStore\n      \u003cli\u003efetch\n      \u003cli\u003ePromise\n      \u003cli\u003eIntersectionObserver\n      \u003cli\u003eResizeObserver\n      \u003cli\u003eAbortController\n      \u003cli\u003eURLSearchParams\n      \u003cli\u003eTemporal\n      \u003cli\u003etemporal\n      \u003cli\u003ecustomElements\n      \u003cli\u003estructuredClone\n      \u003cli\u003eURLPattern\n      \u003cli\u003eReadableStream\n      \u003cli\u003eSanitizer\n      \u003cli\u003erequestIdleCallback\n      \u003cli\u003ecancelIdleCallback\n      \u003cli\u003eWeakSet\n   \u003c/ul\u003e\n   \u003cli\u003eElement\n   \u003cul\u003e\n      \u003cli\u003esetHTML\n      \u003cli\u003ematches\n      \u003cli\u003eclosest\n      \u003cli\u003eprepend\n      \u003cli\u003eappend\n      \u003cli\u003ebefore\n      \u003cli\u003eafter\n      \u003cli\u003ereplaceWidth\n      \u003cli\u003eremove\n      \u003cli\u003eblur\n      \u003cli\u003efocus\n      \u003cli\u003eclassList\n      \u003cli\u003egetElementsByClassName\n      \u003cli\u003echildren\n      \u003cli\u003etoggleAttribute\n      \u003cli\u003eisVisible\n      \u003cli\u003escrollIntoViewIfNeeded\n   \u003c/ul\u003e\n   \u003cli\u003eTypedArray\n   \u003cul\u003e\n      \u003cli\u003etoReversed\n      \u003cli\u003etoSorted\n      \u003cli\u003ewith\n   \u003c/ul\u003e\n   \u003cli\u003eArray\n   \u003cul\u003e\n      \u003cli\u003etoReversed\n      \u003cli\u003etoSorted\n      \u003cli\u003ewith\n      \u003cli\u003etoSpliced\n      \u003cli\u003efrom\n      \u003cli\u003eof\n      \u003cli\u003eat\n      \u003cli\u003ecopyWithin\n      \u003cli\u003eentries\n      \u003cli\u003efill\n      \u003cli\u003efind\n      \u003cli\u003efindIndex\n      \u003cli\u003efindLast\n      \u003cli\u003efindLastIndex\n      \u003cli\u003eflat\n      \u003cli\u003eflatMap\n      \u003cli\u003eincludes\n      \u003cli\u003ekeys\n      \u003cli\u003evalues\n   \u003c/ul\u003e\n   \u003cli\u003eIntl.DateTimeFormat\n   \u003cul\u003e\n      \u003cli\u003eformatToParts\n   \u003c/ul\u003e\n   \u003cli\u003eIntl\n   \u003cul\u003e\n      \u003cli\u003eDisplayNames\n      \u003cli\u003eListFormat\n      \u003cli\u003eLocale\n      \u003cli\u003ePluralRules\n      \u003cli\u003eRelativeTimeFormat\n      \u003cli\u003egetCanonicalLocales\n   \u003c/ul\u003e\n   \u003cli\u003eCSS\n   \u003cul\u003e\n      \u003cli\u003eescape\n      \u003cli\u003eregisterProperty\n      \u003cli\u003esupports\n   \u003c/ul\u003e\n   \u003cli\u003eHTMLDocument\n   \u003cul\u003e\n      \u003cli\u003ecurrentScript\n      \u003cli\u003ecaretRangeFromPoint\n   \u003c/ul\u003e\n   \u003cli\u003eNode\n   \u003cul\u003e\n      \u003cli\u003econtains\n      \u003cli\u003eisConnected\n   \u003c/ul\u003e\n   \u003cli\u003eHTMLElement\n   \u003cul\u003e\n      \u003cli\u003einert\n   \u003c/ul\u003e\n   \u003cli\u003eHTMLFormElement\n   \u003cul\u003e\n      \u003cli\u003ereportValidity\n      \u003cli\u003erequestSubmit\n   \u003c/ul\u003e\n   \u003cli\u003eHTMLInputElement\n   \u003cul\u003e\n      \u003cli\u003ereportValidity\n   \u003c/ul\u003e\n   \u003cli\u003eHTMLSlotElement\n   \u003cul\u003e\n      \u003cli\u003eassignedElements\n   \u003c/ul\u003e\n   \u003cli\u003eMath\n   \u003cul\u003e\n      \u003cli\u003etrunc\n      \u003cli\u003esign\n   \u003c/ul\u003e\n   \u003cli\u003eNavigator\n   \u003cul\u003e\n      \u003cli\u003eshare\n   \u003c/ul\u003e\n   \u003cli\u003eNumber\n   \u003cul\u003e\n      \u003cli\u003eisInteger\n   \u003c/ul\u003e\n   \u003cli\u003eObject\n   \u003cul\u003e\n      \u003cli\u003eassign\n      \u003cli\u003eentries\n      \u003cli\u003efromEntries\n      \u003cli\u003eis\n      \u003cli\u003evalues\n      \u003cli\u003ehasOwn\n   \u003c/ul\u003e\n   \u003cli\u003ePromise\n   \u003cul\u003e\n      \u003cli\u003eallSettled\n      \u003cli\u003eany\n      \u003cli\u003ewithResolvers\n   \u003c/ul\u003e\n   \u003cli\u003eRegExp\n   \u003cul\u003e\n      \u003cli\u003eflags\n   \u003c/ul\u003e\n   \u003cli\u003eString\n   \u003cul\u003e\n      \u003cli\u003efromCodePoint\n      \u003cli\u003eat\n      \u003cli\u003ecodePointAt\n      \u003cli\u003eendsWith\n      \u003cli\u003eincludes\n      \u003cli\u003epadEnd\n      \u003cli\u003epadStart\n      \u003cli\u003erepeat\n      \u003cli\u003estartsWith\n      \u003cli\u003ereplaceAll\n   \u003c/ul\u003e\n   \u003cli\u003eSubmitEvent\n   \u003cul\u003e\n      \u003cli\u003esubmitter\n   \u003c/ul\u003e\n   \u003cli\u003eSVGStyleElement\n   \u003cul\u003e\n      \u003cli\u003esheet\n   \u003c/ul\u003e\n   \u003cli\u003eCrypto\n   \u003cul\u003e\n      \u003cli\u003erandomUUID\n   \u003c/ul\u003e\n\u003c/ul\u003e\n\n\u003cul\u003e\n   \u003cli\u003eaddEventListener signal options\n   \u003cli\u003efocus options\n   \u003cli\u003eclassList force toggle \n   \u003cli\u003eElement.contains(TextNode) bug\n\u003c/ul\u003e\n\n\n# How it works\n\nTo every polyfillable property, the scripts adds a getter which **synchronously** loads the corresponding polyfill.  \nOf course, we all know that blocking xhr-requests is not nice.  \nTherefore, the url to the script that should be added to the page is given in the console.\nIdeal for prototyping.\n\nLet's assume that your browser does not support the function \"String.prototype.at\".\n```js\n\u003e ['a','b','c'].at(-1); // accessing  [].at immediately loads the polyfill\n\u003e 'c'\n```\n\n\n# Help\nAny help is greatly appreciated.\n\n# Thanks / Resources\n\nhttps://github.com/es-shims\n\nhttps://github.com/behnammodi/polyfill\n\nhttps://polyfill.io/v3/\n\nhttps://ungap.github.io/\n\nhttps://github.com/Sylvain59650/all-polyfills\n\nhttps://vanillajstoolkit.com/polyfills/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuxodin%2Flazyfill","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnuxodin%2Flazyfill","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnuxodin%2Flazyfill/lists"}