ngx-warehouse
https://phillipcurl.github.io/ngx-warehouse
Table of contents
About
An offline storage solution for Angular apps built on top of LocalForage.
Installation
Install via npm:
$ npm install --save ngx-warehouse
or Yarn:
$ yarn add ngx-warehouse
Then include in your apps module:
;;
Configuration
You can also configure the NgxWarehouseModule, though it does come with default options to allow you to get up and running quickly.
; ;
The following DRIVER_TYPE's are available:
- DEFAULT - The warehouse will first try to connect to IndexedDB, then WebSQL, and finally LocalStorage if the first two fail.
- INDEXEDDB - Force the connection to IndexedDB.
- WEBSQL - Force the connection to WebSQL.
- LOCALSTORAGE - Force the connection to LocalStorage.
Usage
Now you're ready to use ngx-warehouse in your app:
;
You may also find it useful to view the demo source.
API
Warehouse.set(key: string, value: any): Observable < any >
Saves an item to the current offline data store. The following data types are valid:
- Array
- ArrayBuffer
- Blob
- Float32Array
- Float64Array
- Int8Array
- Int16Array
- Int32Array
- Number
- Object
- Uint8Array
- Uint8ClampedArray
- Uint16Array
- Uint32Array
- String
Warehouse.set'key', value.subscribe,;
Warehouse.get(key: string): Observable < any >
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,;
Warehouse.remove(key: string): Observable < any >
Removes the value of a key from the offline store.
Warehouse.remove'key'.subscribe,;
Warehouse.destroy(): Observable < any >
USE WITH CAUTION: Removes every key from the database, returning it to a blank slate.
Warehouse.destroy.subscribe,;
Warehouse.count(): Observable < number >
Gets the number of keys in the offline store (i.e. its “length”).
Warehouse.count.subscribe,;
Warehouse.key(): Observable < string >
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,;
Warehouse.keys(): Observable < string[] >
Get the list of all keys in the datastore.
Warehouse.count.subscribe,;
Usage without a module bundler
<script src="node_modules/dist/umd/ngx-warehouse/ngx-warehouse.js"></script>
<script>
// everything is exported ngxWarehouse namespace
</script>
Documentation
All documentation is auto-generated from the source via typedoc and can be viewed here: https://phillipcurl.github.io/ngx-warehouse/docs/
Development
Prepare your environment
- Install Node.js and NPM (should come with)
- Install local dev dependencies:
npm install
while current directory is this repo
Development server
Run npm start
to start a development server on port 8000 with auto reload + tests.
Testing
Run npm test
to run tests once or npm run test:watch
to continually run tests.
Release
- Bump the version in package.json (once the module hits 1.0 this will become automatic)
npm run release
License
MIT