@ribbon-studios/js-utils
v1.1.1
Published
Collection of generic javascript utilities curated by the Rainbow Cafe~
Downloads
5
Readme
JS Utils 🔧
Collection of generic javascript utilities curated by the Rainbow Cafe~
Promises
delay
Creates a delayed promise for the given amount of seconds and given promises. This can be useful for allowing spinners / loading skeletons to exist for a bit rather then quickly popping in and out.
import { delay } from '@ribbon-studios/js-utils';
const promise = delay(); // Returns a promise with the preset delay
const promise = delay(1000); // Returns a promise with the given delay
const promise = delay(Promise.resolve('hello')); // Returns the original promise with the preset delay
const promise = delay(Promise.resolve('hello'), 1000); // Returns the original promise with the given delay
delay.fallback
This overrides the default delay value
import { delay } from '@ribbon-studios/js-utils';
const promise = delay(); // Returns a promise with a delay of 500ms
delay.fallback(100);
const promise = delay(); // Returns a promise with a delay of 100ms
assert
On its own assert isn't overly useful just because of how type assertion works.
import { assert } from '@ribbon-studios/js-utils';
export async function example() {
const promise: Promise<string | undefined> = Promise.resolve('hello');
// Run an assertion on the promises response
const assertedPromise: Promise<string | undefined> = assert(promise, (value) => typeof value !== 'undefined');
// Unfortunately our response is still considered undefined because we can't forward the assertion
}
assert.defined
Ensures the promise result is defined.
import { assert } from '@ribbon-studios/js-utils';
export async function example() {
const promise: Promise<string | undefined> = Promise.resolve('hello');
// Run an assertion on the promises response
const assertedPromise: Promise<string> = assert.defined(promise);
// Our promise is no longer considered undefined!
// You can also pass a message to throw!
const assertedPromise: Promise<string> = assert.defined(promise, 'Expected our thing to exist!');
}
never
Creates a promise that never resolves. Primary use-case for this is testing loading states.
In the event a promise is passed it will log a warning in the console as a reminder not to leave it in.
import { never } from '@ribbon-studios/js-utils';
const promise = never(); // Returns a promise that never resolves
const promise = never(Promise.resolve('hello')); // Returns a promise that never resolves