Skip to content

ignoreintuition/util-object

 
 

Repository files navigation

@openinf/util-object

Common JavaScript Object type-related utilities


'View on npm' 'TypeScript types: included' 'DeepScan grade' 'License: MIT' 'FOSSA Status'


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.


Code Style: Prettier Commit Style: Conventional Commits Active Issues: DeepSource Chat on Matrix




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.

map([opt_initial]) ⇒ T

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.

hasOwn(obj, key) ⇒ boolean

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

ownProperty(obj, key) ⇒ unknown

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

deepMerge(target, source, depth) ⇒ Object

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.

deepMerge~queue : Array.<ITargetSourceDepth>

Kind: inner constant of deepMerge

omit(o, props) ⇒ Record.<string, (number|RegExp)>

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.

objectsEqualShallow(o1, o2) ⇒ boolean

Kind: global function

Param Type
o1 !Record.<string, (number|RegExp)> | null | undefined
o2 !Record.<string, (number|RegExp)> | null | undefined

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.

Kind: global function

Param Type
obj T
prop string
factory function





Show Your Support

If you like the project, give it a star ⭐️, it will be a great encouragement to us.



© The OpenINF Authors


The OpenINF logo

About

Common JavaScript Object type-related utilities

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 60.1%
  • TypeScript 39.9%