UNPKG

@dawans/promptshield

Version:

Secure your LLM stack with enterprise-grade RulePacks for AI safety scanning

103 lines (102 loc) 2.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.unwrapOr = exports.unwrap = exports.match = exports.err = exports.ok = exports.Err = exports.Ok = void 0; /** * Represents a successful result */ class Ok { constructor(value) { this.value = value; this.kind = 'ok'; } isOk() { return true; } isErr() { return false; } map(fn) { return new Ok(fn(this.value)); } flatMap(fn) { return fn(this.value); } // eslint-disable-next-line @typescript-eslint/no-unused-vars mapErr(_fn) { return this; } } exports.Ok = Ok; /** * Represents a failed result */ class Err { constructor(error) { this.error = error; this.kind = 'err'; } isOk() { return false; } isErr() { return true; } // eslint-disable-next-line @typescript-eslint/no-unused-vars map(_fn) { return this; } // eslint-disable-next-line @typescript-eslint/no-unused-vars flatMap(_fn) { return this; } mapErr(fn) { return new Err(fn(this.error)); } } exports.Err = Err; /** * Creates a successful result */ const ok = (value) => new Ok(value); exports.ok = ok; /** * Creates a failed result */ const err = (error) => new Err(error); exports.err = err; /** * Pattern matching for Result types */ const match = (result, handlers) => { if (result.isOk()) { return handlers.ok(result.value); } else { return handlers.err(result.error); } }; exports.match = match; /** * Unwraps a Result, throwing an error if it's an Err */ const unwrap = (result) => { if (result.isOk()) { return result.value; } else { throw result.error; } }; exports.unwrap = unwrap; /** * Unwraps a Result, returning a default value if it's an Err */ const unwrapOr = (result, defaultValue) => { if (result.isOk()) { return result.value; } else { return defaultValue; } }; exports.unwrapOr = unwrapOr;