Options
All
  • Public
  • Public/Protected
  • All
Menu

A config file that stores config values in groups. e.g. to store different config values for different commands, without having manually manipulate the config.

Note: All config methods are overwritten to use the ConfigGroup.setDefaultGroup.

extends

ConfigFile

example

class MyPluginConfig extents ConfigGroup { class MyConfig extents ConfigFile { public static getFileName(): string { return 'myPluginConfigFilename.json'; } } const myConfig = await MyPluginConfig.retrieve(ConfigGroup.getOptions('all')); myconfig.setDefaultGroup('myCommand'); // Can be set in your command's init. myConfig.set('mykey', 'myvalue'); // Sets 'myKey' for the 'myCommand' group. myConfig.setInGroup('myKey', 'myvalue', 'all'); // Manually set in another group. await myconfig.write();

Type parameters

Hierarchy

Implements

Index

Constructors

constructor

Properties

Protected options

options: T

Methods

access

  • access(perm: number): Promise<boolean>
  • Determines if the config file is read/write accessible.

    see

    fs.access

    Parameters

    • perm: number

      The permission.

    Returns Promise<boolean>

    true if the user has capabilities specified by perm.

awaitEach

  • awaitEach(actionFn: function): Promise<void>
  • Asynchronously invokes actionFn once for each key-value pair present in the config object.

    Parameters

    • actionFn: function

      The function (key: string, value: ConfigValue) => Promise<void> to be called for each element.

        • Parameters

          Returns Promise<void>

    Returns Promise<void>

clear

  • clear(): void

entries

exists

  • exists(): Promise<boolean>
  • Check to see if the config file exists.

    Returns Promise<boolean>

    True if the config file exists and has access, false otherwise.

forEach

  • forEach(actionFn: function): void
  • Invokes actionFn once for each key-value pair present in the config object.

    Parameters

    • actionFn: function

      The function (key: string, value: ConfigValue) => void to be called for each element.

    Returns void

get

  • Returns a specified element from ConfigGroup.

    override

    Parameters

    • key: string

      The key.

    Returns Optional<ConfigValue>

    The associated value.

getContents

getGroup

  • Get all config content for a group.

    Parameters

    • Default value group: string = this.defaultGroup

    Returns Optional<ConfigContents>

    The contents.

getInGroup

  • getInGroup(key: string, group?: undefined | string): Optional<ConfigValue>
  • Returns the value associated to the key and group, or undefined if there is none.

    Parameters

    • key: string

      The key.

    • Optional group: undefined | string

    Returns Optional<ConfigValue>

getKeysByValue

getPath

  • getPath(): string
  • Returns the path to the config file.

    Returns string

has

  • has(key: string): boolean
  • Returns a boolean if an element with the specified key exists in the default group.

    override

    Parameters

    • key: string

      The key.

    Returns boolean

init

  • init(): Promise<void>
  • Returns Promise<void>

isGlobal

  • isGlobal(): boolean
  • Returns true if this config is using the global path, false otherwise.

    Returns boolean

keys

  • keys(): string[]
  • Returns an array of the keys from the default group.

    override

    Returns string[]

read

  • Read the config file and set the config contents.

    throws

    {SfdxError} {name: 'UnexpectedJsonFileFormat'}: There was a problem reading or parsing the file.

    Parameters

    • Default value throwOnNotFound: boolean = false

    Returns Promise<ConfigContents>

    The config contents of the config file.

set

setContents

setContentsFromObject

  • setContentsFromObject<U>(obj: U): void

setDefaultGroup

  • setDefaultGroup(group: string): void
  • Sets the default group for all BaseConfigStore methods to use.

    throws

    {SfdxError} {name: 'MissingGroupName'}: The group parameter is null or undefined.

    Parameters

    • group: string

      The group.

    Returns void

setInGroup

  • Sets the value for the key and group in the config object.

    Parameters

    • key: string

      The key.

    • Optional value: ConfigValue
    • Optional group: undefined | string

    Returns ConfigContents

    The contents.

stat

  • stat(): Promise<fsStats>
  • Get the stats of the file.

    see

    fs.stat

    Returns Promise<fsStats>

    The stats of the file.

toObject

  • toObject(): JsonMap
  • Convert the config object to a json object.

    override

    Returns JsonMap

unlink

  • unlink(): Promise<void>
  • Delete the config file if it exists.

    see

    fs.unlink

    Returns Promise<void>

    True if the file was deleted, false otherwise.

unset

  • unset(key: string): boolean
  • Removes an element with the specified key from the default group.

    override

    Parameters

    • key: string

      The key.

    Returns boolean

    True if the item was deleted.

unsetAll

  • unsetAll(keys: string[]): boolean
  • Returns true if all elements in the config object existed and have been removed, or false if all the elements do not exist (some may have been removed). {@link BaseConfigStore.has(key)} will return false afterwards.

    Parameters

    • keys: string[]

      The keys.

    Returns boolean

updateValue

  • updateValue(key: string, value: ConfigValue, group?: undefined | string): Promise<void>
  • Set a value on a group.

    Parameters

    • key: string

      The key.

    • value: ConfigValue

      The value.

    • Optional group: undefined | string

    Returns Promise<void>

    The promise resolved when the value is set.

updateValues

  • updateValues(newEntries: object, group?: undefined | string): Promise<any>
  • Set a group of entries in a bulk save.

    Parameters

    • newEntries: object

      An object representing the aliases to set.

    • Optional group: undefined | string

    Returns Promise<any>

    The new property that was saved.

values

write

  • Write the config file with new contents. If no new contents are passed in it will write the existing config contents that were set from ConfigFile.read, or an empty file if ConfigFile.read was not called.

    Parameters

    Returns Promise<any>

    The written contents.

Static create

  • create<P, T>(this: object, options: P): Promise<T>
  • Asynchronously constructs and initializes a new instance of a concrete subclass with the provided options.

    Type parameters

    • P

    • T: AsyncCreatable<P>

    Parameters

    • this: object
    • options: P

      An options object providing initialization params to the async constructor.

    Returns Promise<T>

Static getDefaultOptions

  • getDefaultOptions(isGlobal?: boolean, filename?: undefined | string): Options
  • Returns the default options for the config file.

    Parameters

    • Default value isGlobal: boolean = false

      If the file should be stored globally or locally.

    • Optional filename: undefined | string

      The name of the config file.

    Returns Options

Static getFileName

  • getFileName(): string
  • Returns the config's filename.

    Returns string

Static getOptions

  • getOptions(defaultGroup: string, filename?: undefined | string): Options
  • Get ConfigGroup specific options, such as the default group.

    Parameters

    • defaultGroup: string

      The default group to use when creating the config.

    • Optional filename: undefined | string

    Returns Options

Static resolveRootFolder

  • resolveRootFolder(isGlobal: boolean): Promise<string>
  • Helper used to determined what the local and global folder point to.

    Parameters

    • isGlobal: boolean

      True if the config should be global. False for local.

    Returns Promise<string>

    The file path of the root folder.

Static retrieve

  • retrieve<T>(options?: Options): Promise<T>