Skip to content

@k8slens/extensions

Globals / "src/common/base-store" / BaseStoreParams

Interface: BaseStoreParams\#

Type parameters#

Name Default
T any

Hierarchy#

  • Options\

BaseStoreParams

Index#

Properties#

Properties#

accessPropertiesByDotNotation#

Optional Readonly accessPropertiesByDotNotation: boolean

Inherited from BaseStoreParams.accessPropertiesByDotNotation

Defined in node_modules/conf/dist/source/types.d.ts:193

Access nested properties by dot notation.

default true

example

const config = new Conf();

config.set({
foo: {
bar: {
foobar: '🦄'
}
}
});

console.log(config.get('foo.bar.foobar'));
//=> '🦄'

Alternatively, you can set this option to false so the whole string would be treated as one key.

example

const config = new Conf({accessPropertiesByDotNotation: false});

config.set({
`foo.bar.foobar`: '🦄'
});

console.log(config.get('foo.bar.foobar'));
//=> '🦄'


autoLoad#

Optional autoLoad: boolean

Defined in src/common/base-store.ts:13


clearInvalidConfig#

Optional clearInvalidConfig: boolean

Inherited from BaseStoreParams.clearInvalidConfig

Defined in node_modules/conf/dist/source/types.d.ts:128

The config is cleared if reading the config file causes a SyntaxError. This is a good default, as the config file is not intended to be hand-edited, so it usually means the config is corrupt and there's nothing the user can do about it anyway. However, if you let the user edit the config file directly, mistakes might happen and it could be more useful to throw an error when the config is invalid instead of clearing. Disabling this option will make it throw a SyntaxError on invalid config instead of clearing.

default true


configName#

Optional configName: string

Inherited from BaseStoreParams.configName

Defined in node_modules/conf/dist/source/types.d.ts:55

Name of the config file (without extension).

Useful if you need multiple config files for your app or module. For example, different config files between two major versions.

default 'config'


cwd#

Optional cwd: string

Inherited from BaseStoreParams.cwd

Defined in node_modules/conf/dist/source/types.d.ts:104

You most likely don't need this. Please don't use it unless you really have to.

The only use-case I can think of is having the config located in the app directory or on some external storage. Default: System default user config directory.


defaults#

Optional defaults: Readonly\

Inherited from BaseStoreParams.defaults

Defined in node_modules/conf/dist/source/types.d.ts:11

Config used if there are no existing config.

Note:* The values in defaults will overwrite the default key in the schema option.


deserialize#

Optional Readonly deserialize: Deserialize\

Inherited from BaseStoreParams.deserialize

Defined in node_modules/conf/dist/source/types.d.ts:144

Function to deserialize the config object from a UTF-8 string when reading the config file.

You would usually not need this, but it could be useful if you want to use a format other than JSON.

default JSON.parse


encryptionKey#

Optional encryptionKey: string | Buffer | NodeJS.TypedArray | DataView

Inherited from BaseStoreParams.encryptionKey

Defined in node_modules/conf/dist/source/types.d.ts:114

Note that this is not intended for security purposes, since the encryption key would be easily found inside a plain-text Node.js app.

Its main use is for obscurity. If a user looks through the config directory and finds the config file, since it's just a JSON file, they may be tempted to modify it. By providing an encryption key, the file will be obfuscated, which should hopefully deter any users from doing so.

It also has the added bonus of ensuring the config file's integrity. If the file is changed in any way, the decryption will not work, in which case the store will just reset back to its default state.

When specified, the store will be encrypted using the aes-256-cbc encryption algorithm.


fileExtension#

Optional fileExtension: string

Inherited from BaseStoreParams.fileExtension

Defined in node_modules/conf/dist/source/types.d.ts:122

Extension of the config file.

You would usually not need this, but could be useful if you want to interact with a file with a custom file extension that can be associated with your app. These might be simple save/export/preference files that are intended to be shareable or saved outside of the app.

default 'json'


migrations#

Optional migrations: Migrations\

Inherited from BaseStoreParams.migrations

Defined in node_modules/conf/dist/source/types.d.ts:98

You can use migrations to perform operations to the store whenever a version is changed.

The migrations object should consist of a key-value pair of 'version': handler. The version can also be a semver range.

Note: The version the migrations use refers to the project version by default. If you want to change this behavior, specify the projectVersion option.

example

import Conf = require('conf');

const store = new Conf({
migrations: {
'0.0.1': store => {
store.set('debugPhase', true);
},
'1.0.0': store => {
store.delete('debugPhase');
store.set('phase', '1.0.0');
},
'1.0.2': store => {
store.set('phase', '1.0.2');
},
'>=2.0.0': store => {
store.set('phase', '>=2.0.0');
}
}
});


projectName#

Optional projectName: string

Inherited from BaseStoreParams.projectName

Defined in node_modules/conf/dist/source/types.d.ts:61

You only need to specify this if you don't have a package.json file in your project or if it doesn't have a name defined within it.

Default: The name field in the package.json closest to where conf is imported.


projectSuffix#

Optional Readonly projectSuffix: string

Inherited from BaseStoreParams.projectSuffix

Defined in node_modules/conf/dist/source/types.d.ts:156

You most likely don't need this. Please don't use it unless you really have to.

Suffix appended to projectName during config file creation to avoid name conflicts with native apps.

You can pass an empty string to remove the suffix.

For example, on macOS, the config file will be stored in the ~/Library/Preferences/foo-nodejs directory, where foo is the projectName.

default 'nodejs'


projectVersion#

Optional projectVersion: string

Inherited from BaseStoreParams.projectVersion

Defined in node_modules/conf/dist/source/types.d.ts:67

You only need to specify this if you don't have a package.json file in your project or if it doesn't have a version defined within it.

Default: The name field in the package.json closest to where conf is imported.


schema#

Optional schema: Schema\

Inherited from BaseStoreParams.schema

Defined in node_modules/conf/dist/source/types.d.ts:47

JSON Schema to validate your config data.

Under the hood, the JSON Schema validator ajv is used to validate your config. We use JSON Schema draft-07 and support all validation keywords and formats.

You should define your schema as an object where each key is the name of your data's property and each value is a JSON schema used to validate that property. See more here.

example

import Conf = require('conf');

const schema = {
foo: {
type: 'number',
maximum: 100,
minimum: 1,
default: 50
},
bar: {
type: 'string',
format: 'url'
}
};

const config = new Conf({schema});

console.log(config.get('foo'));
//=> 50

config.set('foo', '1');
// [Error: Config schema violation: `foo` should be number]

Note:* The default value will be overwritten by the defaults option if set.


serialize#

Optional Readonly serialize: Serialize\

Inherited from BaseStoreParams.serialize

Defined in node_modules/conf/dist/source/types.d.ts:136

Function to serialize the config object to a UTF-8 string when writing the config file.

You would usually not need this, but it could be useful if you want to use a format other than JSON.

default value => JSON.stringify(value, null, '\t')


syncEnabled#

Optional syncEnabled: boolean

Defined in src/common/base-store.ts:14


syncOptions#

Optional syncOptions: IReactionOptions

Defined in src/common/base-store.ts:15


watch#

Optional Readonly watch: boolean

Inherited from BaseStoreParams.watch

Defined in node_modules/conf/dist/source/types.d.ts:201

Watch for any changes in the config file and call the callback for onDidChange if set. This is useful if there are multiple processes changing the same config file.

Currently this option doesn't work on Node.js 8 on macOS.

default false


Last update: November 10, 2020