Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-powertools

Package Overview
Dependencies
Maintainers
1
Versions
62
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-powertools

Powerful assistive functions for Node and Browser environments.

  • 0.0.5
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
909
increased by313.18%
Maintainers
1
Weekly downloads
 
Created
Source




Site | NPM Module | GitHub Repo

Node Powertools is an NPM module for backend and frontend developers that exposes powerful utilities and tools.

Install

Install with npm:

npm install node-powertools

Features

  • Useful randomization tools
  • Helpful polling utilities

Example Setup

After installing via npm, simply require the library and begin enjoying the powertools 🧰.

// In your functions/index.js file
const powertools = require('node-powertools');

Usage

powertools.random(min, max, options)

Generate a random number between two numbers min and max. You can use options to supply a sign or randomize the sign as well. If an array is supplied, a random element from the array is returned.

powertools.random(1, 100); // Output: 69
powertools.random(1, 100, {sign: -1}); // Output: -69
powertools.random(1, 100, {sign: 1}); // Output: 69
powertools.random(1, 100, {sign: 0}); // Output: -69 (sign: 0 --> randomizes sign)
powertools.random(['Apple', 'Orange', 'Pear']); // Output: Orange (random element)

powertools.arrayify(input)

Transform the input into an array if it is not already.

powertools.arrayify(1); // Output: [1]
powertools.arrayify([1]); // Output: [1]

powertools.wait(time)

Asynchronously wait for the specified time in milliseconds.

await powertools.wait(1000); // waits for 1000 ms (1 second)

powertools.poll(fn, options)

Asynchronously wait for the specified fn to return true. You can use options to supply a polling interval and timeout in milliseconds. The promise rejects if the timeout is reached.

// Call this function every 100 ms until it returns true or 30000 ms passes
await powertools.poll(function () {
  return something === somethingElse;
}, {interval: 100, timeout: 30000});

powertools.escape(str)

Add the escape character \ before any character in str that needs to be escaped for a RegExp.

powertools.escape('*'); // Output: \*
powertools.escape('/'); // Output: \/
powertools.escape('\\'); // Output: \\
powertools.escape('.$^'); // Output: \.\$\^

powertools.regexify(str)

Revive a str into a RegExp. Supports flags. Depending on how you want special characters to be treated, you can use powertools.escape(str) prior to using powertools.regexify(str).

powertools.regexify('/Apple/'); // Output: RegExp /Apple/
powertools.regexify('/Apple/i'); // Output: RegExp /Apple/i
powertools.regexify('Apple'); // Output: Throws error (needs to start and end with /)
powertools.regexify('/Apple/x'); // Output: Throws error (x is not a valid flag)

powertools.regexify('/Ap.le/'); // Output: RegExp /Ap.le/
powertools.regexify(`/${powertools.escape('Ap.le')}/`); // Output: RegExp /Ap\.le/

powertools.timestamp(date, options)

Convert a date to a timestamp in 3 formats: an ISO string, a UNIX number, or a plain-ol' JS Date (as specified in options). The first argument date can be a JS Date, a UNIX timestamp number, or a string that will be parsed by the new Date() method.

powertools.timestamp(new Date('2999/12/31'), {output: 'string'}); // Output: "2999-12-31T08:00:00.000Z"
powertools.timestamp(new Date('2999/12/31'), {output: 'unix'}); // Output: 32503622400
powertools.timestamp(new Date('2999/12/31'), {output: 'date'}); // Output: Tue Dec 31 2999 00:00:00 GMT-0800 (Pacific Standard Time)

powertools.timestamp(32503622400, {output: 'string'}); // Output: "2999-12-31T08:00:00.000Z"
powertools.timestamp(32503622400, {output: 'unix'}); // Output: 32503622400
powertools.timestamp(32503622400, {output: 'date'}); // Output: Tue Dec 31 2999 00:00:00 GMT-0800 (Pacific Standard Time)

Final Words

If you are still having difficulty, we would love for you to post a question to the Node Powertools issues page. It is much easier to answer questions that include your code and relevant files! So if you can provide them, we'd be extremely grateful (and more likely to help you find the answer!)

Projects Using this Library

Somiibo: A Social Media Bot with an open-source module library.
JekyllUp: A website devoted to sharing the best Jekyll themes.
Slapform: A backend processor for your HTML forms on static sites.
Proxifly: A backend processor for your HTML forms on static sites.
SoundGrail Music App: A resource for producers, musicians, and DJs.
Hammock Report: An API for exploring and listing backyard products.

Ask us to have your project listed! :)

Keywords

FAQs

Package last updated on 26 Jun 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc