{"id":23116985,"url":"https://github.com/gabrielborges2000/indexeddb-utility","last_synced_at":"2025-10-15T09:06:11.083Z","repository":{"id":195125990,"uuid":"692249876","full_name":"GabrielBorges2000/indexeddb-utility","owner":"GabrielBorges2000","description":"Esse projeto é uma lib para o npm que eu estava criando no começo da minha carreiro de desenvimento que o objetivo era facilitar o uso do indexeddb no navegador de forma asyncrona","archived":false,"fork":false,"pushed_at":"2023-09-19T06:28:08.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-05T00:13:25.122Z","etag":null,"topics":[],"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/GabrielBorges2000.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":"2023-09-15T23:14:25.000Z","updated_at":"2024-10-06T03:04:13.000Z","dependencies_parsed_at":"2024-12-17T04:18:11.087Z","dependency_job_id":"15a810a6-8855-465e-a188-777f8aad57c2","html_url":"https://github.com/GabrielBorges2000/indexeddb-utility","commit_stats":null,"previous_names":["gabrielborges2000/indexeddb_example_with_dixie","gabrielborges2000/indexeddb-utility"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/GabrielBorges2000/indexeddb-utility","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielBorges2000%2Findexeddb-utility","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielBorges2000%2Findexeddb-utility/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielBorges2000%2Findexeddb-utility/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielBorges2000%2Findexeddb-utility/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GabrielBorges2000","download_url":"https://codeload.github.com/GabrielBorges2000/indexeddb-utility/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GabrielBorges2000%2Findexeddb-utility/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279065442,"owners_count":26096115,"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","status":"online","status_checked_at":"2025-10-15T02:00:07.814Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-12-17T04:18:12.463Z","updated_at":"2025-10-15T09:06:11.052Z","avatar_url":"https://github.com/GabrielBorges2000.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# IndexedDB Utility\n\nEste é um utilitário simples para trabalhar com o IndexedDB no navegador. Ele permite criar e gerenciar bancos de dados, tabelas, salvar dados e até mesmo imagens no IndexedDB.\n\n## Modo de Uso\n\n1. Inclua o arquivo `indexeddb-utility.js` em seu projeto.\n\n2. Crie uma instância da classe `indexedSync` com as configurações necessárias:\n\n```javascript\n new indexedSync(tabela, dbVersion, config = {})\n\n```\n\n* `tabela`: Nome do banco de dados.\n* `dbVersion`: Versão do banco de dados.\n* `config`: Um objeto de configuração opcional que define o nome da tabela e o esquema dos campos.\n\n#### Exemplo:\n\n```javascript\nconst meuBanco = new indexedSync('NomeDoSeuBanco', 1, {\n  table: 'your-schema-table-name', // Nome da tabela\n  key: 'chave', // Chave primária\n  index: ['nomeproduto'], // Campos para criar índices\n  unique: false, // Defina como true se necessário\n});\n```\n\n## Salvando dados\n\nVocê pode salvar dados no IndexedDB usando o método `save` da classe `indexedAsync`. Ele aceita vários tipos de parâmetros, como arrays de objetos ou dados individuais.\n\n#### Exemplos:\n\n```javascript\nconst dados = [\n  // ...seus dados aqui\n];\nmeuBanco.useTable('you-schema').dados(dados).save();\n```\n\n## Obter todos os dados\n\nPara recuperar todos os dados da tabela, você pode usar o método `getAll` da classe `indexedAsync`.\n\n#### Exemplos:\n\n```javascript\nmeuBanco.useTable('you-schema').getAll(function (dados) {\n  // Faça algo com os dados obtidos\n});\n\n```\n\n## Obter dados pela Key\nPara recuperar todos os dados da tabela, você pode usar o método `getById` da classe `indexedAsync`.\n\n\n```javascript\nmeuBanco.useTable('you-schema').getById('your-key', function (result) {\n  // Faça algo com o registro encontrado\n});\n```\n\n## Atualizando Dados Pelo Id\n\nVocê pode atualizar dados no indexedAsync usando o método `updateId` da classe `indexedAsync`. Este método aceita um objeto que representa o registro a ser atualizado e um objeto com os novos dados.\n\n#### Exemplo:\n\n```javascript\nmeuBanco.updateId('chave', { nomeproduto: 'Novo Nome', codigobarra: 'Novo Código' }, function (updatedData) {\n  // Faça algo após a atualização, se necessário se necessário\n});\n\n```\n\n## Atualizando Todos os Dados de uma Schema\n\nPara atualizar todos os dados na tabela, você pode usar o método `updateAll` da classe `indexedAsync`. Este método aceita um objeto com os novos dados que serão aplicados a todos os registros.\n\n#### Exemplo:\n\n```javascript\nconst objeto = {\n  // Campos a serem atualizados\n};\nmeuBanco.updateAll(objeto);\n\n```\n## Deletando o Banco de Dados\n\nPara excluir o banco de dados inteiro, você pode usar o método `deleteDB` da classe`indexedAsync`.\n\n#### Exemplo:\n\n```javascipt\nmeuBanco.deleteDB('NomeDoBanco');\n```\n\n## Salvar Imagens\n\nEste utilitário também permite salvar imagens no IndexedDB. Você pode capturar uma imagem da câmera do usuário e salvá-la da seguinte forma:\n\n### Exemplo: \n\n```javascript\n// Capture uma imagem da câmera e salve-a no IndexedDB\nfunction captureImage() {\n  // ...Código para capturar a imagem da câmera\n\n  // Converta o canvas para um Blob (imagem)\n  canvas.toBlob(function (blob) {\n    // Chame o método saveImage para armazenar a imagem no IndexedDB\n    meuBanco.saveImage(blob);\n  }, 'image/jpeg'); // Especifique o tipo de imagem desejado (pode variar)\n}\n\n// Exemplo de uso:\nconst meuBanco = new indexedSync('NomeDoSeuBanco', 1, {\n  table: 'imagens',\n  key: 'id', // Chave primária adequada para as imagens\n  index: ['id'], // Campos para criar índices\n  unique: true, // Defina como true se desejar que os IDs das imagens sejam únicos\n});\n\n// Capture uma imagem da câmera e salve-a no IndexedDB\ncaptureImage();\n\n```\n\nLembre-se de substituir os nomes do banco de dados, tabela, chave primária e outros detalhes com os seus próprios.\n\n## Licença\nEste utilitário é fornecido sob a [Licença MIT](LICENSE).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielborges2000%2Findexeddb-utility","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgabrielborges2000%2Findexeddb-utility","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgabrielborges2000%2Findexeddb-utility/lists"}