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

js-object-ext

v1.0.5

Published

Provides high-level functionalities on JS objects

Downloads

12

Readme

js-object-ext

npm

typescript and webpack compatible.

Quick intro

There is a detailed API documentation available. Here are functionalities I needed in many projects that I finally gathered in a library. There are few functionalitites though many can still be added. It's not rocket science but always useful.

Things have been written so that the whole library can be used even if only one function is used and tree-shaking is used, only that function will be packed.

All the functions are packed as root export of the library - they are divided in modules in the documentation for cease of reading.

Example

import {onGet, del} from 'js-object-ext'

Deep

The deep part is about recursion in the object.

equal

Deeply compare objects. This does not get through for(... in ...) - it compares the constructors and owned properties.

copy

Deeply copy a source into a target. The result will be the target into which has been copied the source.

The copy operation stops when an object has to be copied into an object with a different constructor - the result will still be a cloned object but the target object will be unmodified.

Hence, skipping the target argument will just return a deep clone of the source.

Path

Three functions, get, set and del take an object as a first argument and a path as a second argument. Only set takes a third argument for the value.

A useless example is get(window, 'location.href')

The path specific characters are '.' along with '[' and ']' for numeric indexes. Note that 'myArray[2]' is equivalent to 'myArray.2'

Cuff

These functions are shortcuts to bind callback to property-get and property-set of an object. The most usefull might be onSet and onGet who add a callback to an object' property set/get respectively. Also cuff who takes two set of object/property name and make sure they are bound.

The main functionality are onGet and onSet that allowa adding a call-back on an object property get/set.