# betajs-indexeddb

> BetaJS-IndexedDB is an IndexedDB wrapper for BetaJS.

Latest version **0.0.1** (published 2022-06-17) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install betajs-indexeddb
pnpm add betajs-indexeddb
yarn add betajs-indexeddb
bun add betajs-indexeddb
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2022-06-17 |
| First published | 2022-06-17 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 97.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | BetaJS |
| Maintainers | oliverfriedmann |

## Links

- npm: https://www.npmjs.com/package/betajs-indexeddb
- Repository: https://github.com/betajs/betajs-indexeddb
- Homepage: https://betajs.com
- Issues: https://github.com/betajs/betajs-indexeddb/issues
- npm.io page: https://npm.io/package/betajs-indexeddb

## Dependencies (2)

- [betajs](https://npm.io/package/betajs.md) ~1.0.96
- [betajs-data](https://npm.io/package/betajs-data.md) ~1.0.41

## Recent versions

- 0.0.1 (latest) — 2022-06-17

## README

# betajs-indexeddb 0.0.1
[![Code Climate](https://codeclimate.com/github/betajs/betajs-indexeddb/badges/gpa.svg)](https://codeclimate.com/github/betajs/betajs-indexeddb)
[![NPM](https://img.shields.io/npm/v/betajs-indexeddb.svg?style=flat)](https://www.npmjs.com/package/betajs-indexeddb)


BetaJS-IndexedDB is an IndexedDB wrapper for BetaJS.



## Getting Started


You can use the library in the browser and compile it as well.

#### Browser

```javascript
	<script src="betajs/dist/betajs.min.js"></script>
	<script src="betajs-data/dist/betajs-data.min.js"></script>
	<script src="https://unpkg.com/indexeddb@latest/dist/indexeddb.min.js"></script>
	<script src="betajs-indexeddb/dist/betajs-indexeddb.min.js"></script>
``` 

#### Compile

```javascript
	git clone https://github.com/betajs/betajs-indexeddb.git
	npm install
	grunt
```



## Basic Usage


We provide a simple abstraction for databases and tables, with a concrete implementation for IndexedDB.

First, you instantiate a database, e.g. a IndexedDB:

```javascript
	var database = new BetaJS.Data.Databases.IndexedDB.IndexedDBDatabase("database", {
	     'table1': "indexkey1,indexkey2",
         ...
    });
```
 
The `IndexedDBDatabase` class inherits from the abstract `Database` class.

Once you have a `database` instance, you can access database tables / collections as follows:

```javascript
	var table = database.getTable('my-table-name');
```

A `table` instance allows you to perform the typical (asynchronous) CRUD operations on the table:

```javascript
	table.insertRow({row data}).success(function (inserted) {...}).error(function (error) {...});
	
	table.removeRow({remove query}).success(function () {...}).error(function (error) {...});
	table.removeById(id).success(function () {...}).error(function (error) {...});
	
	table.updateRow({update query}, {row data}).success(function (updated) {...}).error(function (error) {...});
	table.updateById(id, {row data}).success(function (updated) {...}).error(function (error) {...});
	
	table.find({search query}, {limit, skip, sort}).success(function (rowIterator) {...}).error(function (error) {...});
	table.findOne({search query}, {skip, sort}).success(function (row) {...}).error(function (error) {...});
	table.findById(id).success(function (row) {...}).error(function (error) {...});
``` 

In most cases, you would not access database table instances directly but through the abstraction of a store.

Database Stores allow you to access a database table through the abstract of a `Store`, providing all the additional functionality from the `BetaJS-Data` module.

Once you have instantiated your `database` instance, you can create a corresponding `Store` for a table as follows, e.g. for a IndexedDB:

```javascript
	var store = new BetaJS.Data.Stores.DatabaseStore(database, "my-database-table");
```


## Links
| Resource   | URL |
| :--------- | --: |
| Homepage   | [https://betajs.com](https://betajs.com) |
| Git        | [git://github.com/betajs/betajs-indexeddb.git](git://github.com/betajs/betajs-indexeddb.git) |
| Repository | [https://github.com/betajs/betajs-indexeddb](https://github.com/betajs/betajs-indexeddb) |
| Blog       | [https://blog.betajs.com](https://blog.betajs.com) | 
| Twitter    | [https://twitter.com/thebetajs](https://twitter.com/thebetajs) | 
 



## Compatability
| Target | Versions |
| :----- | -------: |


## CDN
| Resource | URL |
| :----- | -------: |
| betajs-indexeddb.js | [http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb.js](http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb.js) |
| betajs-indexeddb.min.js | [http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb.min.js](http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb.min.js) |
| betajs-indexeddb-noscoped.js | [http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb-noscoped.js](http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb-noscoped.js) |
| betajs-indexeddb-noscoped.min.js | [http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb-noscoped.min.js](http://cdn.rawgit.com/betajs/betajs-indexeddb/master/dist/betajs-indexeddb-noscoped.min.js) |



## Dependencies
| Name | URL |
| :----- | -------: |
| betajs | [Open](https://github.com/betajs/betajs) |
| betajs-data | [Open](https://github.com/betajs/betajs-data) |


## Weak Dependencies
| Name | URL |
| :----- | -------: |
| betajs-scoped | [Open](https://github.com/betajs/betajs-scoped) |


## Main Contributors

- Oliver Friedmann
- Natasha Calleia

## License

Apache-2.0

---
_Source: https://npm.io/package/betajs-indexeddb · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
