Balena settings storage utilities
npm install balena-settings-storagebalena-settings-storage
----------------------




Join our online chat at 
Balena settings storage utilities.
Role
----
The intention of this module is to provide low level access to how balena persists settings in both the filesystem and the browser.
THIS MODULE IS LOW LEVEL AND IS NOT MEANT TO BE USED BY END USERS DIRECTLY.
Unless you know what you're doing, use the balena SDK instead.
Installation
------------
Install balena-settings-storage by running:
``sh`
$ npm install --save balena-settings-storage
Documentation
-------------
* storage
* .getStorage(options) ⇒ storage
* ~set(name, value) ⇒ Promise
~get(name) ⇒ [ 'Promise' ].<\>
* ~has(name) ⇒ [ 'Promise' ].<Boolean>
* ~remove(name) ⇒ Promise
* ~clear() ⇒ Promise
storage | Param | Type | Description |
| --- | --- | --- |
| options | Object | options |
| [options.dataDirectory] | String \| False | the directory to use for storage in Node.js or false to create an isolated in memory instance. Values other than false are ignored in the browser. |
Example
`js
// with es6 imports
import { getStorage } from 'balena-settings-storage';
// or with node require
const { getStorage } = require('balena-settings-storage');
const storage = getStorage({
dataDirectory: '/opt/cache/balena'
});
`
* .getStorage(options) ⇒ storage
* ~set(name, value) ⇒ Promise
~get(name) ⇒ [ 'Promise' ].<\>
* ~has(name) ⇒ [ 'Promise' ].<Boolean>
* ~remove(name) ⇒ Promise
* ~clear() ⇒ Promise
#### getStorage~set(name, value) ⇒ Promise
Kind: inner method of getStorage
Summary: Set a value
Access: public
| Param | Type | Description |
| --- | --- | --- |
| name | String | name |
| value | \* | value |
Example
`js`
storage.set('token', '1234')
#### getStorage~get(name) ⇒ [ 'Promise' ].<\*>
Kind: inner method of getStorage
Summary: Get a value
Returns: [ 'Promise' ].<\*> - value or undefined
Access: public
| Param | Type | Description |
| --- | --- | --- |
| name | String | name |
Example
`js`
storage.get('token').then((token) => {
console.log(token)
});
#### getStorage~has(name) ⇒ [ 'Promise' ].<Boolean>
Kind: inner method of getStorage
Summary: Check if the value exists
Returns: [ 'Promise' ].<Boolean> - has value
Access: public
| Param | Type | Description |
| --- | --- | --- |
| name | String | name |
Example
`js`
storage.has('token').then((hasToken) => {
if (hasToken) {
console.log('Yes')
} else {
console.log('No')
});
#### getStorage~remove(name) ⇒ Promise
Kind: inner method of getStorage
Summary: Remove a value
Access: public
| Param | Type | Description |
| --- | --- | --- |
| name | String | name |
Example
`js`
storage.remove('token')
#### getStorage~clear() ⇒ Promise
Kind: inner method of getStorage
Summary: Remove all values
Access: public
Example
`js`
storage.clear()
Support
-------
If you're having any problem, please raise an issue on GitHub and the balena team will be happy to help.
Tests
-----
Run the test suite by doing:
`sh`
$ npm test
Contribute
----------
- Issue Tracker: github.com/balena-io-modules/balena-settings-storage/issues
- Source Code: github.com/balena-io-modules/balena-settings-storage
Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:
`sh``
$ npm run lint
License
-------
The project is licensed under the Apache 2.0 license.