ngx-dexie-observable
TypeScript icon, indicating that this package has built-in type declarations

1.0.0-beta.6 • Public • Published

ngx-dexie-observable

Dexie module for Angular 2.0+ projects

This is a fork of ngx-dexie with rxjs observable implementation

Install

npm install ngx-dexie-observable --save

How to use

Import and configure DexieModule

//...
import { DexieModule, DexieConfig } from 'ngx-dexie';
 
const config: DexieConfig = {
    databaseName: 'AppDatabase',//your database name here
    schema: {
        friends: '++id, first_name, last_name',
        teachers: '++id, first_name, last_name'
    } // any schema of your choice
};
 
@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        BrowserModule,
        DexieModule.forRoot(config)
    ],
    providers: [
 
    ],
    bootstrap: [AppComponent]
})
 
export class AppModule { }

Using your dexie instance

The DexieModule provides now a configured Dexie db instance and a Dexie db service, i.e. DexieService which can be injected anywhere inside the AppModule.

import { Injectable } from '@angular/core';
import { DexieService } from 'ngx-dexie';
 
@Injectable()
export class IndexedDbService {
 
    constructor(private dexieService: DexieService) {}
 
    addOneFriend(friendObject: Object) {
        this.dexieService.addOne('friends', friendObject);
    }
 
}

API

dexieService.addOne(table: string, object: Object)

Adds the entry object to the dexie table table Returns a promise which when resolved gives the key of the object added, when rejected gives the error that occured.

dexieService.addMultiple(table: string, objects: Object[])

Adds multiple objects to the dexie table table Returns a promise which works similar to Dexie bulkAdd()

dexieService.count(table: string)

Returns a promise which when resolved gives the number of objects in the table table

dexieService.addOrUpdateOne(table: string, object: Object, key?: any)

Works similar to Dexie put()

dexieService.addOrUpdateMultiple(table: string, objects: Object[], keys?: any)

Works similar to Dexie bulkPut()

dexieService.deleteOne(table: string, primaryKey: any)

Works similar to Dexie delete()

dexieService.deleteMultiple(table: string, primaryKeys: any[])

Works similar to Dexie bulkDelete()

dexieService.clearAll(table: string)

Works similar to Dexie clear()

dexieService.operateOnEach(table: string, callback: (item: any, idbCursor: any) => any)

Works similar to Dexie each()

dexieService.filter(table: string, filterFunction: (value: any) => boolean)

Works similar to Dexie filter()

dexieService.getByPrimaryKey(table: string, primaryKey: any, callback?: (item: Object) => any)

Works similar to Dexie get()

dexieService.getByKeyToValueMap(table: string, keyValueMap: Object, callback?: (item: Object) => any)

Works similar to Dexie get()

dexieService.getFirstNItemsOfTable(table: string, num: number)

Works similar to Dexie limit()

dexieService.orderBy(table: string, index: string)

Works similar to Dexie orderBy()

dexieService.offset(table: string, ignoreUpto: number)

Works similar to Dexie offset()

dexieService.reverse(table: string)

Works similar to Dexie reverse()

dexieService.toArray(table: string, callback?: (objects: Object[]) => any)

Works similar to Dexie toArray()

dexieService.toCollection(table: string)

Works similar to Dexie toCollection()

dexieService.update(table: string, key: any, changes: Object)

Works similar to Dexie update()

Readme

Keywords

Package Sidebar

Install

npm i ngx-dexie-observable

Weekly Downloads

4

Version

1.0.0-beta.6

License

ISC

Unpacked Size

25.9 kB

Total Files

14

Last publish

Collaborators

  • rosostolato