75 lines
2.4 KiB
TypeScript
75 lines
2.4 KiB
TypeScript
import { bench, describe } from 'vitest';
|
|
import { STANDARD } from '../helpers/bench-options.js';
|
|
import {
|
|
ok,
|
|
err,
|
|
ntOk,
|
|
ntErr,
|
|
TsOk,
|
|
TsErr,
|
|
OxOk,
|
|
OxErr,
|
|
E,
|
|
TmResult,
|
|
} from '../helpers/imports.js';
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// isOk — on Ok variant
|
|
// ---------------------------------------------------------------------------
|
|
|
|
describe('Result.isOk — on Ok', () => {
|
|
const nm = ok(42);
|
|
const nt = ntOk(42);
|
|
const ts = TsOk(42);
|
|
const ox = OxOk(42);
|
|
const fp = E.right(42);
|
|
const tm = TmResult.ok<number, string>(42);
|
|
|
|
bench('native-monad', () => { nm.isOk(); }, STANDARD);
|
|
bench('neverthrow', () => { nt.isOk(); }, STANDARD);
|
|
bench('ts-results-es', () => { ts.isOk(); }, STANDARD);
|
|
bench('oxide.ts', () => { ox.isOk(); }, STANDARD);
|
|
bench('fp-ts', () => { E.isRight(fp); }, STANDARD);
|
|
bench('true-myth', () => { tm.isOk; }, STANDARD);
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// isOk — on Err variant
|
|
// ---------------------------------------------------------------------------
|
|
|
|
describe('Result.isOk — on Err', () => {
|
|
const nm = err('fail');
|
|
const nt = ntErr('fail');
|
|
const ts = TsErr('fail');
|
|
const ox = OxErr('fail');
|
|
const fp = E.left('fail');
|
|
const tm = TmResult.err<number, string>('fail');
|
|
|
|
bench('native-monad', () => { nm.isOk(); }, STANDARD);
|
|
bench('neverthrow', () => { nt.isOk(); }, STANDARD);
|
|
bench('ts-results-es', () => { ts.isOk(); }, STANDARD);
|
|
bench('oxide.ts', () => { ox.isOk(); }, STANDARD);
|
|
bench('fp-ts', () => { E.isRight(fp); }, STANDARD);
|
|
bench('true-myth', () => { tm.isOk; }, STANDARD);
|
|
});
|
|
|
|
// ---------------------------------------------------------------------------
|
|
// isErr — on Err variant
|
|
// ---------------------------------------------------------------------------
|
|
|
|
describe('Result.isErr — on Err', () => {
|
|
const nm = err('fail');
|
|
const nt = ntErr('fail');
|
|
const ts = TsErr('fail');
|
|
const ox = OxErr('fail');
|
|
const fp = E.left('fail');
|
|
const tm = TmResult.err<number, string>('fail');
|
|
|
|
bench('native-monad', () => { nm.isErr(); }, STANDARD);
|
|
bench('neverthrow', () => { nt.isErr(); }, STANDARD);
|
|
bench('ts-results-es', () => { ts.isErr(); }, STANDARD);
|
|
bench('oxide.ts', () => { ox.isErr(); }, STANDARD);
|
|
bench('fp-ts', () => { E.isLeft(fp); }, STANDARD);
|
|
bench('true-myth', () => { tm.isErr; }, STANDARD);
|
|
});
|