UNPKG

ok-computer

Version:

'Functions all the way down' data validation for JavaScript and TypeScript.

63 lines (61 loc) 1.51 kB
import { isPlainObject } from "./chunk-AEOWSTVM.mjs"; // src/parser.ts throw new Error("WIP"); var trim = (value) => value.trim(); var trimEnd = (value) => value.trimEnd(); var trimStart = (value) => value.trimStart(); var uppercase = (value) => value.toUpperCase(); var lowercase = (value) => value.toLowerCase(); var padStart = (padding) => (value) => value.padStart(padding); var padEnd = (padding) => (value) => value.padEnd(padding); var split = (...args) => (value) => value.split(...args); var nullWhen = (nullValue) => (value) => value === nullValue ? null : value; var undefinedWhen = (nullValue) => (value) => value === nullValue ? void 0 : value; var object = (parsers, { keepUnknown = false } = {}) => (value) => { if (!isPlainObject(value)) { return value; } const result = Object.fromEntries( Object.entries(parsers).map(([prop, parser]) => { const val = value == null ? void 0 : value[prop]; try { return [prop, parser(val)]; } catch (ex) { return [prop, val]; } }, []) ); if (keepUnknown) { return { ...value, ...result }; } return result; }; var array = (parser) => (value) => { if (!Array.isArray(value)) { return value; } const result = value.map((val) => { try { return parser(val); } catch (ex) { return val; } }); return result; }; export { array, lowercase, nullWhen, object, padEnd, padStart, split, trim, trimEnd, trimStart, undefinedWhen, uppercase };