https://phillipcurl.github.io/ngx-warehouse
An offline storage solution for Angular apps built on top of LocalForage.
Install via npm:
$ npm install --save ngx-warehouse
or Yarn:
$ yarn add ngx-warehouse
Then include in your apps module:
import { Component, NgModule } from '@angular/core';
import { NgxWarehouseModule } from 'ngx-warehouse';
@NgModule({
imports: [
NgxWarehouseModule
]
})
export class MyModule {}
You can also configure the NgxWarehouseModule, though it does come with default options to allow you to get up and running quickly.
import { NgxWarehouseModule, WarehouseConfig, DRIVER_TYPE } from 'ngx-warehouse';
const config: WarehouseConfig = {
driver: DRIVER_TYPE.DEFAULT,
name: 'Your App',
version: 1.0,
storeName: 'key_value_pairs', // Should be alphanumeric, with underscores.
description: 'A description of your app'
};
@NgModule({
declarations: [...],
imports: [
...
NgxWarehouseModule.configureWarehouse(config),
...
],
bootstrap: [...]
})
The following DRIVER_TYPE's are available:
Now you're ready to use ngx-warehouse in your app:
import { Warehouse } from 'ngx-warehouse';
@Component({
...
})
export class MyComponent implements OnInit {
constructor(public warehouse: Warehouse) { }
ngOnInit() {
this.warehouse.get('key').subscribe(
data => console.log(data),
error => console.log(error)
);
}
}
You may also find it useful to view the demo source.
Saves an item to the current offline data store. The following data types are valid:
Warehouse.set('key', value).subscribe(
(item) => {
// do something with newly saved item
},
(error) => {
// handle the error
}
);
Gets an item from the storage library and supplies the result to a callback. If the key does not exist, getItem() will return null.
Even if undefined is saved, null will be returned by getItem(). This is due to a limitation in localStorage, and for compatibility reasons localForage cannot store the value undefined.
Warehouse.get('key').subscribe(
(data) => {
// do something with the data
},
(error) => {
// handle the error
}
);
Removes the value of a key from the offline store.
Warehouse.remove('key').subscribe(
(success) => {
// do something on success
},
(error) => {
// handle the error
}
);
USE WITH CAUTION: Removes every key from the database, returning it to a blank slate.
Warehouse.destroy().subscribe(
(success) => {
// do something on success
},
(error) => {
// handle the error
}
);
Gets the number of keys in the offline store (i.e. its “length”).
Warehouse.count().subscribe(
(success) => {
// do something on success
},
(error) => {
// handle the error
}
);
Get the name of a key based on its ID.
This method is inherited from the localStorage API, but is acknowledged to be kinda weird.
Warehouse.count().subscribe(
(success) => {
// do something on success
},
(error) => {
// handle the error
}
);
Get the list of all keys in the datastore.
Warehouse.count().subscribe(
(success) => {
// do something on success
},
(error) => {
// handle the error
}
);
<script src="https://github.com/phillipcurl/ngx-warehouse/raw/master/node_modules/dist/umd/ngx-warehouse/ngx-warehouse.js"></script>
<script>
// everything is exported ngxWarehouse namespace
</script>
All documentation is auto-generated from the source via typedoc and can be viewed here: https://phillipcurl.github.io/ngx-warehouse/docs/
npm install
while current directory is this repoRun npm start
to start a development server on port 8000 with auto reload + tests.
Run npm test
to run tests once or npm run test:watch
to continually run tests.
npm run release
MIT