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

helper-methods-js

v1.0.2

Published

A package that provides helper methods for common and not-so-common use cases

Downloads

5

Readme

Helper methods

A package that provides helper methods for common and not-so-common use cases

Contributions are welcome!

Installation

npm install helper-methods-js

Methods


deepcopy

This method creates a deep copy of the provided object to the given depth. Beyond that depth, the object is shallow copied

| Parameter | Description | Default Value | | :------------ |:---------------| :-------------| | obj | The object to be copied | N/A | | max_depth (optional) | Maximum depth to which the function would copy the object. Beyond this depth shallow copies would be created. A value of 0 implies that the entire object should be deep copied. | 0 |

Sample usage

import { deepcopy } from 'helper-methods-js'

deepcopy({ name: 'bob' }, 0);

dedupe

This method provides implementation to remove duplicates from an array.

| Parameter | Description | Default Value | | :------------ |:---------------| :-------------| | array | The array that needs duplicates removed | N/A | | condition (optional) | A function that returns either true or false. This condition is executed for each array value and the values for which it returns true are removed. In case this condition is not provided, elements are removed on equality comparison. | N/A |

Sample usage

import { dedupe } from 'helper-methods-js'

const cars = [
  { name: "audi", owner: "a" },
  { name: "bmw", owner: "x" },
  { name: "audi", owner: "b" },
  { name: "bmw", owner: "b" },
];

dedupe(cars, (e, i) => e.owner === i.owner)

indexesOf

This method provides implementation to return indexes of all elements that match a specific condition

| Parameter | Description | Default Value | | :------------ |:---------------| :-------------| | array | The array that needs duplicates removed | N/A | | condition | It can either be a value or a functions. In case of a function, the function should return true or false. This condition is executed for each array value and the values for which it returns true are added to the list of indexes returned. In case this condition is not provided, elements are removed on equality comparison. | N/A |

Sample usage

import { indexesOf } from 'helper-methods-js'

const objs = [
  { age: 21, nationality: "a" },
  { age: 24, nationality: "a" },
  { age: 21, nationality: "b" },
  { age: 32, nationality: "c" },
  { age: 42, nationality: "b" },
  { age: 52, nationality: "c" },
  { age: 21, nationality: "a" },
]

const indexes = indexesOf(objs, (i: any) => i.nationality === "b")

isAsyncFunction

This method returns whether a function is async or not.

| Parameter | Description | Default Value | | :------------ |:---------------| :-------------| | fn | The function for which it needs to be determined whether it is async or not. | N/A |

Sample usage

import { isAsyncFunction } from 'helper-methods-js'

const testFn = async () => {};
isAsyncFunction(testFn) // returns true

const testFnSync = () => {};
isAsyncFunction(testFnSync) // returns false

trimDelimeters

This method takes a string and removes the provided delimeters from the start and end of the string.

| Parameter | Description | Default Value | | :------------ |:---------------| :-------------| | str | The string to be trimed | N/A | | delimeters | A list of delimeters to be trimned from the start and/or end of the string provided. | N/A | | options (optional) | An object with values trimStart and trimEnd that represent if the string should only be trimmed from start and/or end respectively. | { trimStart: true, trimEnd: true } |

Sample usage

import { trimDelimeters } from 'helper-methods-js'

trimDelimeters("&&*ABC*(&", ["&", "*"]) // outputs "ABC*("