Skip to main content
Version: 5.9

Utils

Index

Constructors

constructor

  • new Utils(): Utils
  • Returns Utils

Properties

staticreadonlyPK_SEPARATOR

PK_SEPARATOR: ~~~ = '~~~'

Methods

staticabsolutePath

  • absolutePath(path: string, baseDir?: string): string
  • Computes the absolute path to for the given path relative to the provided base directory. If either path or baseDir are file: URLs, they are converted to local paths.


    Parameters

    • path: string
    • baseDir: string = ...

    Returns string

staticasArray

  • asArray<T>(data?: T | readonly T[], strict?: boolean): T[]
  • Normalize the argument to always be an array.


    Type parameters

    • T

    Parameters

    • optionaldata: T | readonly T[]
    • strict: boolean = false

    Returns T[]

staticcallCompiledFunction

  • callCompiledFunction<T, R>(fn: (...args: T) => R, ...args: T): R
  • Type parameters

    • T: unknown[]
    • R

    Parameters

    • fn: (...args: T) => R
      • rest...args: T

      Returns R

    staticclassName

    • className<T>(classOrName: EntityName<T>): string
    • Gets string name of given class.


      Type parameters

      • T

      Parameters

      • classOrName: EntityName<T>

      Returns string

    staticcopy

    • copy<T>(entity: T, respectCustomCloneMethod?: boolean): T
    • Creates deep copy of given object.


      Type parameters

      • T

      Parameters

      • entity: T
      • respectCustomCloneMethod: boolean = true

      Returns T

    staticcreateFunction

    • createFunction(context: Map<string, any>, code: string): any
    • Parameters

      • context: Map<string, any>
      • code: string

      Returns any

    staticdefaultValue

    • defaultValue<T>(prop: T, option: keyof T, defaultValue: any): void
    • Type parameters

      • T: Dictionary

      Parameters

      • prop: T
      • option: keyof T
      • defaultValue: any

      Returns void

    staticdetectTsNode

    • detectTsNode(): boolean
    • Tries to detect ts-node runtime.


      Returns boolean

    staticdiff

    • diff(a: Dictionary, b: Dictionary): Record<string | number, any>
    • Computes difference between two objects, ignoring items missing in b.


      Parameters

      • a: Dictionary
      • b: Dictionary

      Returns Record<string | number, any>

    staticdropUndefinedProperties

    • dropUndefinedProperties<T>(o: any, value?: null, visited?: Set<unknown>): void
    • Removes undefined properties (recursively) so they are not saved as nulls


      Type parameters

      • T = Dictionary | unknown[]

      Parameters

      • o: any
      • optionalvalue: null
      • visited: Set<unknown> = ...

      Returns void

    staticdynamicImport

    • dynamicImport<T>(id: string): Promise<T>

    staticdynamicImportProvider

    • dynamicImportProvider(id: string): Promise<any>
    • Parameters

      • id: string

      Returns Promise<any>

    staticequals

    • equals(a: any, b: any): boolean
    • Checks if arguments are deeply (but not strictly) equal.


      Parameters

      • a: any
      • b: any

      Returns boolean

    staticextractEnumValues

    • extractEnumValues(target: Dictionary): (string | number)[]
    • Extracts all possible values of a TS enum. Works with both string and numeric enums.


      Parameters

      • target: Dictionary

      Returns (string | number)[]

    staticextractPK

    • extractPK<T>(data: any, meta?: EntityMetadata<T>, strict?: boolean): null | string | Primary<T>
    • Extracts primary key from data. Accepts objects or primary keys directly.


      Type parameters

      • T

      Parameters

      • data: any
      • optionalmeta: EntityMetadata<T>
      • strict: boolean = false

      Returns null | string | Primary<T>

    staticfileURLToPath

    • fileURLToPath(url: string | URL): string
    • Parameters

      • url: string | URL

      Returns string

    staticfindDuplicates

    • findDuplicates<T>(items: T[]): T[]
    • Type parameters

      • T

      Parameters

      • items: T[]

      Returns T[]

    staticflatten

    • flatten<T>(arrays: T[][]): T[]
    • Type parameters

      • T

      Parameters

      • arrays: T[][]

      Returns T[]

    staticgetCompositeKeyHash

    • getCompositeKeyHash<T>(data: EntityData<T>, meta: EntityMetadata<T>, convertCustomTypes?: boolean, platform?: Platform, flat?: boolean): string
    • Type parameters

      • T

      Parameters

      • data: EntityData<T>
      • meta: EntityMetadata<T>
      • convertCustomTypes: boolean = false
      • optionalplatform: Platform
      • flat: boolean = false

      Returns string

    staticgetCompositeKeyValue

    • getCompositeKeyValue<T>(data: EntityData<T>, meta: EntityMetadata<T>, convertCustomTypes?: boolean | convertToDatabaseValue | convertToJSValue, platform?: Platform): Primary<T>
    • Type parameters

      • T

      Parameters

      • data: EntityData<T>
      • meta: EntityMetadata<T>
      • convertCustomTypes: boolean | convertToDatabaseValue | convertToJSValue = false
      • optionalplatform: Platform

      Returns Primary<T>

    staticgetGlobalStorage

    • getGlobalStorage(namespace: string): Dictionary
    • Parameters

      • namespace: string

      Returns Dictionary

    staticgetORMVersion

    • getORMVersion(): string
    • Returns string

    staticgetObjectKeysSize

    • getObjectKeysSize(object: Dictionary): number

    staticgetObjectType

    • getObjectType(value: any): string
    • Gets the type of the argument.


      Parameters

      • value: any

      Returns string

    staticgetOrderedPrimaryKeys

    • getOrderedPrimaryKeys<T>(id: Primary<T> | Record<string, Primary<T>>, meta: EntityMetadata<T>): Primary<T>[]
    • Type parameters

      • T

      Parameters

      • id: Primary<T> | Record<string, Primary<T>>
      • meta: EntityMetadata<T>

      Returns Primary<T>[]

    staticgetParamNames

    • getParamNames(func: string | { toString: any }, methodName?: string): string[]
    • Returns array of functions argument names. Uses escaya for source code analysis.


      Parameters

      • func: string | { toString: any }
        • toString:
      • optionalmethodName: string

      Returns string[]

    staticgetPrimaryKeyCond

    • getPrimaryKeyCond<T>(entity: T, primaryKeys: string[]): null | Record<string, Primary<T>>
    • Type parameters

      • T

      Parameters

      • entity: T
      • primaryKeys: string[]

      Returns null | Record<string, Primary<T>>

    staticgetPrimaryKeyCondFromArray

    • getPrimaryKeyCondFromArray<T>(pks: Primary<T>[], meta: EntityMetadata<T>): Record<string, Primary<T>>
    • Type parameters

      • T

      Parameters

      • pks: Primary<T>[]
      • meta: EntityMetadata<T>

      Returns Record<string, Primary<T>>

    staticgetPrimaryKeyHash

    • getPrimaryKeyHash(pks: (string | Buffer)[]): string
    • Parameters

      • pks: (string | Buffer)[]

      Returns string

    staticgetPrimaryKeyValues

    • getPrimaryKeyValues<T>(entity: T, primaryKeys: string[], allowScalar?: boolean, convertCustomTypes?: boolean): any
    • Type parameters

      • T

      Parameters

      • entity: T
      • primaryKeys: string[]
      • allowScalar: boolean = false
      • convertCustomTypes: boolean = false

      Returns any

    staticgetRootEntity

    • getRootEntity(metadata: IMetadataStorage, meta: EntityMetadata<any>): EntityMetadata<any>
    • Parameters

      • metadata: IMetadataStorage
      • meta: EntityMetadata<any>

      Returns EntityMetadata<any>

    statichasNestedKey

    • hasNestedKey(object: unknown, key: string): boolean
    • Parameters

      • object: unknown
      • key: string

      Returns boolean

    statichasObjectKeys

    • hasObjectKeys(object: Dictionary): boolean

    statichash

    • hash(data: string, length?: number): string
    • Parameters

      • data: string
      • optionallength: number

      Returns string

    staticisCollection

    • isCollection<T, O>(item: any): item is Collection<T, O>
    • Type parameters

      • T: object
      • O: object = object

      Parameters

      • item: any

      Returns item is Collection<T, O>

    staticisDefined

    • isDefined<T>(data: any): data is T
    • Checks if the argument is not undefined


      Type parameters

      • T = Record<string, unknown>

      Parameters

      • data: any

      Returns data is T

    staticisEmpty

    • isEmpty(data: any): boolean
    • Checks whether the argument is empty (array without items, object without keys or falsy value).


      Parameters

      • data: any

      Returns boolean

    staticisEntity

    • isEntity<T>(data: any, allowReference?: boolean): data is T
    • Checks whether given object is an entity instance.


      Type parameters

      • T = unknown

      Parameters

      • data: any
      • allowReference: boolean = false

      Returns data is T

    staticisEntityClass

    • isEntityClass<T>(data: any, allowReference?: boolean): data is EntityClass<T>
    • Checks whether given object is an entity instance.


      Type parameters

      • T = unknown

      Parameters

      • data: any
      • allowReference: boolean = false

      Returns data is EntityClass<T>

    staticisGroupOperator

    • isGroupOperator(key: string): boolean
    • Parameters

      • key: string

      Returns boolean

    staticisNotObject

    • isNotObject<T>(o: any, not: any[]): o is T
    • Checks if the argument is instance of Object, but not one of the blacklisted types. Returns false for arrays.


      Type parameters

      • T = Dictionary

      Parameters

      • o: any
      • not: any[]

      Returns o is T

    staticisNumber

    • isNumber<T>(s: any): s is T
    • Checks if the argument is number


      Type parameters

      • T = number

      Parameters

      • s: any

      Returns s is T

    staticisObject

    • isObject<T>(o: any): o is T
    • Checks if the argument is instance of Object. Returns false for arrays.


      Type parameters

      • T = Dictionary

      Parameters

      • o: any

      Returns o is T

    staticisObjectID

    • isObjectID(key: any): boolean
    • Checks whether the argument is ObjectId instance


      Parameters

      • key: any

      Returns boolean

    staticisOperator

    • isOperator(key: string, includeGroupOperators?: boolean): boolean
    • Parameters

      • key: string
      • includeGroupOperators: boolean = true

      Returns boolean

    staticisPlainObject

    • isPlainObject(value: any): value is Dictionary
    • Checks whether the value is POJO (e.g. { foo: 'bar' }, and not instance of Foo)


      Parameters

      • value: any

      Returns value is Dictionary

    staticisPrimaryKey

    • isPrimaryKey<T>(key: any, allowComposite?: boolean): key is Primary<T>
    • Checks whether the argument looks like primary key (string, number or ObjectId).


      Type parameters

      • T

      Parameters

      • key: any
      • allowComposite: boolean = false

      Returns key is Primary<T>

    staticisString

    • isString(s: any): s is string
    • Checks if the argument is string


      Parameters

      • s: any

      Returns s is string

    staticlookupPathFromDecorator

    • lookupPathFromDecorator(name: string, stack?: string[]): string
    • Uses some dark magic to get source path to caller where decorator is used. Analyses stack trace of error created inside the function call.


      Parameters

      • name: string
      • optionalstack: string[]

      Returns string

    staticmerge

    • merge(target: any, ...sources: any[]): any
    • Merges all sources into the target recursively.


      Parameters

      • target: any
      • rest...sources: any[]

      Returns any

    staticmergeConfig

    • mergeConfig(target: any, ...sources: any[]): any
    • Merges all sources into the target recursively. Ignores undefined values.


      Parameters

      • target: any
      • rest...sources: any[]

      Returns any

    staticnormalizePath

    • normalizePath(...parts: string[]): string
    • Resolves and normalizes a series of path parts relative to each preceeding part. If any part is a file: URL, it is converted to a local path. If any part is an absolute path, it replaces preceeding paths (similar to path.resolve in NodeJS). Trailing directory separators are removed, and all directory separators are converted to POSIX-style separators (/).


      Parameters

      • rest...parts: string[]

      Returns string

    staticpathExists

    • pathExists(path: string, options?: GlobbyOptions): Promise<boolean>
    • Parameters

      • path: string
      • options: GlobbyOptions = {}

      Returns Promise<boolean>

    staticpropertyDecoratorReturnValue

    • propertyDecoratorReturnValue(): any

    staticrandomInt

    • randomInt(min: number, max: number): number
    • Parameters

      • min: number
      • max: number

      Returns number

    staticrelativePath

    • relativePath(path: string, relativeTo: string): string
    • Determines the relative path between two paths. If either path is a file: URL, it is converted to a local path.


      Parameters

      • path: string
      • relativeTo: string

      Returns string

    staticremoveDuplicates

    • removeDuplicates<T>(items: T[]): T[]
    • Type parameters

      • T

      Parameters

      • items: T[]

      Returns T[]

    staticrenameKey

    • renameKey<T>(payload: T, from: string | keyof T, to: string): void
    • Renames object key, keeps order of properties.


      Type parameters

      • T

      Parameters

      • payload: T
      • from: string | keyof T
      • to: string

      Returns void

    staticrequireFrom

    • requireFrom<T>(id: string, from?: string): T
    • Require a module from a specific location


      Type parameters

      • T: Dictionary

      Parameters

      • id: string

        The module to require

      • optionalfrom: string = ...

        Location to start the node resolution

      Returns T

    staticrunIfNotEmpty

    • runIfNotEmpty(clause: () => any, data: any): void
    • Parameters

      • clause: () => any
        • data: any

        Returns void

      staticrunSerial

      • runSerial<T, U>(items: Iterable<U>, cb: (item: U) => Promise<T>): Promise<T[]>
      • Executes the cb promise serially on every element of the items array and returns array of resolved values.


        Type parameters

        • T = any
        • U = any

        Parameters

        • items: Iterable<U>
        • cb: (item: U) => Promise<T>

          Returns Promise<T[]>

        staticsetDynamicImportProvider

        • setDynamicImportProvider(provider: (id: string) => Promise<unknown>): void
        • Parameters

          • provider: (id: string) => Promise<unknown>

            Returns void

          staticsetPayloadProperty

          • setPayloadProperty<T>(entity: EntityDictionary<T>, meta: EntityMetadata<T>, prop: EntityProperty<T>, value: unknown, idx?: number[]): void
          • Type parameters

            • T

            Parameters

            • entity: EntityDictionary<T>
            • meta: EntityMetadata<T>
            • prop: EntityProperty<T>
            • value: unknown
            • idx: number[] = []

            Returns void

          staticsplitPrimaryKeys

          • splitPrimaryKeys(key: string): string[]
          • Parameters

            • key: string

            Returns string[]

          staticstripRelativePath

          • stripRelativePath(str: string): string
          • Parameters

            • str: string

            Returns string

          statictryRequire

          • tryRequire<T>(__namedParameters: { allowError?: string; from?: string; module: string; warning: string }): undefined | T
          • Type parameters

            • T: Dictionary = any

            Parameters

            • __namedParameters: { allowError?: string; from?: string; module: string; warning: string }
              • optionalallowError: string
              • optionalfrom: string
              • module: string
              • warning: string

            Returns undefined | T

          staticunique

          • unique<T>(items: T[]): T[]
          • Gets array without duplicates.


            Type parameters

            • T = string

            Parameters

            • items: T[]

            Returns T[]

          staticunwrapProperty

          • unwrapProperty<T>(entity: T, meta: EntityMetadata<T>, prop: EntityProperty<T>, payload?: boolean): [unknown, number[]][]
          • Type parameters

            • T

            Parameters

            • entity: T
            • meta: EntityMetadata<T>
            • prop: EntityProperty<T>
            • payload: boolean = false

            Returns [unknown, number[]][]