krustykrab
v1.1.0
Published
Rust utils for JavaScript projects
Downloads
232,531
Readme
krustykrab
Implementation of some helpers of Rust
stdlib on JavaScript/TypeScript
Implemented helpers
Option
import { Some, None } from "krustykrab";
const someOption = Some("foo");
const noneOption = None();
Result
import { Ok, Err } from "krustykrab";
const okResult = Ok("foo");
const errResult = Err("bar");
Additional helpers
unwrap
Panics if the value is null
or undefined
or returns it otherwise
import { unwrap } from "krustykrab";
const fooOrUndefined = document.getElementById('foo'); // html element or `undefined`
const foo = unwrap(fooOrUndefined); // exactly html element
unwrapOr
Returns the value if it's not null
or undefined
, or returns the default value
import { unwrapOr } from "krustykrab";
const foo: Partial<Record<string, string>> = { bar: 'baz' };
unwrapOr(foo.bar, 'qux'); // returns 'baz'
unwrapOr(foo.bat, 'qux'); // returns 'qux'
unwrapOrElse
Returns the value if it's not null
or undefined
, or computes it
import { unwrapOrElse } from "krustykrab";
const foo: Partial<Record<string, string>> = { bar: 'baz' };
unwrapOrElse(foo.bar, () => 'qux'); // returns 'baz'
unwrapOrElse(foo.bat, () => 'qux'); // returns 'qux'
getResult
Converts Promise
to Result
import { getResult } from "krustykrab";
const successResult = await getResult(Promise.resolve('foo'));
successResult.unwrap(); // returns 'foo'
const errorResult = await getResult(Promise.reject('bar'));
errorResult.unwrapErr(); // returns 'bar'
toOption
Convert a nullable variable to Option
import { toOption } from "krustykrab";
const option = toOption('foo');
option.isNone(); // returns `false`;
option.unwrap(); // returns `'foo'`;
toOption(null).isNone(); // returns `true`
toOption(undefined).isNone(); // returns `true`
tryCatch
Wrap the result of a function call with Result
import { tryCatch } from "krustykrab";
const successResult = tryCatch(() => JSON.parse('{"foo": "bar"}'));
successResult.unwrap(); // returns `{ foo: "bar" }`
const errorResult = tryCatch(() => JSON.parse("{invalid json}"));
errorResult.isErr(); // returns `true`