{"id":16058033,"url":"https://github.com/tylim88/firesagejs","last_synced_at":"2025-11-17T04:01:30.810Z","repository":{"id":50702540,"uuid":"518636301","full_name":"tylim88/FireSageJS","owner":"tylim88","description":"🔥Surgical Precision Type Safe For Realtime Database Web, Write Realtime Database Code That Stands The Test Of Time","archived":false,"fork":false,"pushed_at":"2023-10-24T00:29:14.000Z","size":1438,"stargazers_count":9,"open_issues_count":3,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-05-21T12:08:44.014Z","etag":null,"topics":["firebase","firebase-database","firebase-realtime-database","typescript"],"latest_commit_sha":null,"homepage":"","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/tylim88.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":"2022-07-27T23:12:46.000Z","updated_at":"2023-10-31T05:10:33.000Z","dependencies_parsed_at":"2024-09-26T02:03:36.554Z","dependency_job_id":null,"html_url":"https://github.com/tylim88/FireSageJS","commit_stats":{"total_commits":253,"total_committers":4,"mean_commits":63.25,"dds":0.01976284584980237,"last_synced_commit":"c41d88bf33c116e1b21db84ce77d1744a7f67167"},"previous_names":["tylim88/firesage"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FFireSageJS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FFireSageJS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FFireSageJS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tylim88%2FFireSageJS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tylim88","download_url":"https://codeload.github.com/tylim88/FireSageJS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243902285,"owners_count":20366260,"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":["firebase","firebase-database","firebase-realtime-database","typescript"],"created_at":"2024-10-09T03:06:04.629Z","updated_at":"2025-11-17T04:01:25.756Z","avatar_url":"https://github.com/tylim88.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/"],"categories":[],"sub_categories":[],"readme":"\u003c!-- markdownlint-disable MD010 --\u003e\n\u003c!-- markdownlint-disable MD033 --\u003e\n\u003c!-- markdownlint-disable MD041 --\u003e\n\n\u003cdiv align=\"center\"\u003e\n\t\t\u003cimg src=\"https://raw.githubusercontent.com/tylim88/Firelord/main/img/ozai.png\" width=\"200px\"/\u003e\n\t\t\u003ch1\u003eFireSageJS 烈火贤JS\u003c/h1\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\t\t\u003ca href=\"https://www.npmjs.com/package/firesagejs\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/npm/v/firesagejs\"\n\t\t\t\t\talt=\"Created by tylim88\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca\n\t\t\t\thref=\"https://github.com/tylim88/firesagejs/blob/main/LICENSE\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/github/license/tylim88/firesagejs\"\n\t\t\t\t\talt=\"License\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca\n\t\t\t\thref=\"https://www.npmjs.com/package/firesagejs?activeTab=dependencies\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/badge/dynamic/json?url=https://api.npmutil.com/package/firesagejs\u0026label=dependencies\u0026query=$.dependencies.count\u0026color=brightgreen\"\n\t\t\t\t\talt=\"dependency count\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://firelordjs.com/minified_size\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://img.shields.io/badge/gzipped-1.3KB-brightgreen\"\n\t\t\t\t\talt=\"package size\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://github.com/tylim88/firesagejs/actions\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://github.com/tylim88/firesagejs/workflows/Main/badge.svg\"\n\t\t\t\t\talt=\"github action\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://codecov.io/gh/tylim88/firesagejs\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://codecov.io/gh/tylim88/firesagejs/branch/main/graph/badge.svg\"\n\t\t\t\t\talt=\"code coverage\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://github.com/tylim88/firesagejs/issues\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\talt=\"GitHub issues\"\n\t\t\t\t\tsrc=\"https://img.shields.io/github/issues-raw/tylim88/firesagejs\"\n\t\t\t\t\u003e\u003c/img\u003e\n\t\t\t\u003c/a\u003e\n\t\t\t\u0026nbsp;\n\t\t\t\u003ca href=\"https://snyk.io/test/github/tylim88/firesagejs\" target=\"_blank\"\u003e\n\t\t\t\t\u003cimg\n\t\t\t\t\tsrc=\"https://snyk.io/test/github/tylim88/firesagejs/badge.svg\"\n\t\t\t\t\talt=\"vulnerabilities\"\n\t\t\t\t/\u003e\n\t\t\t\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\t\tSurgical Precision Type Safe For Realtime Database Web, Write Realtime Database Code That Stands The Test Of Time\n\u003c/div\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\t\t\u003ci\u003eImmaculate, One of a Kind, Unorthodox, Craftsmanship, Art\u003c/i\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\t\t\u003ci\u003eIn The Relentless Pursuit Of Correctness\u003c/i\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://firelordjs.com/firesage/quick_start\" target=\"_blank\" style=\"color:blue\"\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\nState-of-the-art type safe RTDB code with minimum learning curve, avoid runtime exceptions without runtime checks, type level RTDB defensive programming at it finest.\n\nFiresageJS has:\n\n- The lowest learning curve (API is nearly identical to the original API).\n- The lowest technical debt (easiest to revert to the original API).\n- The ultimate type safety.\n- Effortless solutions for RTDB [quirks](https://firelordjs.com/firesage/highlights/query/#understanding-error-messages).\n- Possibly also the smallest.\n\nSupport [@firebase/rules-unit-testing and emulator](https://firelordjs.com/firesage/guides/tests)\n\nI am confident it has the best type safe and nothing come close to it. I put money on my words and I will buy you [x cups of coffee](https://www.buymeacoffee.com/) if you:\n\n1. found something better: 75 cups.\n2. created something better: 1000 cups (you don't need to a make full fledge library, something minimally better is enough, open an issue if you want to take this challenge)\n\n## Contributing\n\nRead [here](https://firelordjs.com/firesage/contributing)\n\n## Trivial\n\n1. The name FireSage is a reference to the [Fire Sages of Avatar](https://avatar.fandom.com/wiki/Fire_Sages).\n2. This is most likely the only RTDB type safe wrapper in existence.\n\n## Related Projects\n\n1. [FirelordJS](https://github.com/tylim88/FirelordJS) - Typescript wrapper for Firestore Web\n2. [Firelord](https://github.com/tylim88/firelord) - Typescript wrapper for Firestore admin\n3. [FireSword](https://github.com/tylim88/firesword) - Filter Firestore and RTDB Unknown Keys.\n4. [FireCall](https://github.com/tylim88/FireCall) - Helper Function to write easier and safer Firebase onCall function.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylim88%2Ffiresagejs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftylim88%2Ffiresagejs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftylim88%2Ffiresagejs/lists"}