UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 787 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.fromNullable=exports.fromResult=exports.none=exports.some=void 0;const some=e=>({type:"option-some",value:e,map:o=>(0,exports.some)(o(e)),chain:o=>o(e),do:o=>(o(e),(0,exports.some)(e)),runAsync:o=>o(e),get:()=>e,isSome:!0,isNone:!1});function none(){return{type:"option-none",map:()=>none(),chain:()=>none(),do:()=>none(),runAsync:()=>Promise.reject(new Error("Cannot run None")),get:e=>void 0!==e?e:void 0,isSome:!1,isNone:!0}}exports.some=some,exports.none=none;const fromResult=e=>{switch(e.type){case"result-success":return(0,exports.some)(e.value);case"result-failure":return none()}};exports.fromResult=fromResult;const fromNullable=e=>null==e?none():(0,exports.some)(e);exports.fromNullable=fromNullable;