@openinf/util-object
Common JavaScript Object type-related utilities
The high-level goal of @openinf/util-object
is to serve as a Node.js package
containing utilities for common JavaScript Object type-related utilities
primarily enabling users to perform comparisons and analyze object contents. As
is the case with any software project in continuous development, omissions and
errors may exist, for which contributions are welcome.
Installation
@openinf/util-object
runs on Node.js and is available via npm
.
npm install @openinf/util-object
Usage
import { hasOwn } from '@openinf/util-object';
export class GhFileImporter {
constructor(options: GhFileImporterOptions) {
if (!hasOwn(options, 'destDir')) {
throw new MissingOptionError('destDir');
}
}
}
Functions
-
map([opt_initial]) ⇒
T
-
Returns a map-like object. If
opt_initial
is provided, copies its own properties into the newly created object. -
hasOwn(obj, key) ⇒
boolean
-
Checks if the given key is a property in the map.
-
ownProperty(obj, key) ⇒
unknown
-
Returns obj[key] iff key is obj's own property (is not inherited). Otherwise, returns undefined.
-
deepMerge(target, source, depth) ⇒
Object
-
Deep merges source into target.
-
omit(o, props) ⇒
Record.<string, (number|RegExp)>
-
objectsEqualShallow(o1, o2) ⇒
boolean
-
memo(obj, prop, factory) ⇒
R
-
Takes an object, a property name, and a factory function. If the value of the property is undefined, it generates a value with the factory function, updates the object originally passed, and returns the value that was returned by the factory function.
T
map([opt_initial]) ⇒ Returns a map-like object. If opt_initial
is provided, copies its own
properties into the newly created object.
Kind: global function
Param | Type | Description |
---|---|---|
[opt_initial] | T |
This should typically be an object literal. |
boolean
hasOwn(obj, key) ⇒ Checks if the given key is a property in the map.
Kind: global function
Param | Type | Description |
---|---|---|
obj | T |
a map like property. |
key | string |
unknown
ownProperty(obj, key) ⇒ Returns obj[key] iff key is obj's own property (is not inherited). Otherwise, returns undefined.
Kind: global function
Param | Type |
---|---|
obj | Record.<string, (number|RegExp)> |
key | string |
Object
deepMerge(target, source, depth) ⇒ Deep merges source into target.
Kind: global function
Throws:
-
Error
If source contains a circular reference. Note: Only nested objects are deep-merged, primitives and arrays are not.
Param | Type | Default | Description |
---|---|---|---|
target | Object |
||
source | Object |
||
depth | number |
10 |
The maximum merge depth. If exceeded, Object.assign will be used instead. |
Array.<ITargetSourceDepth>
deepMerge~queue : Kind: inner constant of deepMerge
Record.<string, (number|RegExp)>
omit(o, props) ⇒ Kind: global function
Returns: Record.<string, (number|RegExp)>
- An object with the given properties removed.
Param | Type | Description |
---|---|---|
o | Record.<string, (number|RegExp)> |
An object to remove properties from. |
props | Array.<string> |
A list of properties to remove from the Object. |
boolean
objectsEqualShallow(o1, o2) ⇒ Kind: global function
Param | Type |
---|---|
o1 |
!Record.<string, (number|RegExp)> | null | undefined
|
o2 |
!Record.<string, (number|RegExp)> | null | undefined
|
R
memo(obj, prop, factory) ⇒ Takes an object, a property name, and a factory function. If the value of the property is undefined, it generates a value with the factory function, updates the object originally passed, and returns the value that was returned by the factory function.
Kind: global function
Param | Type |
---|---|
obj | T |
prop | string |
factory | function |
© The OpenINF Authors