From 8ab2ebd3b25091d03e654853a3186e58a71cc977 Mon Sep 17 00:00:00 2001 From: Arina Date: Fri, 18 Sep 2020 02:03:20 +0700 Subject: [PATCH 1/9] Remove dependency of the 'remote' module, remove appeal to 'fs' module from renderer process, add obligatory 'init' function. --- src/settings.ts | 134 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 109 insertions(+), 25 deletions(-) diff --git a/src/settings.ts b/src/settings.ts index c9608c6..f601c90 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,3 +1,4 @@ +/* eslint linebreak-style: ["error", "windows"] */ import electron from 'electron'; import fs from 'fs'; import mkdirp from 'mkdirp'; @@ -157,18 +158,13 @@ function getElectron(): typeof Electron { } /** - * Returns the Electron app. The app may need be accessed - * via `Remote` depending on whether this code is running - * in the main or renderer process. + * Returns the Electron app. * * @returns The Electron app. * @internal */ function getElectronApp(): Electron.App { - const e = getElectron(); - const app = e.app ?? e.remote.app; - - return app; + return getElectron().app; } /** @@ -210,7 +206,7 @@ function ensureSettingsFile(): Promise { fs.stat(filePath, (err) => { if (err) { if (err.code === 'ENOENT') { - saveSettings({}).then(resolve, reject); + guideSavingSettings({}).then(resolve, reject); } else { reject(err); } @@ -235,7 +231,7 @@ function ensureSettingsFileSync(): void { } catch (err) { if (err) { if (err.code === 'ENOENT') { - saveSettingsSync({}); + guideSavingSettingsSync({}); } else { throw err; } @@ -288,6 +284,20 @@ function ensureSettingsDirSync(): void { } } +/** + * Checks what process is it, depending on that either calls [[loadSettings|loadSettings()]] + * directly or via sending async message to main process. + * + * @returns A promise which resolves with the settings object. + * @internal + */ +function guideLoadingSettings(): Promise { + const { ipcRenderer } = getElectron(); + return ipcRenderer + ? ipcRenderer.invoke('electron-settings-load-settings') + : loadSettings(); +} + /** * First ensures that the settings file exists then loads * the settings from the disk. @@ -315,6 +325,20 @@ function loadSettings(): Promise { }); } +/** + * Checks what process is it, depending on that either calls [[loadSettingsSync|loadSettingsSync()]] + * directly or via sending sync message to main process. + * + * @returns The settings object. + * @internal + */ +function guideLoadingSettingSync(): SettingsObject { + const { ipcRenderer } = getElectron(); + return ipcRenderer + ? ipcRenderer.sendSync('electron-settings-load-settings-sync') + : loadSettingsSync(); +} + /** * First ensures that the settings file exists then loads * the settings from the disk. @@ -332,6 +356,21 @@ function loadSettingsSync(): SettingsObject { return JSON.parse(data); } +/** + * Checks what process is it, depending on that either calls [[saveSettings|saveSettings()]] + * directly or via sending async message to main process. + * + * @param obj The settings object to save. + * @returns A promise which resolves when the settings have been saved. + * @internal + */ +function guideSavingSettings(obj: SettingsObject): Promise { + const { ipcRenderer } = getElectron(); + return ipcRenderer + ? ipcRenderer.invoke('electron-settings-save-settings', obj) + : saveSettings(obj); +} + /** * Saves the settings to the disk. * @@ -363,6 +402,22 @@ function saveSettings(obj: SettingsObject): Promise { }); } +/** + * Checks what process is it, depending on that either calls [[saveSettingsSync|saveSettingsSync()]] + * directly or via sending async message to main process. + * + * @param obj The settings object to save. + * @internal + */ +function guideSavingSettingsSync(obj: SettingsObject): void { + const { ipcRenderer } = getElectron(); + if (ipcRenderer) { + ipcRenderer.sendSync('electron-settings-save-settings-sync', obj); + } else { + saveSettingsSync(obj); + } +} + /** * Saves the settings to the disk. * @@ -383,6 +438,34 @@ function saveSettingsSync(obj: SettingsObject): void { } } +/** + * Initializes the Electron Settings in the main process. + * Throws an error if you try to call it in renderer process. + * + * @example + * + * settings.init(); + */ +function init(): void { + const { ipcMain } = getElectron(); + if (!ipcMain) { + throw new Error('You should init settings only in main process'); + } + ipcMain.handle('electron-settings-load-settings', () => { + return loadSettings(); + }); + ipcMain.on('electron-settings-load-settings-sync', (event) => { + // eslint-disable-next-line no-param-reassign + event.returnValue = loadSettingsSync(); + }); + ipcMain.handle('electron-settings-save-settings', (event, obj) => { + return saveSettings(obj); + }); + ipcMain.on('electron-settings-save-settings-sync', (event, obj) => { + saveSettingsSync(obj); + }); +} + /** * Returns the path to the settings file. * @@ -495,7 +578,7 @@ function reset(): void { * // => true */ async function has(keyPath: KeyPath): Promise { - const obj = await loadSettings(); + const obj = await guideLoadingSettings(); return _has(obj, keyPath); } @@ -542,7 +625,7 @@ async function has(keyPath: KeyPath): Promise { * // => true */ function hasSync(keyPath: KeyPath): boolean { - const obj = loadSettingsSync(); + const obj = guideLoadingSettingSync(); return _has(obj, keyPath); } @@ -607,7 +690,7 @@ async function get(): Promise; async function get(keyPath: KeyPath): Promise; async function get(keyPath?: KeyPath): Promise { - const obj = await loadSettings(); + const obj = await guideLoadingSettings(); if (keyPath) { return _get(obj, keyPath); @@ -674,7 +757,7 @@ function getSync(): SettingsObject; function getSync(keyPath: KeyPath): SettingsValue; function getSync(keyPath?: KeyPath): SettingsValue { - const obj = loadSettingsSync(); + const obj = guideLoadingSettingSync(); if (keyPath) { return _get(obj, keyPath); @@ -747,14 +830,14 @@ async function set(...args: [SettingsObject] | [KeyPath, SettingsValue]): Promis if (args.length === 1) { const [value] = args; - return saveSettings(value); + return guideSavingSettings(value); } else { const [keyPath, value] = args; - const obj = await loadSettings(); + const obj = await guideLoadingSettings(); _set(obj, keyPath, value); - return saveSettings(obj); + return guideSavingSettings(obj); } } @@ -818,14 +901,14 @@ function setSync(...args: [SettingsObject] | [KeyPath, SettingsValue]): void { if (args.length === 1) { const [value] = args; - saveSettingsSync(value); + guideSavingSettingsSync(value); } else { const [keyPath, value] = args; - const obj = loadSettingsSync(); + const obj = guideLoadingSettingSync(); _set(obj, keyPath, value); - saveSettingsSync(obj); + guideSavingSettingsSync(obj); } } @@ -885,14 +968,14 @@ async function unset(keyPath: KeyPath): Promise; async function unset(keyPath?: KeyPath): Promise { if (keyPath) { - const obj = await loadSettings(); + const obj = await guideLoadingSettings(); _unset(obj, keyPath); - return saveSettings(obj); + return guideSavingSettings(obj); } else { // Unset all settings by saving empty object. - return saveSettings({}); + return guideSavingSettings({}); } } @@ -948,18 +1031,19 @@ function unsetSync(keyPath: KeyPath): void; function unsetSync(keyPath?: KeyPath): void { if (keyPath) { - const obj = loadSettingsSync(); + const obj = guideLoadingSettingSync(); _unset(obj, keyPath); - saveSettingsSync(obj); + guideSavingSettingsSync(obj); } else { // Unset all settings by saving empty object. - saveSettingsSync({}); + guideSavingSettingsSync({}); } } export = { + init, file, configure, reset, From 7eb6078efa1dbdcbfb166ee9e64efdf401f1ba8b Mon Sep 17 00:00:00 2001 From: Arina Date: Fri, 18 Sep 2020 17:16:17 +0700 Subject: [PATCH 2/9] Add install script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 1f5724d..05233fa 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ ], "scripts": { "build": "tsc", + "install": "npm run build", "lint": "eslint src --ext .ts", "docs": "typedoc && echo \"electron-settings.js.org\" > docs/CNAME", "release": "standard-version", From 83bf487538fc742e0803d56a88c0540e18308018 Mon Sep 17 00:00:00 2001 From: Arina Date: Fri, 18 Sep 2020 17:51:36 +0700 Subject: [PATCH 3/9] Remove .npmignore --- .npmignore | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 .npmignore diff --git a/.npmignore b/.npmignore deleted file mode 100644 index be74812..0000000 --- a/.npmignore +++ /dev/null @@ -1,7 +0,0 @@ -docs -src -.eslintrc.js -.travis.yml -tsconfig.json -typedoc.json - From 6fd8e00cba06f8e16db285f459911a6730b50266 Mon Sep 17 00:00:00 2001 From: Arina Date: Fri, 18 Sep 2020 23:10:38 +0700 Subject: [PATCH 4/9] Remove install script --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 05233fa..1f5724d 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ ], "scripts": { "build": "tsc", - "install": "npm run build", "lint": "eslint src --ext .ts", "docs": "typedoc && echo \"electron-settings.js.org\" > docs/CNAME", "release": "standard-version", From 4f0b207421393c8b7ae39cc32f39fdb8feae0d30 Mon Sep 17 00:00:00 2001 From: Arina Date: Fri, 18 Sep 2020 23:30:31 +0700 Subject: [PATCH 5/9] Add built files --- .gitignore | 1 - dist/settings.d.ts | 607 +++++++++++++++++++++++++++++++++++++++ dist/settings.js | 655 +++++++++++++++++++++++++++++++++++++++++++ dist/settings.js.map | 1 + 4 files changed, 1263 insertions(+), 1 deletion(-) create mode 100644 dist/settings.d.ts create mode 100644 dist/settings.js create mode 100644 dist/settings.js.map diff --git a/.gitignore b/.gitignore index 816ae80..6cb772b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ -dist node_modules tmp diff --git a/dist/settings.d.ts b/dist/settings.d.ts new file mode 100644 index 0000000..acb2b37 --- /dev/null +++ b/dist/settings.d.ts @@ -0,0 +1,607 @@ +/** + * At the basic level, a key path is the string equivalent + * of dot notation in JavaScript. Take the following object, + * for example: + * + * const obj = { + * color: { + * name: 'cerulean', + * code: { + * rgb: [0, 179, 230], + * hex: '#003BE6' + * } + * } + * } + * + * You can access the value of the key `name` in plain + * JavaScript by traversing the tree using object dot + * notation, like so: + * + * console.log(obj.color.name); + * // => "cerulean" + * + * Similarly in Electron Settings, you are reading and + * writing to a JSON object in a file, and a key path is + * just a string that points to a specific key within that + * object -- essentially using object dot notation in + * string form. + * + * settings.get('color.name'); + * // => "cerulean" + * + * Key paths need not be just strings. In fact, there are + * perfectly valid use-cases where you might need to access + * a key, but the name of the key is stored in some + * variable. In this case, you can specify an array of + * strings which can be flattened into a regular key path. + * + * const h = 'hue'; + * settings.get(['color', h]); + * // => undefined + * + * Additionally, since Electron Settings uses Lodash's + * {@link https://lodash.com/docs/4.17.15#get|get()} + * function under the hood, you can even use array syntax: + * + * settings.get('color.code.rgb[1]'); + * // => 179 + * + * Using key paths, you are not limited to setting only + * top-level keys like you would be with LocalStorage. With + * Electron Settings, you can deeply nest properties like + * you would with any other object in JavaScript, and it + * just feels natural. + */ +declare type KeyPath = string | Array; +/** + * `SettingsValue` types are the datatypes supported by + * Electron Settings. Since Electron Settings reads and + * writes to a JSON file, any value you set must be a valid + * JSON value. This does however mean that `Date` types are + * _not_ supported. + * + * Either simply store a numeric unix timestamp using + * `Date.now()`, or convert dates back into `Date` types + * using `new Date()`: + * + * await settings.set('user.lastLogin', new Date()); + * + * const lastLogin = await settings.get('user.lastLogin'); + * const lastLoginDate = new Date(lastLogin); + */ +declare type SettingsValue = null | boolean | string | number | SettingsObject | SettingsValue[]; +/** + * A `SettingsObject` is an object whose property values + * are of the type `SettingsValue`. + */ +declare type SettingsObject = { + [key: string]: SettingsValue; +}; +/** + * `Config` types contain all the configuration options for + * Electron Settings that can be set using + * [[configure|configure()]]. + */ +declare type Config = { + /** + * Whether or not to save the settings file atomically. + */ + atomicSave: boolean; + /** + * The path to the settings directory. Defaults to your + * app's user data direcory. + */ + dir?: string; + /** + * A custom Electron instance to use. Great for testing! + */ + electron?: typeof Electron; + /** + * The name of the settings file that will be saved to + * the disk. + */ + fileName: string; + /** + * The number of spaces to use when stringifying the data + * before saving to disk if `prettify` is set to `true`. + */ + numSpaces: number; + /** + * Whether or not to prettify the data when it's saved to + * disk. + */ + prettify: boolean; +}; +/** + * Initializes the Electron Settings in the main process. + * Throws an error if you try to call it in renderer process. + * + * @example + * + * settings.init(); + */ +declare function init(): void; +/** + * Returns the path to the settings file. + * + * In general, the settings file is stored in your app's + * user data directory in a file called `settings.json`. + * The default user data directory varies by system. + * + * - **macOS** - `~/Library/Application\ Support/` + * - **Windows** - `%APPDATA%/` + * - **Linux** - Either `$XDG_CONFIG_HOME/` or + * `~/.config/` + * + * Although it is not recommended, you may change the name + * or location of the settings file using + * [[configure|configure()]]. + * + * @returns The path to the settings file. + * @example + * + * Get the path to the settings file. + * + * settings.file(); + * // => /home/nathan/.config/MyApp/settings.json + */ +declare function file(): string; +/** + * Sets the configuration for Electron Settings. To reset + * to defaults, use [[reset|reset()]]. + * + * Defaults: + * + * { + * atomicSave: true, + * fileName: 'settings.json', + * numSpaces: 2, + * prettify: false + * } + * + * @param customConfig The custom configuration to use. + * @example + * + * Update the filename to `cool-settings.json` and prettify + * the output. + * + * settings.configure({ + * fileName: 'cool-settings.json', + * prettify: true + * }); + */ +declare function configure(customConfig: Partial): void; +/** + * Resets the Electron Settings configuration to defaults. + * + * @example + * + * Reset configuration to defaults. + * + * settings.reset(); + */ +declare function reset(): void; +/** + * Checks if the given key path exists. For sync, + * use [[hasSync|hasSync()]]. + * + * @category Core + * @param keyPath The key path to check. + * @returns A promise which resolves to `true` if the + * `keyPath` exists, else `false`. + * @example + * + * Check if the value at `color.name` exists. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * const exists = await settings.has('color.name'); + * // => true + * + * @example + * + * Check if the value at `color.hue` exists. + * + * const h = 'hue'; + * const exists = await settings.has(['color', h]); + * // => false + * + * @example + * + * Check if the value at `color.code.rgb[1]` exists. + * + * const exists = await settings.has(color.code.rgb[1]); + * // => true + */ +declare function has(keyPath: KeyPath): Promise; +/** + * Checks if the given key path exists. For async, + * use [[hasSync|hasSync()]]. + * + * @category Core + * @param keyPath The key path to check. + * @returns `true` if the `keyPath` exists, else `false`. + * @example + * + * Check if the value at `color.name` exists. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * const exists = settings.hasSync('color.name'); + * // => true + * + * @example + * + * Check if the value at `color.hue` exists. + * + * const h = 'hue'; + * const exists = settings.hasSync(['color', h]); + * // => false + * + * @example + * + * Check if the value at `color.code.rgb[1]` exists. + * + * const exists = settings.hasSync(color.code.rgb[1]); + * // => true + */ +declare function hasSync(keyPath: KeyPath): boolean; +/** + * Gets all settings. For sync, use + * [[getSync|getSync()]]. + * + * @category Core + * @returns A promise which resolves with all settings. + * @example + * + * Gets all settings. + * + * const obj = await get(); + */ +declare function get(): Promise; +/** + * Gets the value at the given key path. For sync, + * use [[getSync|getSync()]]. + * + * @category Core + * @param keyPath The key path of the property. + * @returns A promise which resolves with the value at the + * given key path. + * @example + * + * Get the value at `color.name`. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * const value = await settings.get('color.name'); + * // => "cerulean" + * + * @example + * + * Get the value at `color.hue`. + * + * const h = 'hue'; + * const value = await settings.get(['color', h]); + * // => undefined + * + * @example + * + * Get the value at `color.code.rgb[1]`. + * + * const h = 'hue'; + * const value = await settings.get('color.code.rgb[1]'); + * // => 179 + */ +declare function get(keyPath: KeyPath): Promise; +/** + * Gets all settings. For async, use [[get|get()]]. + * + * @category Core + * @returns All settings. + * @example + * + * Gets all settings. + * + * const obj = getSync(); + */ +declare function getSync(): SettingsObject; +/** + * Gets the value at the given key path. For async, + * use [[get|get()]]. + * + * @category Core + * @param keyPath The key path of the property. + * @returns The value at the given key path. + * @example + * + * Get the value at `color.name`. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * const value = settings.getSync('color.name'); + * // => "cerulean" + * + * @example + * + * Get the value at `color.hue`. + * + * const h = 'hue'; + * const value = settings.getSync(['color', h]); + * // => undefined + * + * @example + * + * Get the value at `color.code.rgb[1]`. + * + * const h = 'hue'; + * const value = settings.getSync('color.code.rgb[1]'); + * // => 179 + */ +declare function getSync(keyPath: KeyPath): SettingsValue; +/** + * Sets all settings. For sync, use [[setSync|setSync()]]. + * + * @category Core + * @param obj The new settings. + * @returns A promise which resolves when the settings have + * been set. + * @example + * + * Set all settings. + * + * await settings.set({ aqpw: 'nice' }); + */ +declare function set(obj: SettingsObject): Promise; +/** + * Sets the value at the given key path. For sync, + * use [[setSync|setSync()]]. + * + * @category Core + * @param keyPath The key path of the property. + * @param value The value to set. + * @returns A promise which resolves when the setting has + * been set. + * @example + * + * Change the value at `color.name` to `sapphire`. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * await settings.set('color.name', 'sapphire'); + * + * @example + * + * Set the value of `color.hue` to `blue-ish`. + * + * const h = 'hue'; + * await settings.set(['color', h], 'blue-ish); + * + * @example + * + * Change the value of `color.code`. + * + * await settings.set('color.code', { + * rgb: [16, 31, 134], + * hex: '#101F86' + * }); + */ +declare function set(keyPath: KeyPath, obj: SettingsValue): Promise; +/** + * Sets all settings. For async, use [[set|set()]]. + * + * @category Core + * @param obj The new settings. + * @example + * + * Set all settings. + * + * settings.setSync({ aqpw: 'nice' }); + */ +declare function setSync(obj: SettingsObject): void; +/** + * Sets the value at the given key path. For async, + * use [[set|set()]]. + * + * @category Core + * @param keyPath The key path of the property. + * @param value The value to set. + * @example + * + * Change the value at `color.name` to `sapphire`. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * settings.setSync('color.name', 'sapphire'); + * + * @example + * + * Set the value of `color.hue` to `blue-ish`. + * + * const h = 'hue'; + * settings.setSync(['color', h], 'blue-ish); + * + * @example + * + * Change the value of `color.code`. + * + * settings.setSync('color.code', { + * rgb: [16, 31, 134], + * hex: '#101F86' + * }); + */ +declare function setSync(keyPath: KeyPath, value: SettingsValue): void; +/** + * Unsets all settings. For sync, use [[unsetSync|unsetSync()]]. + * + * @category Core + * @returns A promise which resolves when the settings have + * been unset. + * @example + * + * Unsets all settings. + * + * await settings.unset(); + */ +declare function unset(): Promise; +/** + * Unsets the property at the given key path. For sync, + * use [[unsetSync|unsetSync()]]. + * + * @category Core + * @param keyPath The key path of the property. + * @returns A promise which resolves when the setting has + * been unset. + * @example + * + * Unset the property `color.name`. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * await settings.unset('color.name'); + * + * await settings.get('color.name'); + * // => undefined + * + * @example + * + * Unset the property `color.code.rgba[1]`. + * + * await settings.unset('color.code.rgba[1]'); + * + * await settings.get('color.code.rgb'); + * // => [0, null, 230] + */ +declare function unset(keyPath: KeyPath): Promise; +/** + * Unsets all settings. For async, use [[unset|unset()]]. + * + * @category Core + * @example + * + * Unsets all settings. + * + * settings.unsetSync(); + */ +declare function unsetSync(): void; +/** + * Unsets the property at the given key path. For async, + * use [[unset|unset()]]. + * + * @category Core + * @param keyPath The key path of the property. + * @example + * + * Unset the property `color.name`. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * settings.unsetSync('color.name'); + * + * settings.getSync('color.name'); + * // => undefined + * + * @example + * + * Unset the property `color.code.rgba[1]`. + * + * settings.unsetSync('color.code.rgba[1]'); + * + * settings.getSync('color.code.rgb'); + * // => [0, null, 230] + */ +declare function unsetSync(keyPath: KeyPath): void; +declare const _default: { + init: typeof init; + file: typeof file; + configure: typeof configure; + reset: typeof reset; + has: typeof has; + hasSync: typeof hasSync; + get: typeof get; + getSync: typeof getSync; + set: typeof set; + setSync: typeof setSync; + unset: typeof unset; + unsetSync: typeof unsetSync; +}; +export = _default; diff --git a/dist/settings.js b/dist/settings.js new file mode 100644 index 0000000..fef41b5 --- /dev/null +++ b/dist/settings.js @@ -0,0 +1,655 @@ +"use strict"; +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +/* eslint linebreak-style: ["error", "windows"] */ +var electron_1 = __importDefault(require("electron")); +var fs_1 = __importDefault(require("fs")); +var mkdirp_1 = __importDefault(require("mkdirp")); +var path_1 = __importDefault(require("path")); +var write_file_atomic_1 = __importDefault(require("write-file-atomic")); +var lodash_get_1 = __importDefault(require("lodash.get")); +var lodash_has_1 = __importDefault(require("lodash.has")); +var lodash_set_1 = __importDefault(require("lodash.set")); +var lodash_unset_1 = __importDefault(require("lodash.unset")); +/** @internal */ +var defaultConfig = { + atomicSave: true, + fileName: 'settings.json', + numSpaces: 2, + prettify: false, +}; +/** @internal */ +var config = __assign({}, defaultConfig); +/** + * Returns the Electron instance. The developer may define + * a custom Electron instance by using `configure()`. + * + * @returns The Electron instance. + * @internal + */ +function getElectron() { + var _a; + return (_a = config.electron) !== null && _a !== void 0 ? _a : electron_1.default; +} +/** + * Returns the Electron app. + * + * @returns The Electron app. + * @internal + */ +function getElectronApp() { + return getElectron().app; +} +/** + * Returns the path to the settings directory. The path + * may be customized by the developer by using + * `configure()`. + * + * @returns The path to the settings directory. + * @internal + */ +function getSettingsDirPath() { + var _a; + return (_a = config.dir) !== null && _a !== void 0 ? _a : getElectronApp().getPath('userData'); +} +/** + * Returns the path to the settings file. The file name + * may be customized by the developer using `configure()`. + * + * @returns The path to the settings file. + * @internal + */ +function getSettingsFilePath() { + var dir = getSettingsDirPath(); + return path_1.default.join(dir, config.fileName); +} +/** + * Ensures that the settings file exists. If it does not + * exist, then it is created. + * + * @returns A promise which resolves when the settings file exists. + * @internal + */ +function ensureSettingsFile() { + var filePath = getSettingsFilePath(); + return new Promise(function (resolve, reject) { + fs_1.default.stat(filePath, function (err) { + if (err) { + if (err.code === 'ENOENT') { + guideSavingSettings({}).then(resolve, reject); + } + else { + reject(err); + } + } + else { + resolve(); + } + }); + }); +} +/** + * Ensures that the settings file exists. If it does not + * exist, then it is created. + * + * @internal + */ +function ensureSettingsFileSync() { + var filePath = getSettingsFilePath(); + try { + fs_1.default.statSync(filePath); + } + catch (err) { + if (err) { + if (err.code === 'ENOENT') { + guideSavingSettingsSync({}); + } + else { + throw err; + } + } + } +} +/** + * Ensures that the settings directory exists. If it does + * not exist, then it is created. + * + * @returns A promise which resolves when the settings dir exists. + * @internal + */ +function ensureSettingsDir() { + var dirPath = getSettingsDirPath(); + return new Promise(function (resolve, reject) { + fs_1.default.stat(dirPath, function (err) { + if (err) { + if (err.code === 'ENOENT') { + mkdirp_1.default(dirPath).then(function () { return resolve(); }, reject); + } + else { + reject(err); + } + } + else { + resolve(); + } + }); + }); +} +/** + * Ensures that the settings directory exists. If it does + * not exist, then it is created. + * + * @internal + */ +function ensureSettingsDirSync() { + var dirPath = getSettingsDirPath(); + try { + fs_1.default.statSync(dirPath); + } + catch (err) { + if (err.code === 'ENOENT') { + mkdirp_1.default.sync(dirPath); + } + else { + throw err; + } + } +} +/** + * Checks what process is it, depending on that either calls [[loadSettings|loadSettings()]] + * directly or via sending async message to main process. + * + * @returns A promise which resolves with the settings object. + * @internal + */ +function guideLoadingSettings() { + var ipcRenderer = getElectron().ipcRenderer; + return ipcRenderer + ? ipcRenderer.invoke('electron-settings-load-settings') + : loadSettings(); +} +/** + * First ensures that the settings file exists then loads + * the settings from the disk. + * + * @returns A promise which resolves with the settings object. + * @internal + */ +function loadSettings() { + return ensureSettingsFile().then(function () { + var filePath = getSettingsFilePath(); + return new Promise(function (resolve, reject) { + fs_1.default.readFile(filePath, 'utf-8', function (err, data) { + if (err) { + reject(err); + } + else { + try { + resolve(JSON.parse(data)); + } + catch (err) { + reject(err); + } + } + }); + }); + }); +} +/** + * Checks what process is it, depending on that either calls [[loadSettingsSync|loadSettingsSync()]] + * directly or via sending sync message to main process. + * + * @returns The settings object. + * @internal + */ +function guideLoadingSettingSync() { + var ipcRenderer = getElectron().ipcRenderer; + return ipcRenderer + ? ipcRenderer.sendSync('electron-settings-load-settings-sync') + : loadSettingsSync(); +} +/** + * First ensures that the settings file exists then loads + * the settings from the disk. + * + * @returns The settings object. + * @internal + */ +function loadSettingsSync() { + var filePath = getSettingsFilePath(); + ensureSettingsFileSync(); + var data = fs_1.default.readFileSync(filePath, 'utf-8'); + return JSON.parse(data); +} +/** + * Checks what process is it, depending on that either calls [[saveSettings|saveSettings()]] + * directly or via sending async message to main process. + * + * @param obj The settings object to save. + * @returns A promise which resolves when the settings have been saved. + * @internal + */ +function guideSavingSettings(obj) { + var ipcRenderer = getElectron().ipcRenderer; + return ipcRenderer + ? ipcRenderer.invoke('electron-settings-save-settings', obj) + : saveSettings(obj); +} +/** + * Saves the settings to the disk. + * + * @param obj The settings object to save. + * @returns A promise which resolves when the settings have been saved. + * @internal + */ +function saveSettings(obj) { + return ensureSettingsDir().then(function () { + var filePath = getSettingsFilePath(); + var numSpaces = config.prettify ? config.numSpaces : 0; + var data = JSON.stringify(obj, null, numSpaces); + return new Promise(function (resolve, reject) { + if (config.atomicSave) { + write_file_atomic_1.default(filePath, data, function (err) { + return err + ? reject(err) + : resolve(); + }); + } + else { + fs_1.default.writeFile(filePath, data, function (err) { + return err + ? reject(err) + : resolve(); + }); + } + }); + }); +} +/** + * Checks what process is it, depending on that either calls [[saveSettingsSync|saveSettingsSync()]] + * directly or via sending async message to main process. + * + * @param obj The settings object to save. + * @internal + */ +function guideSavingSettingsSync(obj) { + var ipcRenderer = getElectron().ipcRenderer; + if (ipcRenderer) { + ipcRenderer.sendSync('electron-settings-save-settings-sync', obj); + } + else { + saveSettingsSync(obj); + } +} +/** + * Saves the settings to the disk. + * + * @param obj The settings object to save. + * @internal + */ +function saveSettingsSync(obj) { + var filePath = getSettingsFilePath(); + var numSpaces = config.prettify ? config.numSpaces : 0; + var data = JSON.stringify(obj, null, numSpaces); + ensureSettingsDirSync(); + if (config.atomicSave) { + write_file_atomic_1.default.sync(filePath, data); + } + else { + fs_1.default.writeFileSync(filePath, data); + } +} +/** + * Initializes the Electron Settings in the main process. + * Throws an error if you try to call it in renderer process. + * + * @example + * + * settings.init(); + */ +function init() { + var ipcMain = getElectron().ipcMain; + if (!ipcMain) { + throw new Error('You should init settings only in main process'); + } + ipcMain.handle('electron-settings-load-settings', function () { + return loadSettings(); + }); + ipcMain.on('electron-settings-load-settings-sync', function (event) { + // eslint-disable-next-line no-param-reassign + event.returnValue = loadSettingsSync(); + }); + ipcMain.handle('electron-settings-save-settings', function (event, obj) { + return saveSettings(obj); + }); + ipcMain.on('electron-settings-save-settings-sync', function (event, obj) { + saveSettingsSync(obj); + }); +} +/** + * Returns the path to the settings file. + * + * In general, the settings file is stored in your app's + * user data directory in a file called `settings.json`. + * The default user data directory varies by system. + * + * - **macOS** - `~/Library/Application\ Support/` + * - **Windows** - `%APPDATA%/` + * - **Linux** - Either `$XDG_CONFIG_HOME/` or + * `~/.config/` + * + * Although it is not recommended, you may change the name + * or location of the settings file using + * [[configure|configure()]]. + * + * @returns The path to the settings file. + * @example + * + * Get the path to the settings file. + * + * settings.file(); + * // => /home/nathan/.config/MyApp/settings.json + */ +function file() { + return getSettingsFilePath(); +} +/** + * Sets the configuration for Electron Settings. To reset + * to defaults, use [[reset|reset()]]. + * + * Defaults: + * + * { + * atomicSave: true, + * fileName: 'settings.json', + * numSpaces: 2, + * prettify: false + * } + * + * @param customConfig The custom configuration to use. + * @example + * + * Update the filename to `cool-settings.json` and prettify + * the output. + * + * settings.configure({ + * fileName: 'cool-settings.json', + * prettify: true + * }); + */ +function configure(customConfig) { + config = __assign(__assign({}, config), customConfig); +} +/** + * Resets the Electron Settings configuration to defaults. + * + * @example + * + * Reset configuration to defaults. + * + * settings.reset(); + */ +function reset() { + config = __assign({}, defaultConfig); +} +/** + * Checks if the given key path exists. For sync, + * use [[hasSync|hasSync()]]. + * + * @category Core + * @param keyPath The key path to check. + * @returns A promise which resolves to `true` if the + * `keyPath` exists, else `false`. + * @example + * + * Check if the value at `color.name` exists. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * const exists = await settings.has('color.name'); + * // => true + * + * @example + * + * Check if the value at `color.hue` exists. + * + * const h = 'hue'; + * const exists = await settings.has(['color', h]); + * // => false + * + * @example + * + * Check if the value at `color.code.rgb[1]` exists. + * + * const exists = await settings.has(color.code.rgb[1]); + * // => true + */ +function has(keyPath) { + return __awaiter(this, void 0, void 0, function () { + var obj; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, guideLoadingSettings()]; + case 1: + obj = _a.sent(); + return [2 /*return*/, lodash_has_1.default(obj, keyPath)]; + } + }); + }); +} +/** + * Checks if the given key path exists. For async, + * use [[hasSync|hasSync()]]. + * + * @category Core + * @param keyPath The key path to check. + * @returns `true` if the `keyPath` exists, else `false`. + * @example + * + * Check if the value at `color.name` exists. + * + * // Given: + * // + * // { + * // "color": { + * // "name": "cerulean", + * // "code": { + * // "rgb": [0, 179, 230], + * // "hex": "#003BE6" + * // } + * // } + * // } + * + * const exists = settings.hasSync('color.name'); + * // => true + * + * @example + * + * Check if the value at `color.hue` exists. + * + * const h = 'hue'; + * const exists = settings.hasSync(['color', h]); + * // => false + * + * @example + * + * Check if the value at `color.code.rgb[1]` exists. + * + * const exists = settings.hasSync(color.code.rgb[1]); + * // => true + */ +function hasSync(keyPath) { + var obj = guideLoadingSettingSync(); + return lodash_has_1.default(obj, keyPath); +} +function get(keyPath) { + return __awaiter(this, void 0, void 0, function () { + var obj; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, guideLoadingSettings()]; + case 1: + obj = _a.sent(); + if (keyPath) { + return [2 /*return*/, lodash_get_1.default(obj, keyPath)]; + } + else { + return [2 /*return*/, obj]; + } + return [2 /*return*/]; + } + }); + }); +} +function getSync(keyPath) { + var obj = guideLoadingSettingSync(); + if (keyPath) { + return lodash_get_1.default(obj, keyPath); + } + else { + return obj; + } +} +function set() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return __awaiter(this, void 0, void 0, function () { + var value, keyPath, value, obj; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!(args.length === 1)) return [3 /*break*/, 1]; + value = args[0]; + return [2 /*return*/, guideSavingSettings(value)]; + case 1: + keyPath = args[0], value = args[1]; + return [4 /*yield*/, guideLoadingSettings()]; + case 2: + obj = _a.sent(); + lodash_set_1.default(obj, keyPath, value); + return [2 /*return*/, guideSavingSettings(obj)]; + } + }); + }); +} +function setSync() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + if (args.length === 1) { + var value = args[0]; + guideSavingSettingsSync(value); + } + else { + var keyPath = args[0], value = args[1]; + var obj = guideLoadingSettingSync(); + lodash_set_1.default(obj, keyPath, value); + guideSavingSettingsSync(obj); + } +} +function unset(keyPath) { + return __awaiter(this, void 0, void 0, function () { + var obj; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!keyPath) return [3 /*break*/, 2]; + return [4 /*yield*/, guideLoadingSettings()]; + case 1: + obj = _a.sent(); + lodash_unset_1.default(obj, keyPath); + return [2 /*return*/, guideSavingSettings(obj)]; + case 2: + // Unset all settings by saving empty object. + return [2 /*return*/, guideSavingSettings({})]; + } + }); + }); +} +function unsetSync(keyPath) { + if (keyPath) { + var obj = guideLoadingSettingSync(); + lodash_unset_1.default(obj, keyPath); + guideSavingSettingsSync(obj); + } + else { + // Unset all settings by saving empty object. + guideSavingSettingsSync({}); + } +} +module.exports = { + init: init, + file: file, + configure: configure, + reset: reset, + has: has, + hasSync: hasSync, + get: get, + getSync: getSync, + set: set, + setSync: setSync, + unset: unset, + unsetSync: unsetSync, +}; +//# sourceMappingURL=settings.js.map \ No newline at end of file diff --git a/dist/settings.js.map b/dist/settings.js.map new file mode 100644 index 0000000..f009934 --- /dev/null +++ b/dist/settings.js.map @@ -0,0 +1 @@ +{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"} \ No newline at end of file From 199f008a910ff839d749969b65c31447a6d3400b Mon Sep 17 00:00:00 2001 From: Arina Date: Sat, 19 Sep 2020 00:38:58 +0700 Subject: [PATCH 6/9] Fix functions names, update version --- dist/settings.js | 44 ++++++++++++++++++++++---------------------- dist/settings.js.map | 2 +- package.json | 2 +- src/settings.ts | 44 ++++++++++++++++++++++---------------------- 4 files changed, 46 insertions(+), 46 deletions(-) diff --git a/dist/settings.js b/dist/settings.js index fef41b5..1fc0890 100644 --- a/dist/settings.js +++ b/dist/settings.js @@ -124,7 +124,7 @@ function ensureSettingsFile() { fs_1.default.stat(filePath, function (err) { if (err) { if (err.code === 'ENOENT') { - guideSavingSettings({}).then(resolve, reject); + proxySaveSettings({}).then(resolve, reject); } else { reject(err); @@ -150,7 +150,7 @@ function ensureSettingsFileSync() { catch (err) { if (err) { if (err.code === 'ENOENT') { - guideSavingSettingsSync({}); + proxySaveSettingsSync({}); } else { throw err; @@ -210,7 +210,7 @@ function ensureSettingsDirSync() { * @returns A promise which resolves with the settings object. * @internal */ -function guideLoadingSettings() { +function proxyLoadSettings() { var ipcRenderer = getElectron().ipcRenderer; return ipcRenderer ? ipcRenderer.invoke('electron-settings-load-settings') @@ -250,7 +250,7 @@ function loadSettings() { * @returns The settings object. * @internal */ -function guideLoadingSettingSync() { +function proxyLoadSettingsync() { var ipcRenderer = getElectron().ipcRenderer; return ipcRenderer ? ipcRenderer.sendSync('electron-settings-load-settings-sync') @@ -277,7 +277,7 @@ function loadSettingsSync() { * @returns A promise which resolves when the settings have been saved. * @internal */ -function guideSavingSettings(obj) { +function proxySaveSettings(obj) { var ipcRenderer = getElectron().ipcRenderer; return ipcRenderer ? ipcRenderer.invoke('electron-settings-save-settings', obj) @@ -320,7 +320,7 @@ function saveSettings(obj) { * @param obj The settings object to save. * @internal */ -function guideSavingSettingsSync(obj) { +function proxySaveSettingsSync(obj) { var ipcRenderer = getElectron().ipcRenderer; if (ipcRenderer) { ipcRenderer.sendSync('electron-settings-save-settings-sync', obj); @@ -487,7 +487,7 @@ function has(keyPath) { var obj; return __generator(this, function (_a) { switch (_a.label) { - case 0: return [4 /*yield*/, guideLoadingSettings()]; + case 0: return [4 /*yield*/, proxyLoadSettings()]; case 1: obj = _a.sent(); return [2 /*return*/, lodash_has_1.default(obj, keyPath)]; @@ -537,7 +537,7 @@ function has(keyPath) { * // => true */ function hasSync(keyPath) { - var obj = guideLoadingSettingSync(); + var obj = proxyLoadSettingsync(); return lodash_has_1.default(obj, keyPath); } function get(keyPath) { @@ -545,7 +545,7 @@ function get(keyPath) { var obj; return __generator(this, function (_a) { switch (_a.label) { - case 0: return [4 /*yield*/, guideLoadingSettings()]; + case 0: return [4 /*yield*/, proxyLoadSettings()]; case 1: obj = _a.sent(); if (keyPath) { @@ -560,7 +560,7 @@ function get(keyPath) { }); } function getSync(keyPath) { - var obj = guideLoadingSettingSync(); + var obj = proxyLoadSettingsync(); if (keyPath) { return lodash_get_1.default(obj, keyPath); } @@ -580,14 +580,14 @@ function set() { case 0: if (!(args.length === 1)) return [3 /*break*/, 1]; value = args[0]; - return [2 /*return*/, guideSavingSettings(value)]; + return [2 /*return*/, proxySaveSettings(value)]; case 1: keyPath = args[0], value = args[1]; - return [4 /*yield*/, guideLoadingSettings()]; + return [4 /*yield*/, proxyLoadSettings()]; case 2: obj = _a.sent(); lodash_set_1.default(obj, keyPath, value); - return [2 /*return*/, guideSavingSettings(obj)]; + return [2 /*return*/, proxySaveSettings(obj)]; } }); }); @@ -599,13 +599,13 @@ function setSync() { } if (args.length === 1) { var value = args[0]; - guideSavingSettingsSync(value); + proxySaveSettingsSync(value); } else { var keyPath = args[0], value = args[1]; - var obj = guideLoadingSettingSync(); + var obj = proxyLoadSettingsync(); lodash_set_1.default(obj, keyPath, value); - guideSavingSettingsSync(obj); + proxySaveSettingsSync(obj); } } function unset(keyPath) { @@ -615,27 +615,27 @@ function unset(keyPath) { switch (_a.label) { case 0: if (!keyPath) return [3 /*break*/, 2]; - return [4 /*yield*/, guideLoadingSettings()]; + return [4 /*yield*/, proxyLoadSettings()]; case 1: obj = _a.sent(); lodash_unset_1.default(obj, keyPath); - return [2 /*return*/, guideSavingSettings(obj)]; + return [2 /*return*/, proxySaveSettings(obj)]; case 2: // Unset all settings by saving empty object. - return [2 /*return*/, guideSavingSettings({})]; + return [2 /*return*/, proxySaveSettings({})]; } }); }); } function unsetSync(keyPath) { if (keyPath) { - var obj = guideLoadingSettingSync(); + var obj = proxyLoadSettingsync(); lodash_unset_1.default(obj, keyPath); - guideSavingSettingsSync(obj); + proxySaveSettingsSync(obj); } else { // Unset all settings by saving empty object. - guideSavingSettingsSync({}); + proxySaveSettingsSync({}); } } module.exports = { diff --git a/dist/settings.js.map b/dist/settings.js.map index f009934..97f33a6 100644 --- a/dist/settings.js.map +++ b/dist/settings.js.map @@ -1 +1 @@ -{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"settings.js","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAkD;AAClD,sDAAgC;AAChC,0CAAoB;AACpB,kDAA4B;AAC5B,8CAAwB;AACxB,wEAAgD;AAChD,0DAA8B;AAC9B,0DAA8B;AAC9B,0DAA8B;AAC9B,8DAAkC;AA8HlC,gBAAgB;AAChB,IAAM,aAAa,GAAW;IAC5B,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,CAAC;IACZ,QAAQ,EAAE,KAAK;CAChB,CAAC;AAEF,gBAAgB;AAChB,IAAI,MAAM,gBACL,aAAa,CACjB,CAAC;AAEF;;;;;;GAMG;AACH,SAAS,WAAW;;IAClB,aAAO,MAAM,CAAC,QAAQ,mCAAI,kBAAQ,CAAC;AACrC,CAAC;AAED;;;;;GAKG;AACH,SAAS,cAAc;IACrB,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,kBAAkB;;IACzB,aAAO,MAAM,CAAC,GAAG,mCAAI,cAAc,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB;IAC1B,IAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IAEjC,OAAO,cAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB;IACzB,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,YAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,GAAG;YACpB,IAAI,GAAG,EAAE;gBACP,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBAC7C;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;aACF;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB;IAC7B,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,IAAI;QACF,YAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;KACvB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,EAAE;YACP,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;gBACzB,qBAAqB,CAAC,EAAE,CAAC,CAAC;aAC3B;iBAAM;gBACL,MAAM,GAAG,CAAC;aACX;SACF;KACF;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB;IACxB,IAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IAErC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,YAAE,CAAC,IAAI,CAAC,OAAO,EAAE,UAAC,GAAG;YACnB,IAAI,GAAG,EAAE;gBACP,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;oBACzB,gBAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,OAAO,EAAE,EAAT,CAAS,EAAE,MAAM,CAAC,CAAC;iBAC/C;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;aACF;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB;IAC5B,IAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;IAErC,IAAI;QACF,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACtB;IAAC,OAAO,GAAG,EAAE;QACZ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE;YACzB,gBAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtB;aAAM;YACL,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB;IAChB,IAAA,WAAW,GAAK,WAAW,EAAE,YAAlB,CAAmB;IACtC,OAAO,WAAW;QAChB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,iCAAiC,CAAC;QACvD,CAAC,CAAC,YAAY,EAAE,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY;IACnB,OAAO,kBAAkB,EAAE,CAAC,IAAI,CAAC;QAC/B,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QAEvC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,YAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAC,GAAG,EAAE,IAAI;gBACvC,IAAI,GAAG,EAAE;oBACP,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;qBAAM;oBACL,IAAI;wBACF,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;qBAC3B;oBAAC,OAAO,GAAG,EAAE;wBACZ,MAAM,CAAC,GAAG,CAAC,CAAC;qBACb;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,oBAAoB;IACnB,IAAA,WAAW,GAAK,WAAW,EAAE,YAAlB,CAAmB;IACtC,OAAO,WAAW;QAChB,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QAC9D,CAAC,CAAC,gBAAgB,EAAE,CAAC;AACzB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,gBAAgB;IACvB,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IAEvC,sBAAsB,EAAE,CAAC;IAEzB,IAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAEhD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,GAAmB;IACpC,IAAA,WAAW,GAAK,WAAW,EAAE,YAAlB,CAAmB;IACtC,OAAO,WAAW;QAChB,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,iCAAiC,EAAE,GAAG,CAAC;QAC5D,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,GAAmB;IACvC,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC;QAC9B,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;QACvC,IAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAElD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,IAAI,MAAM,CAAC,UAAU,EAAE;gBACrB,2BAAe,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAC,GAAG;oBAClC,OAAO,GAAG;wBACR,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACb,CAAC,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAC,GAAG;oBAC/B,OAAO,GAAG;wBACR,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;wBACb,CAAC,CAAC,OAAO,EAAE,CAAC;gBAChB,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,GAAmB;IACxC,IAAA,WAAW,GAAK,WAAW,EAAE,YAAlB,CAAmB;IACtC,IAAI,WAAW,EAAE;QACf,WAAW,CAAC,QAAQ,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAC;KACnE;SAAM;QACL,gBAAgB,CAAC,GAAG,CAAC,CAAC;KACvB;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,GAAmB;IAC3C,IAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAC;IACvC,IAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAElD,qBAAqB,EAAE,CAAC;IAExB,IAAI,MAAM,CAAC,UAAU,EAAE;QACrB,2BAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KACtC;SAAM;QACL,YAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;KAClC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,IAAI;IACH,IAAA,OAAO,GAAK,WAAW,EAAE,QAAlB,CAAmB;IAClC,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE;IACD,OAAO,CAAC,MAAM,CAAC,iCAAiC,EAAE;QAChD,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,sCAAsC,EAAE,UAAC,KAAK;QACvD,6CAA6C;QAC7C,KAAK,CAAC,WAAW,GAAG,gBAAgB,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,CAAC,iCAAiC,EAAE,UAAC,KAAK,EAAE,GAAG;QAC3D,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,sCAAsC,EAAE,UAAC,KAAK,EAAE,GAAG;QAC5D,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,IAAI;IACX,OAAO,mBAAmB,EAAE,CAAC;AAC/B,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,SAAS,CAAC,YAA6B;IAC9C,MAAM,yBAAQ,MAAM,GAAK,YAAY,CAAE,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,KAAK;IACZ,MAAM,gBAAQ,aAAa,CAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,SAAe,GAAG,CAAC,OAAgB;;;;;wBACrB,qBAAM,iBAAiB,EAAE,EAAA;;oBAA/B,GAAG,GAAG,SAAyB;oBAErC,sBAAO,oBAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAC;;;;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,SAAS,OAAO,CAAC,OAAgB;IAC/B,IAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IAEnC,OAAO,oBAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC5B,CAAC;AA6DD,SAAe,GAAG,CAAC,OAAiB;;;;;wBACtB,qBAAM,iBAAiB,EAAE,EAAA;;oBAA/B,GAAG,GAAG,SAAyB;oBAErC,IAAI,OAAO,EAAE;wBACX,sBAAO,oBAAI,CAAC,GAAG,EAAE,OAAO,CAAC,EAAC;qBAC3B;yBAAM;wBACL,sBAAO,GAAG,EAAC;qBACZ;;;;;CACF;AA2DD,SAAS,OAAO,CAAC,OAAiB;IAChC,IAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;IAEnC,IAAI,OAAO,EAAE;QACX,OAAO,oBAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAC3B;SAAM;QACL,OAAO,GAAG,CAAC;KACZ;AACH,CAAC;AA8DD,SAAe,GAAG;IAAC,cAAoD;SAApD,UAAoD,EAApD,qBAAoD,EAApD,IAAoD;QAApD,yBAAoD;;;;;;;yBACjE,CAAA,IAAI,CAAC,MAAM,KAAK,CAAC,CAAA,EAAjB,wBAAiB;oBACZ,KAAK,GAAI,IAAI,GAAR,CAAS;oBAErB,sBAAO,iBAAiB,CAAC,KAAK,CAAC,EAAC;;oBAEzB,OAAO,GAAW,IAAI,GAAf,EAAE,KAAK,GAAI,IAAI,GAAR,CAAS;oBAClB,qBAAM,iBAAiB,EAAE,EAAA;;oBAA/B,GAAG,GAAG,SAAyB;oBAErC,oBAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;oBAE1B,sBAAO,iBAAiB,CAAC,GAAG,CAAC,EAAC;;;;CAEjC;AA0DD,SAAS,OAAO;IAAC,cAAoD;SAApD,UAAoD,EAApD,qBAAoD,EAApD,IAAoD;QAApD,yBAAoD;;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACd,IAAA,KAAK,GAAI,IAAI,GAAR,CAAS;QAErB,qBAAqB,CAAC,KAAK,CAAC,CAAC;KAC9B;SAAM;QACE,IAAA,OAAO,GAAW,IAAI,GAAf,EAAE,KAAK,GAAI,IAAI,GAAR,CAAS;QAC9B,IAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QAEnC,oBAAI,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAE1B,qBAAqB,CAAC,GAAG,CAAC,CAAC;KAC5B;AACH,CAAC;AAwDD,SAAe,KAAK,CAAC,OAAiB;;;;;;yBAChC,OAAO,EAAP,wBAAO;oBACG,qBAAM,iBAAiB,EAAE,EAAA;;oBAA/B,GAAG,GAAG,SAAyB;oBAErC,sBAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;oBAErB,sBAAO,iBAAiB,CAAC,GAAG,CAAC,EAAC;;gBAE9B,6CAA6C;gBAC7C,sBAAO,iBAAiB,CAAC,EAAE,CAAC,EAAC;;;;CAEhC;AAoDD,SAAS,SAAS,CAAC,OAAiB;IAClC,IAAI,OAAO,EAAE;QACX,IAAM,GAAG,GAAG,oBAAoB,EAAE,CAAC;QAEnC,sBAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAErB,qBAAqB,CAAC,GAAG,CAAC,CAAC;KAC5B;SAAM;QACL,6CAA6C;QAC7C,qBAAqB,CAAC,EAAE,CAAC,CAAC;KAC3B;AACH,CAAC;AAED,iBAAS;IACP,IAAI,MAAA;IACJ,IAAI,MAAA;IACJ,SAAS,WAAA;IACT,KAAK,OAAA;IACL,GAAG,KAAA;IACH,OAAO,SAAA;IACP,GAAG,KAAA;IACH,OAAO,SAAA;IACP,GAAG,KAAA;IACH,OAAO,SAAA;IACP,KAAK,OAAA;IACL,SAAS,WAAA;CACV,CAAC"} \ No newline at end of file diff --git a/package.json b/package.json index 1f5724d..136f516 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-settings", - "version": "4.0.2", + "version": "4.0.2.0", "description": "A simple and robust settings management library for Electron.", "license": "MIT", "main": "dist/settings.js", diff --git a/src/settings.ts b/src/settings.ts index f601c90..88d07b7 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -206,7 +206,7 @@ function ensureSettingsFile(): Promise { fs.stat(filePath, (err) => { if (err) { if (err.code === 'ENOENT') { - guideSavingSettings({}).then(resolve, reject); + proxySaveSettings({}).then(resolve, reject); } else { reject(err); } @@ -231,7 +231,7 @@ function ensureSettingsFileSync(): void { } catch (err) { if (err) { if (err.code === 'ENOENT') { - guideSavingSettingsSync({}); + proxySaveSettingsSync({}); } else { throw err; } @@ -291,7 +291,7 @@ function ensureSettingsDirSync(): void { * @returns A promise which resolves with the settings object. * @internal */ -function guideLoadingSettings(): Promise { +function proxyLoadSettings(): Promise { const { ipcRenderer } = getElectron(); return ipcRenderer ? ipcRenderer.invoke('electron-settings-load-settings') @@ -332,7 +332,7 @@ function loadSettings(): Promise { * @returns The settings object. * @internal */ -function guideLoadingSettingSync(): SettingsObject { +function proxyLoadSettingsync(): SettingsObject { const { ipcRenderer } = getElectron(); return ipcRenderer ? ipcRenderer.sendSync('electron-settings-load-settings-sync') @@ -364,7 +364,7 @@ function loadSettingsSync(): SettingsObject { * @returns A promise which resolves when the settings have been saved. * @internal */ -function guideSavingSettings(obj: SettingsObject): Promise { +function proxySaveSettings(obj: SettingsObject): Promise { const { ipcRenderer } = getElectron(); return ipcRenderer ? ipcRenderer.invoke('electron-settings-save-settings', obj) @@ -409,7 +409,7 @@ function saveSettings(obj: SettingsObject): Promise { * @param obj The settings object to save. * @internal */ -function guideSavingSettingsSync(obj: SettingsObject): void { +function proxySaveSettingsSync(obj: SettingsObject): void { const { ipcRenderer } = getElectron(); if (ipcRenderer) { ipcRenderer.sendSync('electron-settings-save-settings-sync', obj); @@ -578,7 +578,7 @@ function reset(): void { * // => true */ async function has(keyPath: KeyPath): Promise { - const obj = await guideLoadingSettings(); + const obj = await proxyLoadSettings(); return _has(obj, keyPath); } @@ -625,7 +625,7 @@ async function has(keyPath: KeyPath): Promise { * // => true */ function hasSync(keyPath: KeyPath): boolean { - const obj = guideLoadingSettingSync(); + const obj = proxyLoadSettingsync(); return _has(obj, keyPath); } @@ -690,7 +690,7 @@ async function get(): Promise; async function get(keyPath: KeyPath): Promise; async function get(keyPath?: KeyPath): Promise { - const obj = await guideLoadingSettings(); + const obj = await proxyLoadSettings(); if (keyPath) { return _get(obj, keyPath); @@ -757,7 +757,7 @@ function getSync(): SettingsObject; function getSync(keyPath: KeyPath): SettingsValue; function getSync(keyPath?: KeyPath): SettingsValue { - const obj = guideLoadingSettingSync(); + const obj = proxyLoadSettingsync(); if (keyPath) { return _get(obj, keyPath); @@ -830,14 +830,14 @@ async function set(...args: [SettingsObject] | [KeyPath, SettingsValue]): Promis if (args.length === 1) { const [value] = args; - return guideSavingSettings(value); + return proxySaveSettings(value); } else { const [keyPath, value] = args; - const obj = await guideLoadingSettings(); + const obj = await proxyLoadSettings(); _set(obj, keyPath, value); - return guideSavingSettings(obj); + return proxySaveSettings(obj); } } @@ -901,14 +901,14 @@ function setSync(...args: [SettingsObject] | [KeyPath, SettingsValue]): void { if (args.length === 1) { const [value] = args; - guideSavingSettingsSync(value); + proxySaveSettingsSync(value); } else { const [keyPath, value] = args; - const obj = guideLoadingSettingSync(); + const obj = proxyLoadSettingsync(); _set(obj, keyPath, value); - guideSavingSettingsSync(obj); + proxySaveSettingsSync(obj); } } @@ -968,14 +968,14 @@ async function unset(keyPath: KeyPath): Promise; async function unset(keyPath?: KeyPath): Promise { if (keyPath) { - const obj = await guideLoadingSettings(); + const obj = await proxyLoadSettings(); _unset(obj, keyPath); - return guideSavingSettings(obj); + return proxySaveSettings(obj); } else { // Unset all settings by saving empty object. - return guideSavingSettings({}); + return proxySaveSettings({}); } } @@ -1031,14 +1031,14 @@ function unsetSync(keyPath: KeyPath): void; function unsetSync(keyPath?: KeyPath): void { if (keyPath) { - const obj = guideLoadingSettingSync(); + const obj = proxyLoadSettingsync(); _unset(obj, keyPath); - guideSavingSettingsSync(obj); + proxySaveSettingsSync(obj); } else { // Unset all settings by saving empty object. - guideSavingSettingsSync({}); + proxySaveSettingsSync({}); } } From 0ce5e6c271c85094ea5e0fcf70f3c6fdc9eb3951 Mon Sep 17 00:00:00 2001 From: Arina Date: Sat, 19 Sep 2020 00:47:00 +0700 Subject: [PATCH 7/9] Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 136f516..09b826a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-settings", - "version": "4.0.2.0", + "version": "4.0.2.1", "description": "A simple and robust settings management library for Electron.", "license": "MIT", "main": "dist/settings.js", From ed5c24080aa8c4df470960b1cc5cd83d98196641 Mon Sep 17 00:00:00 2001 From: Arina Date: Sat, 19 Sep 2020 00:49:44 +0700 Subject: [PATCH 8/9] Fix version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 09b826a..35fdf86 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electron-settings", - "version": "4.0.2.1", + "version": "4.0.3", "description": "A simple and robust settings management library for Electron.", "license": "MIT", "main": "dist/settings.js", From 6bc12b1f41ee87b85e29532225ccd5363272e919 Mon Sep 17 00:00:00 2001 From: Arina Date: Thu, 1 Oct 2020 09:59:50 +0700 Subject: [PATCH 9/9] Fix typo --- src/settings.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/settings.ts b/src/settings.ts index 88d07b7..6dd2703 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -332,7 +332,7 @@ function loadSettings(): Promise { * @returns The settings object. * @internal */ -function proxyLoadSettingsync(): SettingsObject { +function proxyLoadSettingSync(): SettingsObject { const { ipcRenderer } = getElectron(); return ipcRenderer ? ipcRenderer.sendSync('electron-settings-load-settings-sync') @@ -625,7 +625,7 @@ async function has(keyPath: KeyPath): Promise { * // => true */ function hasSync(keyPath: KeyPath): boolean { - const obj = proxyLoadSettingsync(); + const obj = proxyLoadSettingSync(); return _has(obj, keyPath); } @@ -757,7 +757,7 @@ function getSync(): SettingsObject; function getSync(keyPath: KeyPath): SettingsValue; function getSync(keyPath?: KeyPath): SettingsValue { - const obj = proxyLoadSettingsync(); + const obj = proxyLoadSettingSync(); if (keyPath) { return _get(obj, keyPath); @@ -904,7 +904,7 @@ function setSync(...args: [SettingsObject] | [KeyPath, SettingsValue]): void { proxySaveSettingsSync(value); } else { const [keyPath, value] = args; - const obj = proxyLoadSettingsync(); + const obj = proxyLoadSettingSync(); _set(obj, keyPath, value); @@ -1031,7 +1031,7 @@ function unsetSync(keyPath: KeyPath): void; function unsetSync(keyPath?: KeyPath): void { if (keyPath) { - const obj = proxyLoadSettingsync(); + const obj = proxyLoadSettingSync(); _unset(obj, keyPath);