balena-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:
$ npm install --save balena-settings-storage
Documentation
storage.getStorage(options) ⇒ storage
Kind: static method of storage
Summary: Get an instance of storage module
Access: public
Param | Type | Description |
---|
options | Object | options |
options.dataDirectory | string | the directory to use for storage in Node.js. Ignored in the browser. |
Example
const storage = require('balena-settings-storage')({
dataDirectory: '/opt/cache/balena'
})
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
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
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
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
storage.remove('token')
getStorage~clear() ⇒ Promise
Kind: inner method of getStorage
Summary: Remove all values
Access: public
Example
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:
$ npm test
Contribute
Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:
$ npm run lint
License
The project is licensed under the Apache 2.0 license.