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

cwa-javascript-extension

v1.0.2

Published

This repository contains custom extensions for JavaScript's `Array` and `String` prototypes, providing additional utility functions.

Downloads

7

Readme

Custom JavaScript Array, String, and Object Extensions

This repository provides a collection of custom extensions for JavaScript's Array, String, and Object prototypes, offering additional utility functions to enhance your development experience.

Table of Contents

Installation

Include the JavaScript extension script in your project:

<script src="https://cdn.jsdelivr.net/gh/abhigdrv/javascript-extension/js-extension.js"></script>

String Prototype Extensions

  • capitalizeFirstLetter(): Capitalizes the first letter of a string.
  • capitalizeWords(): Capitalizes the first letter of each word in a string.
  • toCamelCase(): Converts a string to camel case.
  • isValidEmail(): Validates if a string is a valid email format.
  • reverse(): Reverses the string.
  • countOccurrences(substring): Counts the occurrences of a substring within the string.
  • removeWhitespace(): Removes all whitespace from the string.
  • toSnakeCase(): Converts a string to snake case.
  • truncate(length): Truncates the string to a specified length, adding ellipsis if necessary.
  • stripHtml(): Removes HTML tags from a string.
  • replaceAllOccurrences(search, replacement): Replaces all occurrences of a substring with a new value.
  • toKebabCase(): Converts a string to kebab case.
  • toTitleCase(): Converts a string to title case.
  • pad(length, char): Pads the string to a specified length with a character.
  • startsWithSubstring(substring): Checks if the string starts with a specific substring.
  • endsWithSubstring(substring): Checks if the string ends with a specific substring.
  • removeSubstring(substring): Removes all instances of a substring.
  • toBoolean(): Converts a string to a boolean.
  • repeatString(times): Repeats the string a specified number of times.
  • toPascalCase(): Converts a string to Pascal case.
  • isPalindrome(): Checks if the string is a palindrome.
  • toCharArray(): Converts the string to an array of characters.
  • removeCharacter(char): Removes all instances of a character.
  • isDigitOnly(): Checks if the string contains only digits.
  • toSentenceCase(): Converts the string to sentence case.
  • getFileExtension(): Gets the file extension from a string representing a file name.
  • containsAny(substrings): Checks if the string contains any of the provided substrings.
  • trimSpaces(): Trims whitespace from both ends of the string.
  • toLowerCaseString(): Converts the string to lower case.
  • toUpperCaseString(): Converts the string to upper case.
  • toSlug(): Converts the string to a URL-friendly slug.

Array Prototype Extensions

  • groupBy(callback): Groups array elements based on a callback function.
  • groupByKey(keyName): Groups array elements by a specific key.
  • distinct(): Returns an array with distinct elements.
  • distinctByKey(key): Returns an array of unique objects based on a specific key.
  • sortBy(callback): Sorts the array based on a custom callback function.
  • sortByKey(key): Sorts the array of objects based on a specific key.
  • sum(callback): Computes the sum of array elements based on a callback function.
  • sumByKey(key): Computes the sum of array elements based on a specific key.
  • chunk(size): Splits the array into chunks of a specified size.
  • unique(): Returns an array with unique elements.
  • uniqueByKey(key): Returns an array of unique objects based on a specific key.
  • remove(item): Removes a specific item from the array.
  • removeByKeyValue(key, value): Removes items based on a specific key-value pair.
  • findIndexByKeyValue(key, value): Finds the index of an object based on a specific key-value pair.
  • findByKeyValue(key, value): Finds an object based on a specific key-value pair.
  • findValueByKeyValue(key, value, retrieveKey): Finds the value of a specific key in an object based on another key-value pair.
  • filterByKeyValue(key, value): Filters array elements based on a specific key-value pair.
  • deepClone(): Deeply clones the array.
  • average(callback): Computes the average of array elements based on a callback function.
  • averageByKey(key): Computes the average of array elements based on a specific key.
  • all(callback): Checks if all elements satisfy a callback function.
  • any(callback): Checks if any elements satisfy a callback function.
  • max(callback): Finds the maximum value based on a callback function.
  • maxByKey(key): Finds the maximum value based on a specific key.
  • min(callback): Finds the minimum value based on a callback function.
  • minByKey(key): Finds the minimum value based on a specific key.
  • compact(): Removes falsy values from the array.
  • union(array): Returns the union of two arrays.
  • intersect(array): Returns the intersection of two arrays.
  • difference(array): Returns the difference of two arrays.
  • zip(array): Zips two arrays together.
  • flatten(): Flattens a nested array.
  • flattenDepth(depth): Flattens a nested array up to a specified depth.
  • reverseCopy(): Returns a reversed copy of the array.
  • transpose(): Transposes a 2D array.
  • groupBySize(size): Groups array elements by size.
  • nth(n): Returns the nth element of the array.
  • isEmpty(): Checks if the array is empty.
  • isNotEmpty(): Checks if the array is not empty.

