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.
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):
ObjectKey
— string | number | symbol —
The most generic valid type of an object key in TypeScript.assertEmptyObject()
— Asserts given object is empty,
both compile- and run-time.Barrier — A Promise with resolve() and reject() exposed as instance methods.
Cached — A cache of (a)synchronously retrieved items with timestamp-based expiration.
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.
Repository of this library also hosts some documents, to be referenced from other projects, as needed: