npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

object-path-operator

v5.2.2

Published

Operate object specific path

Downloads

175

Readme

object-path-operator

Install

npm install --save object-path-operator
# or
yarn add object-path-operator

API

getProp

function getProp(obj: object, path: PropertyKey[]): unknown

Get object property by path.

const obj = {
  key: ['value']
}

getProp(obj, []) // throw error
getProp(obj, ['key', 0]) // value
getProp(obj, ['key-does-not-exist']) // throw error

tryGetProp

function tryGetProp(obj: object, path: PropertyKey[], defaultValue?: unknown): unknown
const obj = {
  key: ['value']
}

tryGetProp(obj, []) // undefined
tryGetProp(obj, ['key', 0]) // value
tryGetProp(obj, ['key-does-not-exist']) // undefined

getOwnProp

function getOwnProp(obj: object, path: PropertyKey[]): unknown

tryGetOwnProp

function tryGetOwnProp(obj: object, path: PropertyKey[], defaultValue?: unknown): unknown

setProp

function setProp(obj: object, path: PropertyKey[], value: unknown): boolean

Set object property by path.

const obj = {
  key: ['value']
}

setProp(obj, [], 'new-value') // false
setProp(obj, ['key', 0], 'new-value') // true
setProp(obj, ['newKey'], 'new-value') // true
setProp(obj, ['path', 'does', 'not', 'exist'], 'new-value') // throw error

trySetProp

function trySetProp(
  obj: object
, path: [PropertyKey, ...PropertyKey[]]
, value: unknown
): boolean
const obj = {
  key: ['value']
}

trySetProp(obj, [], 'new-value') // false
trySetProp(obj, ['key', 0], 'new-value') // true
trySetProp(obj, ['newKey'], 'new-value') // true
trySetProp(obj, ['path', 'does', 'not', 'exist'], 'new-value') // false

setOwnProp

function setOwnProp(obj: object, path: PropertyKey[], value: unknown): boolean

trySetOwnProp

function trySetOwnProp(obj: object, path: PropertyKey[], value: unknown): boolean

removeProp

function removeProp(obj: object, path: PropertyKey[]): boolean

Remove object property by path.

const obj = {
  key: ['value']
}

removeProp(obj, []) // throw error
removeProp(obj, ['key', 0]) // true
removeProp(obj, ['key-does-not-exist']) // throw error

tryRemoveProp

function tryRemoveProp(obj: object, path: PropertyKey[]): boolean
const obj = {
  key: ['value']
}

tryRemoveProp(obj, []) // false
tryRemoveProp(obj, ['key', 0]) // true
tryRemoveProp(obj, ['key-does-not-exist']) // false

removeOwnProp

function removeOwnProp(obj: object, path: PropertyKey[]): boolean

tryRemoveOwnProp

function tryRemoveOwnProp(obj: object, path: PropertyKey[]): boolean

propExists

function propExists(obj: object, path: PropertyKey[]): boolean
const obj = {
  key: ['value']
}

propExists(obj, []) // throw error
propExists(obj, ['key', 0]) // true
propExists(obj, ['key-does-not-exist']) // false

tryPropExists

function tryPropExists(obj: object, path: PropertyKey[]): boolean
const obj = {
  key: ['value]
}

tryPropExists(obj, []) // false
tryPropExists(obj, ['key', 0]) // true
tryPropExists(obj, ['key-does-not-exist']) // false

ownPropExists

function ownPropExists(obj: object, path: PropertyKey[]): boolean

tryOwnPropExists

function tryOwnPropExists(obj: object, path: PropertyKey[]): boolean