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

handyscript

v1.9.0-production

Published

A set of useful modules that makes the javascript development context easier

Downloads

38

Readme

Installation

You can install Handy Script using npm:

npm install handyscript

Alternatively, you can use the CDN script to include the hs.min.js in your HTML file

<script src="https://unpkg.com/browse/[email protected]/dist/hs.min.js"></script>

Alternatively, you can use the CDN script to include the hs.min.js in your HTML file

<!-- VIA: jsdelivr CDN -->
<script src="https://cdn.jsdelivr.net/npm/handyscript@latest/dist/hs.min.js"></script>
<!-- VIA: unpkg CDN -->
<script src="https://unpkg.com/handyscript@latest/dist/hs.min.js"></script>

Otherwise, you can download the hs.min.js file from the dist directory and include it in your HTML file, or click here to download it directly

<script src="path/to/hs.min.js"></script>

Usage

Once you have installed or included the hs.min.js file, you can start using the functions in your code.

// Import the handyscript to extend the prebuilt js modules
import "handyscript";
// explicitly use the HOperators, HashMap
import { HashMap } from "handyscript"

// Array manipulation:
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
console.log(arr.chunk(3)); // [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]
console.log(arr.shuffle()); // [3, 2, 5, 1, 4, 6, 7, 8, 10, 9]
console.log(arr.shuffle().bubbleSort()); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

// The Math Module:
console.log(Math.randomInt(1, 10)); // 7

// HashMap
const obj = {
    name: "John",
    age: 20,
    weight: 70,
    height: 180,
    isMarried: true,
    isStudent: true,
};

const map = new HashMap(obj);

console.log(map.getKeysByValue(true)); // ["isMarried","isStudent"]

// Operators:
 const obj = { name:"ahmed", age: 20 };
 HOperators.objloop(obj, (key, val) => console.log(key, val))
 // name ahmed
 // age 20

Functionalities

check our detailed wiki documentation here

Array

Shuffles the elements of the array array and returns a new array.

Array.prototype.shuffle()

The binarySearch method searches an array for the specified item using the binary search algorithm. you can specify the sort algorithm to be used in sorting the array before searching

Array.prototype.binarySearch(item, sortalgo)

Sorting the array using specific sort algorithms like : bubbleSort

Array.prototype.bubbleSort()

list of implemented sort algorithms

  • bubbleSort
  • insertionSort
  • selectionSort
  • mergeSort
  • quickSort
  • heapSort
  • countingSort # ⚠ Only works with arrays of numbers
  • shellSort
  • bucketSor
  • radixSort # ⚠ Only works with arrays of numbers

There is more to discover here

Matrix

import { Matrix } from "handyscript";

// Example usage
const matrix1 = new Matrix([
  [1, 2, 3],
  [4, 5, 6],
]);
const matrix2 = new Matrix([
  [1, 2],
  [3, 4],
  [5, 6],
]);

const matrixAdd = Matrix.add(matrix1, matrix2);
console.log("Matrix 1 + Matrix 2:");
matrixAdd.log();

const matrixMulti = Matrix.multiply(matrix1, matrix2);
console.log("Matrix 1 * Matrix 2:");
matrixMulti.log();

There is more to discover ✨

Math

// import the hole package:
import "handyscript";
// or import the target lib/module
import "handyscript/lib/math";

Math.clamp(value, min = 1, max)
console.log(Math.randomInt(1, 10)); // 7

Returns a value that is clamped between min and max.

There is more to discover ✨

String

// import the hole package:
import "handyscript";
// or import the target lib/module
import "handyscript/lib/string";

String.prototype.toCapitalCase(); // "Hello World" // capitalizes the first letter of every word in a string.
String.prototype.toCamelCase();// "helloWorld": // capitalizes the first letter of every word starting with the second word in a string and removes all the spaces.
String.prototype.reverse(); // reverse a string and string
String.prototype.indexesOf(target, startPosition? = 0); // Returns the positions of the all occurrence of a substring.
String.prototype.escape(isForAttribute? = false): string; // escape a string from all white spaces and all control characters (characters with a code point < U+0020).

Extends the builtin String module for more string manipulation

There is more to discover ✨

Number

// import the hole package:
import "handyscript";
// or import the target lib/module
import "handyscript/lib/number";

Number.prototype.toHuman() // Returns a string representation of a number in human readable format. like 1K, 1M, 1B, 1T, etc.
Number.prototype.toReadable(separator? = "-") // Returns a string representation of a number readable format. like 10-000, 1-000-000, 1-000-000-000, etc.

Extends the prebuilt Number module for more number manipulation

There is more to discover ✨

JSON manipulation

var data = {
    name: 'John Doe',
    age: 30,
    email: '[email protected]',
    address: {
        city: 'New York',
        street: '123 Main St'
    }
};

const schema = {
    name: { type: String, required: true },
    age: { type: Number },
    email: { type: String, required: true },
    address: {
        type: Object,
        properties: {
            city: { type: String },
            street: { type: String }
        }
    }
};

JSON.validateSchema(data, schema); // True

There is more to discover Here