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

Constructors

  • Creates an instance of UniqueNameGenerator.

    Parameters

    • OptionalindexSeparator: string

      The separator to be used when adding an index.

    • OptionalusedNames: readonly string[]

      Sets the already used names considered in the finding process.

    Returns UniqueNameGenerator

Methods

  • Adds the name(s) to the already used names.

    Parameters

    • ...names: string[]

      Names to be added.

    Returns void

  • Generate a unique name by appending an index separated 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.

    • OptionalcaseSensitive: boolean

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

    Returns string

    A unique name.

  • Generate unique names by appending an index separated 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.

    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.

    • OptionalcaseSensitive: 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.

    if `MyName` and `MyName_1MySuffix` is already taken, `[MyName_2, MyName_2MySuffix]` will be generated by default.
    
  • Generate a unique name by appending an index separated 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.

    • OptionalcaseSensitive: boolean

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

    Returns string

    A unique name.

  • Generate unique names by appending an index separated 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.

    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.

    • OptionalcaseSensitive: 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.

    if `MyName` and `MyName_1MySuffix` is already taken, `[MyName_2, MyName_2MySuffix]` will be generated by default.
    

    Copyright Ⓒ 2024 SAP SE or an SAP affiliate company. All rights reserved.