Utils
Index
Constructors
Properties
Methods
- absolutePath
- asArray
- callCompiledFunction
- className
- copy
- createFunction
- defaultValue
- detectTsNode
- diff
- dropUndefinedProperties
- dynamicImport
- dynamicImportProvider
- entries
- equals
- extractChildElements
- extractEnumValues
- extractPK
- fileURLToPath
- findDuplicates
- flatten
- getCompositeKeyHash
- getCompositeKeyValue
- getGlobalStorage
- getObjectKeysSize
- getObjectType
- getOrderedPrimaryKeys
- getORMVersion
- getParamNames
- getPrimaryKeyCond
- getPrimaryKeyCondFromArray
- getPrimaryKeyHash
- getPrimaryKeyValues
- getRootEntity
- hash
- hasNestedKey
- hasObjectKeys
- isArrayOperator
- isCollection
- isDefined
- isEmpty
- isEntity
- isGroupOperator
- isIterable
- isJsonKeyOperator
- isNotObject
- isNumber
- isObject
- isObjectID
- isOperator
- isPlainObject
- isPrimaryKey
- isRawSql
- isScalarReference
- isString
- keys
- lookupPathFromDecorator
- mapFlatCompositePrimaryKey
- merge
- mergeConfig
- normalizePath
- parseArgs
- pathExists
- primaryKeyToObject
- propertyDecoratorReturnValue
- randomInt
- relativePath
- removeDuplicates
- renameKey
- requireFrom
- runIfNotEmpty
- runSerial
- setDynamicImportProvider
- setPayloadProperty
- splitPrimaryKeys
- stripRelativePath
- tokenize
- tryRequire
- unique
- unwrapProperty
- values
- xor
Constructors
constructor
Returns Utils
Properties
staticreadonlyPK_SEPARATOR
Methods
staticabsolutePath
Parameters
path: string
baseDir: string = ...
Returns string
staticasArray
Normalize the argument to always be an array.
Parameters
optionaldata: T | readonly T[] | Iterable<T, any, any>
strict: boolean = false
Returns T[]
staticcallCompiledFunction
Parameters
fn: (...args: T) => R
rest...args: T
Returns R
staticclassName
Gets string name of given class.
Parameters
classOrName: EntityName<T>
Returns string
staticcopy
Creates deep copy of given object.
Parameters
entity: T
respectCustomCloneMethod: boolean = true
Returns T
staticcreateFunction
Parameters
context: Map<string, any>
code: string
Returns any
staticdefaultValue
Parameters
prop: T
option: keyof T
defaultValue: any
Returns void
staticdetectTsNode
Tries to detect
ts-node
runtime.Returns boolean
staticdiff
Computes difference between two objects, ignoring items missing in
b
.Parameters
a: Dictionary
b: Dictionary
Returns Record<string | number, any>
staticdropUndefinedProperties
Removes
undefined
properties (recursively) so they are not saved as nullsParameters
o: any
optionalvalue: null
visited: Set<unknown> = ...
Returns void
staticdynamicImport
Parameters
id: string
Returns Promise<T>
staticdynamicImportProvider
Parameters
id: string
Returns Promise<any>
staticentries
Parameters
obj: T
Returns [keyof T, T[keyof T]][]
staticequals
Checks if arguments are deeply (but not strictly) equal.
Parameters
a: any
b: any
Returns boolean
staticextractChildElements
Parameters
items: string[]
prefix: string
optionalallSymbol: string
Returns string[]
staticextractEnumValues
Extracts all possible values of a TS enum. Works with both string and numeric enums.
Parameters
target: Dictionary
Returns (string | number)[]
staticextractPK
Extracts primary key from
data
. Accepts objects or primary keys directly.Parameters
data: any
optionalmeta: EntityMetadata<T>
strict: boolean = false
Returns null | string | (T extends { [PrimaryKeyProp]?: PK } ? PK extends keyof T<T> ? ReadonlyPrimary<UnwrapPrimary<T<T>[PK<PK>]>> : PK extends keyof T<T>[] ? ReadonlyPrimary<PrimaryPropToType<T<T>, PK<PK>>> : PK : T extends { _id?: PK } ? string | ReadonlyPrimary<PK> : T extends { uuid?: PK } ? ReadonlyPrimary<PK> : T extends { id?: PK } ? ReadonlyPrimary<PK> : T)
staticfileURLToPath
Parameters
url: string | URL
Returns string
staticfindDuplicates
Parameters
items: T[]
Returns T[]
staticflatten
Parameters
arrays: T[][]
Returns T[]
staticgetCompositeKeyHash
Parameters
data: EntityData<T>
meta: EntityMetadata<T>
convertCustomTypes: boolean = false
optionalplatform: Platform
flat: boolean = false
Returns string
staticgetCompositeKeyValue
Parameters
data: EntityData<T>
meta: EntityMetadata<T>
convertCustomTypes: boolean | convertToDatabaseValue | convertToJSValue = false
optionalplatform: Platform
Returns Primary<T>
staticgetGlobalStorage
Parameters
namespace: string
Returns Dictionary
staticgetObjectKeysSize
Returns the number of properties on
obj
. This is 20x faster than Object.keys(obj).length.Parameters
object: Dictionary
Returns number
staticgetObjectType
Gets the type of the argument.
Parameters
value: any
Returns string
staticgetOrderedPrimaryKeys
Parameters
id: Primary<T> | Record<string, Primary<T>>
meta: EntityMetadata<T>
optionalplatform: Platform
convertCustomTypes: boolean = false
Returns Primary<T>[]
staticgetORMVersion
Returns string
staticgetParamNames
Returns array of functions argument names. Uses
esprima
for source code analysis.Parameters
func: string | { toString: any } | { type: string; value: string }[]
toString:
optionalmethodName: string
Returns string[]
staticgetPrimaryKeyCond
staticgetPrimaryKeyCondFromArray
Parameters
pks: (T extends { [PrimaryKeyProp]?: PK } ? PK extends keyof T<T> ? ReadonlyPrimary<UnwrapPrimary<T<T>[PK<PK>]>> : PK extends keyof T<T>[] ? ReadonlyPrimary<PrimaryPropToType<T<T>, PK<PK>>> : PK : T extends { _id?: PK } ? string | ReadonlyPrimary<PK> : T extends { uuid?: PK } ? ReadonlyPrimary<PK> : T extends { id?: PK } ? ReadonlyPrimary<PK> : T)[]
meta: EntityMetadata<T>
Returns Record<string, T extends { [PrimaryKeyProp]?: PK } ? PK extends keyof T<T> ? ReadonlyPrimary<UnwrapPrimary<T<T>[PK<PK>]>> : PK extends keyof T<T>[] ? ReadonlyPrimary<PrimaryPropToType<T<T>, PK<PK>>> : PK : T extends { _id?: PK } ? string | ReadonlyPrimary<PK> : T extends { uuid?: PK } ? ReadonlyPrimary<PK> : T extends { id?: PK } ? ReadonlyPrimary<PK> : T>
staticgetPrimaryKeyHash
Parameters
pks: (string | Date | Buffer)[]
Returns string
staticgetPrimaryKeyValues
Parameters
entity: T
primaryKeys: string[]
allowScalar: boolean = false
convertCustomTypes: boolean = false
Returns any
staticgetRootEntity
Parameters
metadata: IMetadataStorage
meta: EntityMetadata<any>
Returns EntityMetadata<any>
statichash
Parameters
data: string
optionallength: number
Returns string
statichasNestedKey
Parameters
object: unknown
key: string
Returns boolean
statichasObjectKeys
Returns true if
obj
has at least one property. This is 20x faster than Object.keys(obj).length.Parameters
object: Dictionary
Returns boolean
staticisArrayOperator
Parameters
key: PropertyKey
Returns boolean
staticisCollection
Parameters
item: any
Returns item is Collection<T, O>
staticisDefined
Checks if the argument is not undefined
Parameters
data: any
Returns data is T
staticisEmpty
Checks whether the argument is empty (array without items, object without keys or falsy value).
Parameters
data: any
Returns boolean
staticisEntity
Checks whether given object is an entity instance.
Parameters
data: any
allowReference: boolean = false
Returns data is T & {}
staticisGroupOperator
Parameters
key: PropertyKey
Returns boolean
staticisIterable
Checks if the value is iterable, but considers strings and buffers as not iterable.
Parameters
value: unknown
Returns value is Iterable<T, any, any>
staticisJsonKeyOperator
Parameters
key: PropertyKey
Returns boolean
staticisNotObject
Checks if the argument is instance of
Object
, but not one of the blacklisted types. Returns false for arrays.Parameters
o: any
not: any[]
Returns o is T
staticisNumber
Checks if the argument is number
Parameters
s: any
Returns s is T
staticisObject
Checks if the argument is instance of
Object
. Returns false for arrays.Parameters
o: any
Returns o is T
staticisObjectID
Checks whether the argument is ObjectId instance
Parameters
key: any
Returns boolean
staticisOperator
Parameters
key: PropertyKey
includeGroupOperators: boolean = true
Returns boolean
staticisPlainObject
Checks whether the value is POJO (e.g.
{ foo: 'bar' }
, and not instance ofFoo
)Parameters
value: any
Returns value is T
staticisPrimaryKey
Checks whether the argument looks like primary key (string, number or ObjectId).
Parameters
key: any
allowComposite: boolean = false
Returns key is Primary<T>
staticisRawSql
Parameters
value: unknown
Returns value is T
staticisScalarReference
Checks whether given object is a scalar reference.
Parameters
data: any
allowReference: boolean = false
Returns data is ScalarReference<any>
staticisString
Checks if the argument is string
Parameters
s: any
Returns s is string
statickeys
Parameters
obj: T
Returns keyof T[]
staticlookupPathFromDecorator
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
staticmapFlatCompositePrimaryKey
Maps nested FKs from
[1, 2, 3]
to[1, [2, 3]]
.Parameters
fk: any[]
prop: EntityProperty<any, any>
fieldNames: string[] = prop.fieldNames
idx: number = 0
Returns any
staticmerge
Merges all sources into the target recursively.
Parameters
target: any
rest...sources: any[]
Returns any
staticmergeConfig
Merges all sources into the target recursively. Ignores
undefined
values.Parameters
target: any
rest...sources: any[]
Returns any
staticnormalizePath
Resolves and normalizes a series of path parts relative to each preceding part. If any part is a
file:
URL, it is converted to a local path. If any part is an absolute path, it replaces preceding paths (similar topath.resolve
in NodeJS). Trailing directory separators are removed, and all directory separators are converted to POSIX-style separators (/
).Parameters
rest...parts: string[]
Returns string
staticparseArgs
simple process.argv parser, supports only properties with long names, prefixed with
--
Returns T
staticpathExists
Parameters
path: string
options: GlobbyOptions = {}
Returns Promise<boolean>
staticprimaryKeyToObject
Parameters
meta: EntityMetadata<T>
primaryKey: T | Primary<T>
optionalvisible: keyof T[]
Returns T
staticpropertyDecoratorReturnValue
Returns any
staticrandomInt
Parameters
min: number
max: number
Returns number
staticrelativePath
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
Parameters
items: T[]
Returns T[]
staticrenameKey
Renames object key, keeps order of properties.
Parameters
payload: T
from: string | keyof T
to: string
Returns void
staticrequireFrom
Require a module from a specific location
Parameters
id: string
The module to require
optionalfrom: string = ...
Location to start the node resolution
Returns T
staticrunIfNotEmpty
Parameters
clause: () => any
data: any
Returns void
staticrunSerial
Executes the
cb
promise serially on every element of theitems
array and returns array of resolved values.Parameters
items: Iterable<U, any, any>
cb: (item: U) => Promise<T>
Returns Promise<T[]>
staticsetDynamicImportProvider
Parameters
provider: (id: string) => Promise<unknown>
Returns void
staticsetPayloadProperty
Parameters
entity: EntityDictionary<T>
meta: EntityMetadata<T>
prop: EntityProperty<T, any>
value: unknown
idx: number[]
Returns void
staticsplitPrimaryKeys
Parameters
key: string
Returns EntityKey<T>[]
staticstripRelativePath
Parameters
str: string
Returns string
statictokenize
Returns array of functions argument names. Uses
esprima
for source code analysis.Parameters
func: string | { toString: any } | { type: string; value: string }[]
toString:
Returns { type: string; value: string }[]
statictryRequire
Parameters
__namedParameters: { allowError?: string; from?: string; module: string; warning: string }
optionalallowError: string
optionalfrom: string
module: string
warning: string
Returns undefined | T
staticunique
Gets array without duplicates.
Parameters
items: T[]
Returns T[]
staticunwrapProperty
Parameters
entity: T
meta: EntityMetadata<T>
prop: EntityProperty<T, any>
payload: boolean = false
Returns [unknown, number[]][]
staticvalues
Parameters
obj: T
Returns T[keyof T][]
staticxor
Parameters
a: boolean
b: boolean
Returns boolean
Computes the absolute path to for the given path relative to the provided base directory. If either
path
orbaseDir
arefile:
URLs, they are converted to local paths.