Skip to content

birdofpreyru/js-utils

Repository files navigation

JS Utils

Latest NPM Release NPM Downloads CircleCI GitHub repo stars Dr. Pogodin Studio

The aim for this repo/package is to move in from the React Utils the pieces which are not React-specific, thus are also useful cross non-React projects, and thus having them in a dedicated package will faciliate their re-use in generic JavaScript (and TypeScript) projects.

At least for the first time, all stuff moved in here will still be exposed from React Utils the same way as before, and the documentation for these pieces will be still kept at https://dr.pogodin.studio/docs/react-utils/index.html. Maybe later, time permitting, this will be documented as a stand-alone library, but prior to that it will be maintained and used as a stand-alone lib, but not very well documented as such.

Yeah, the source code will be written in TypeScript, and for the library version released to NPM it will be also compiled into plain JavaScript. Consumers of that NPM package thus will have access to both TS (/src folder) and JS (/build folder) version of the library.

Sponsor

Content

The library currently exports (links below lead to React Utils docs, but the same stuff can be imported from this @dr.pogodin/js-utils, and used in the same way):

Constants

  • SEC_MS — One second expressed in milliseconds.
  • MIN_MS — One minute expressed in milliseconds.
  • HOUR_MS — One hour expressed in milliseconds.
  • DAY_MS — One day expressed in milliseconds.
  • YEAR_MS — One year expressed in milliseconds.

Functions

  • timer() — Creates a Barrier which resolves after the specified timeout.
  • withRetries() — Attempts a given action multiple times until its succeeds.

Classes

  • Barrier — A Promise with resolve() and reject() exposed as instance methods.
  • Emitter — Simple listeneable data emitter.
  • Semaphore — Synchronization primitive.
  • Timer — The core implementation of timer() functionality, allowing to create further customized timer objects. To be documented.