Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lucivuc/electron-prefs
User preferences and configuration settings persistence feature for Electron-based apps.
https://github.com/lucivuc/electron-prefs
configuration electron node node-js nodejs settings-storage user-preferences
Last synced: about 2 months ago
JSON representation
User preferences and configuration settings persistence feature for Electron-based apps.
- Host: GitHub
- URL: https://github.com/lucivuc/electron-prefs
- Owner: luciVuc
- Created: 2018-04-05T00:20:57.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-07-07T03:54:22.000Z (over 4 years ago)
- Last Synced: 2024-12-10T03:35:07.448Z (about 2 months ago)
- Topics: configuration, electron, node, node-js, nodejs, settings-storage, user-preferences
- Language: JavaScript
- Homepage:
- Size: 71.3 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# Electron-prefs
> *User preferences and configuration settings persistence feature for `Electron`-based apps.*
## Overview
As `Electron` doesn't provide a built-in mechanism to easily persist and retrieve user preferences and configuration settings, install and include the `electron-prefs` module in your `Electron` project and let it handle that for you, so you can focus on your app development.
You can use the `electron-prefs` module directly in both the main and renderer process.
All user preferences and configuration settings are stored locally in a JSON file and can be accessed using `app.getPath('userData')`.
## Installation
`npm install electron-prefs`
or
`npm install --save electron-prefs`
---
## Usage
```js
const electron = require("electron");
const ElectronPrefs = require('electron-prefs');
const prefs = new ElectronPrefs({
fileName: "config.js",
defaults: {
window: {
width: 600,
height: 300
}
}
});prefs.set('foo', 'bar');
console.log(prefs.get('foo'));
//=> barconsole.log(prefs.get("window"));
//=> { width: 600, height: 300 }// use dot-notation to access nested properties
prefs.set('window.width', 700);
console.log(prefs.get("window"));
//=> { width: 700, height: 300 }
console.log(prefs.get('window.width'));
//=> 700prefs.delete('foo');
console.log(prefs.get('foo'));
//=> undefined```
---
## API
* ### ***Constructor:***
▸ **`new ElectronPrefs(mOptions)`**
Creates an instance of `ElectronPrefs`.
*Parameters:*
|Type|Name|Description|
|:---|:---|:----------|
|`Object`|`mOptions`|A JSON-like object containing instance options|
|`String`|`mOptions.fileName`|The name of the file where preferences are stored|
|`String`|`mOptions.sFilePath`|The full path to the settings data file.|
|`Object`|`mOptions.defaults`|A set of default settings and/or preferences|---
* ### ***Properties:***
|Type|Name|Description|Read-only|Static|
|:---|:---|:---|:---|:---|
|`Object`|**`defaults`**|The default values for this instance.|Yes|No|
|`String`|**`path`**|The full path to the configuration data file.|Yes|No|
|`Number`|**`size`**|he number of entries in the settings file (same as `length`).|Yes|No|
|`Number`|**`length`**|he number of entries in the settings file (same as `size`).|Yes|No|
|`Function`|**`superClass`**|Returns a reference to the super class.|Yes|Yes|---
* ### ***Methods:***
▸ **`ElectronPrefs.superClass.parseDataFile(sFilePath, mDefaults)`**
Reads the settings data file and returns its content as a `JSON` object.
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`String`|`sFilePath`|The full path to the settings data file.|
|`Object`|`mDefaults`|A set of default values to return if it fails loading the settings data file.|***Returns:*** `Object` - A `JSON`-like object containing the settings and user preferences iub the data file.
---
▸ **`ElectronPrefs.superClass.flattenObject(oObj, sSeparator)`**
*Flattens* nested objects into a single-depth object. For example:
`{ foo: 'bar', baz: { foo: 'bar' } }`
will turn into:
`{ foo: 'bar', 'baz.foo': 'bar' }`
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`Object`|`oObj`|The object (with nested objects) to *flatten*.|
|`String`|`sSeparator`|A string to use as separator between the keys. By default, the separator is `.` (dot).|***Returns:*** `Object` - The *flatten* object.
---
▸ **`ElectronPrefs.prototype.clear()`**
Removes all the settings in the settings list.
***Parameters:*** None
***Returns:*** `ElectronPrefs` - Self-reference for method chaining calls.
---
▸ **`ElectronPrefs.prototype.delete(sKey)`**
Removes the specified settings item from the settings list.
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`String`|`sKey`|The settings item to remove.|***Returns:*** `ElectronPrefs` - Self-reference for method chaining calls.
---
▸ **`ElectronPrefs.prototype.entries()`**
Returns a array containing all the `[key, value]` pairs for each settings item in the settings list.
***Parameters:*** None
***Returns:*** `Array` - The `[key, value]` pairs array.
---
▸ **`ElectronPrefs.prototype.forEach(fCallback, thisArg)`**
Executes the given function once for each `key-value` pair in the settings list.
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`Function`|`fCallback`|The function to execute for each `key-value` pair.|
|`Object`|`thisArg`|The value of `this` when executing the callback function.|***Returns:*** `ElectronPrefs` - Self-reference for method chaining calls.
---
▸ **`ElectronPrefs.prototype.has(sKey)`**
Returns whether the settings list contains a settings item with the given key or not.
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`String`|`sKey`|The key to check the settings list for.|***Returns:*** `Boolean` - `true` if the settings list contains a settings item with given key, or `false` otherwise.
---
▸ **`ElectronPrefs.prototype.get(sKey)`**
Gets the value of the settings item referenced by the given key in the settings list, or the whole list if no key is given.
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`String`|`sKey`|The key of a settings item in the settings list.|***Returns:*** `any` - The value of the settings item referenced by the key in the settings list, or the whole list if no key is given.
---
▸ **`ElectronPrefs.prototype.set(sKey, sValue)`**
Sets the given value as the value of the settings item referenced by the given key in the settings list.
***Parameters:***
|Type|Name|Description|
|:---|:---|:----------|
|`String`|`sKey`|The key of a settings item in the settings list.|
|`any`|`sValue`|The value to assign to the settings item referenced by the key in the settings list.|***Returns:*** `ElectronPrefs` - Self-reference for method chaining calls.
---
▸ **`ElectronPrefs.prototype.keys()`**
Returns the names of all enumerable settings and preferences of this object.
***Parameters:*** None
***Returns:*** `String[]` - The names of the enumerable settings and preferences.
---
▸ **`ElectronPrefs.prototype.values()`**
Returns the names of all enumerable settings and preferences of this object.
***Parameters:*** None
***Returns:*** `String[]` - The values of the enumerable settings and preferences.
---
## Version
1.0.8
---