{"id":15067394,"url":"https://github.com/dewasry/browser-base","last_synced_at":"2026-02-13T02:47:34.318Z","repository":{"id":255443022,"uuid":"851356218","full_name":"DewaSRY/browser-base","owner":"DewaSRY","description":"A tool to help developer store data ofline on browser","archived":false,"fork":false,"pushed_at":"2024-09-05T00:11:21.000Z","size":543,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-26T10:02:20.741Z","etag":null,"topics":["angular","borwser","data","indexeddb","nextjs","orm","query","react","typescript","vite","vue"],"latest_commit_sha":null,"homepage":"https://browser-base-chi.vercel.app","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/DewaSRY.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2024-09-03T00:16:44.000Z","updated_at":"2024-09-05T13:45:24.000Z","dependencies_parsed_at":"2024-09-29T11:44:37.755Z","dependency_job_id":"d7c2dc57-7514-4675-a75d-60dd1b5cb895","html_url":"https://github.com/DewaSRY/browser-base","commit_stats":null,"previous_names":["dewasry/browser-base"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DewaSRY/browser-base","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DewaSRY%2Fbrowser-base","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DewaSRY%2Fbrowser-base/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DewaSRY%2Fbrowser-base/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DewaSRY%2Fbrowser-base/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DewaSRY","download_url":"https://codeload.github.com/DewaSRY/browser-base/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DewaSRY%2Fbrowser-base/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262044399,"owners_count":23249745,"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":["angular","borwser","data","indexeddb","nextjs","orm","query","react","typescript","vite","vue"],"created_at":"2024-09-25T01:20:27.714Z","updated_at":"2026-02-13T02:47:34.290Z","avatar_url":"https://github.com/DewaSRY.png","language":"TypeScript","readme":"# Browser base\n\nBrowserBase is a TypeScript-based tool designed to work with offline\ndata in the browser. It provides an easy-to-use interface for storing\nand managing data in the browser's IndexedDB database, making it\nsimple to handle offline storage efficiently.\n\nBrowser base build on top [LocalForage](https://github.com/localForage/localForage).\n\nand browser base inspire by [localbase](https://github.com/samuk190/localbase).\n\n## Badges\n\n[![MIT License](https://img.shields.io/badge/License-MIT-green.svg)](https://choosealicense.com/licenses/mit/)\n\n## Getting Started\n\n```bash\n// run for instalation\nnpm i @sdewa/browser-base\n```\n\ncreate database and the collection\n\n```typescript\n// create database instance\nlet browserBase new BrowserBase(\"first-db\");\n\n// create an interface of data\ninterface user {\n  name: string;\n  age: number;\n}\n// create the collection\nbrowserBase.collection\u003cuser\u003e(\"user-collection\");\n\n//the broser base will store data on 'user collection',\n//if you don't pass a key on the key param its will generate uuid\nbrowserBase.collection\u003cuser\u003e(\"user-collection\").add({\n    name: \"some name\",\n    age:10\n}, \"some key\")\n\n// {name: \"somename\", age:10, _id: \"some key\"}\n\n//recomended to not pass anything on the key param\n//so the data guaranted to be unique\nbrowserBase.collection\u003cuser\u003e(\"user-collection\").add({\n    name: \"some name\",\n    age:10\n})\n\n// {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n```\n\nquery the data\n\n```typescript\n//use get will query all data on the collection\nbrowserBase.collection\u003cuser\u003e(\"user-collection\").get()\n//[\n//  {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n//  {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n//  {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n//]\n\n//it's can alos use by specify the key will query\nbrowserBase.collection\u003cuser\u003e(\"user-collection\".).byId('\u003cuuid\u003e').get()\n//{name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n\n//browserbase also have limit and skip interface\nbrowserBase.collection\u003cuser\u003e(\"user-collection\".).limit(5).skip(5).get();\n//[\n//  {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n//  {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n//  {name: \"somename\", age:10, _id: \"\u003cuuid\u003e\"}\n//]\n\n//browser base alos have interface ot order the data\nbrowserBase.collection\u003cuser\u003e(\"user-collection\".)\n            .orderBy(\"age\", \"desc\").get();\n//[\n//  {name: \"somename\", age:3, _id: \"\u003cuuid\u003e\"}\n//  {name: \"somename\", age:2, _id: \"\u003cuuid\u003e\"}\n//  {name: \"somename\", age:1, _id: \"\u003cuuid\u003e\"}\n//]\n```\n\nupdate the data\n\n```typescript\n//use set to update the data\nbrowserBase.collection\u003cuser\u003e(\"user-collection\").byId(\"\u003cuuid\u003e\").set({\n  name: \"new name\",\n  age: 11,\n});\n//  {name: \"new name\", age:11, _id: \"\u003cuuid\u003e\"}\n```\n\ndelete data\n\n```typescript\n//it will delete data match the id\nbrowserBase.collection\u003cuser\u003e(\"user-collection\").byId(\"\u003cuuid\u003e\").delete();\n\n//it will delete the collection\nbrowserBase.collection\u003cuser\u003e(\"user-collection\").delete();\n\n//it will delete the database\nbrowserBase.delete();\n```\n\n## Authors\n\n- [@DewaSRY](https://github.com/DewaSRY)\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdewasry%2Fbrowser-base","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdewasry%2Fbrowser-base","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdewasry%2Fbrowser-base/lists"}