Object Prototype Extensions

  • merge(source): Merges two objects.
  • deepMerge(source): Deeply merges two objects.
  • clone(): Shallowly clones the object.
  • deepClone(): Deeply clones the object.
  • isEmpty(): Checks if the object is empty.
  • toQueryString(): Converts the object to a query string.
  • keys(): Returns the keys of the object.
  • values(): Returns the values of the object.
  • entries(): Returns the entries of the object.
  • hasKey(key): Checks if the object has a specific key.
  • hasValue(value): Checks if the object has a specific value.
  • map(callback): Maps the object based on a callback function.
  • filter(callback): Filters the object based on a callback function.
  • reduce(callback, initialValue): Reduces the object based on a callback function and an initial value.
  • firstKey(): Returns the first key of the object.
  • firstValue(): Returns the first value of the object.
  • lastKey(): Returns the last key of the object.
  • lastValue(): Returns the last value of the object.
  • invert(): Inverts the keys and values of the object.
  • findKeyByValue(value): Finds the key based on a value.
  • toMap(): Converts the object to a Map.
  • toJSONString(space): Converts the object to a JSON string with optional spacing.
  • size(): Returns the size of the object.
  • clear(): Clears the object.
  • set(key, value): Sets a key-value pair in the object.
  • get(key, defaultValue): Gets a value based on a key, with an optional default value.
  • remove(key): Removes a key-value pair from the object.

Usage Examples

// String Prototype Extensions
console.log("hello world".capitalizeFirstLetter()); // Hello world
console.log("hello world".capitalizeWords()); // Hello World
console.log("hello world".toCamelCase()); // helloWorld
console.log("[email protected]".isValidEmail()); // true
console.log("hello".reverse()); // olleh
console.log("hello world".countOccurrences("o")); // 2
console.log("hello world".removeWhitespace()); // helloworld
console.log("hello world".toSnakeCase()); // hello_world
console.log("hello world".truncate(5)); // hello...
console.log("<p>hello</p>".stripHtml()); // hello
console.log("hello world".replaceAllOccurrences("o", "0")); // hell0 w0rld
console.log("hello world".toKebabCase()); // hello-world
console.log("hello world".toTitleCase()); // Hello World
console.log("hello".pad(10, " ")); // "    hello   "
console.log("hello world".startsWithSubstring("hello")); // true
console.log("hello world".endsWithSubstring("world")); // true
console.log("hello world".removeSubstring("world")); // hello 
console.log("true".toBoolean()); // true
console.log("hello".repeatString(3)); // hellohellohello
console.log("hello world".toPascalCase()); // Hello

World
console.log("madam".isPalindrome()); // true
console.log("hello".toCharArray()); // ['h', 'e', 'l', 'l', 'o']
console.log("hello world".removeCharacter("l")); // heo word
console.log("12345".isDigitOnly()); // true
console.log("hello world".toSentenceCase()); // Hello world
console.log("file.txt".getFileExtension()); // txt
console.log("hello world".containsAny(["hello", "world"])); // true
console.log("  hello  ".trimSpaces()); // hello
console.log("hello".toLowerCaseString()); // hello
console.log("hello".toUpperCaseString()); // HELLO
console.log("Hello World".toSlug()); // hello-world

// Array Prototype Extensions
const arr = [1, 2, 3, 4, 5];
console.log(arr.groupBy(item => item % 2)); // { 0: [2, 4], 1: [1, 3, 5] }
console.log(arr.distinct()); // [1, 2, 3, 4, 5]
console.log(arr.sum()); // 15
console.log(arr.chunk(2)); // [[1, 2], [3, 4], [5]]
console.log(arr.remove(3)); // [1, 2, 4, 5]
console.log(arr.average()); // 3
console.log(arr.max()); // 5
console.log(arr.min()); // 1
console.log(arr.union([4, 5, 6])); // [1, 2, 3, 4, 5, 6]
console.log(arr.flatten()); // [1, 2, 3, 4, 5]

// Object Prototype Extensions
const obj = { a: 1, b: 2, c: 3 };
console.log(obj.keys()); // ['a', 'b', 'c']
console.log(obj.values()); // [1, 2, 3]
console.log(obj.entries()); // [['a', 1], ['b', 2], ['c', 3]]
console.log(obj.map((key, value) => [key, value * 2])); // { a: 2, b: 4, c: 6 }
console.log(obj.size()); // 3
console.log(obj.toQueryString()); // a=1&b=2&c=3

Contributing

Contributions are welcome! Please read the contributing guidelines for more information.

License

This project is licensed under the MIT License. See the LICENSE file for details.