Options
All
  • Public
  • Public/Protected
  • All
Menu

Holds state on already used names and provides new names if there are naming conflicts.

Hierarchy

  • UniqueNameGenerator

Index

Constructors

constructor

  • new UniqueNameGenerator(indexSeparator?: string, usedNames?: readonly string[]): UniqueNameGenerator
  • Creates an instance of UniqueNameGenerator.

    Parameters

    • Optional indexSeparator: string

      The separator to be used when adding an index.

    • Optional usedNames: readonly string[]

      Sets the already used names considered in the finding process.

    Returns UniqueNameGenerator

Methods

addToUsedNames

  • addToUsedNames(...names: string[]): void
  • Adds the name(s) to the already used names.

    Parameters

    • Rest ...names: string[]

      Names to be added

    Returns void

generateAndSaveUniqueName

  • generateAndSaveUniqueName(name: string, caseSensitive?: boolean): string
  • Generate a unique name by appending an index seperated by the indexSeparator if necessary, e. g. if MyName is already taken MyName_1 will be found by default. The generated name is added to the used names. If the name is already unique nothing is appended.

    Parameters

    • name: string

      The name to get a unique name from.

    • Optional caseSensitive: boolean

      Whether to check the already used names in a case sensitive manner.

    Returns string

    A unique name

generateAndSaveUniqueNamesWithSuffixes

  • generateAndSaveUniqueNamesWithSuffixes(name: string, suffixes: string[], caseSensitive?: boolean): string[]
  • Generate unique names by appending an index seperated by the indexSeparator if necessary, while respecting the given suffixes. If the name is already unique nothing is appended. The generated names are added to the used names. Each given suffix is appended to the unique name in the result. The resulting names are also checked for uniqueness. All names in the result have the same number suffix. Example: if MyName and MyName_1MySuffix is already taken, [MyName_2, MyName_2MySuffix] will be generated by default.

    Parameters

    • name: string

      The name to get a unique name from

    • suffixes: string[]

      Additional name of suffixes to be considered for the finding process, as well as the output.

    • Optional caseSensitive: boolean

      Whether to check the already used names in a case sensitive manner.

    Returns string[]

    A list of unique names. The length of this array is one plus the number of suffixes provided. The first entry corresponds to the given name.

generateUniqueName

  • generateUniqueName(name: string, caseSensitive?: boolean): string
  • Generate a unique name by appending an index seperated by the indexSeparator if necessary, e. g. if MyName is already taken MyName_1 will be found by default. If the name is already unique nothing is appended.

    Parameters

    • name: string

      The name to get a unique name from.

    • Optional caseSensitive: boolean

      Whether to check the already used names in a case sensitive manner.

    Returns string

    A unique name

generateUniqueNamesWithSuffixes

  • generateUniqueNamesWithSuffixes(name: string, suffixes: string[], caseSensitive?: boolean): string[]
  • Generate unique names by appending an index seperated by the indexSeparator if necessary, while respecting the given suffixes. If the name is already unique nothing is appended. Each given suffix is appended to the unique name in the result. The resulting names are also checked for uniqueness. All names in the result have the same number suffix. Example: if MyName and MyName_1MySuffix is already taken, [MyName_2, MyName_2MySuffix] will be generated by default.

    Parameters

    • name: string

      The name to get a unique name from

    • suffixes: string[]

      Additional name of suffixes to be considered for the finding process, as well as the output.

    • Optional caseSensitive: boolean

      Whether to check the already used names in a case sensitive manner.

    Returns string[]

    A list of unique names. The length of this array is one plus the number of suffixes provided. The first entry corresponds to the given name.