UNPKG

eff

Version:

An extensible effect monad based on the freer monad

42 lines (33 loc) 2.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.interpretReader = exports.get = void 0; var _daggy = _interopRequireDefault(require("daggy")); var _eff = require("./eff.js"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Reader = _daggy.default.taggedSum("Reader", { get: [] }); var get = function get() { return (0, _eff.send)(Reader.get); }; exports.get = get; var interpretReader = function interpretReader(i) { return (0, _eff.interpreter)({ predicate: function predicate(x) { return Reader.is(x); }, handler: function handler(readerEffect) { return readerEffect.cata({ get: function get() { return function (continuation) { return continuation(i); }; } }); } }); }; exports.interpretReader = interpretReader; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NvdXJjZXMvcmVhZGVyLmpzIl0sIm5hbWVzIjpbIlJlYWRlciIsImRhZ2d5IiwidGFnZ2VkU3VtIiwiZ2V0IiwiaW50ZXJwcmV0UmVhZGVyIiwiaSIsInByZWRpY2F0ZSIsIngiLCJpcyIsImhhbmRsZXIiLCJyZWFkZXJFZmZlY3QiLCJjYXRhIiwiY29udGludWF0aW9uIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBRUE7O0FBRUE7Ozs7QUFFQSxJQUFNQSxNQUFNLEdBQUdDLGVBQU1DLFNBQU4sQ0FBZ0IsUUFBaEIsRUFBMEI7QUFDeENDLEVBQUFBLEdBQUcsRUFBRTtBQURtQyxDQUExQixDQUFmOztBQUlPLElBQU1BLEdBQUcsR0FBRyxTQUFOQSxHQUFNO0FBQUEsU0FBTSxlQUFLSCxNQUFNLENBQUNHLEdBQVosQ0FBTjtBQUFBLENBQVo7Ozs7QUFFQSxJQUFNQyxlQUFlLEdBQUcsU0FBbEJBLGVBQWtCLENBQUNDLENBQUQ7QUFBQSxTQUM5QixzQkFBWTtBQUNYQyxJQUFBQSxTQUFTLEVBQUUsbUJBQUFDLENBQUM7QUFBQSxhQUFJUCxNQUFNLENBQUNRLEVBQVAsQ0FBVUQsQ0FBVixDQUFKO0FBQUEsS0FERDtBQUVYRSxJQUFBQSxPQUFPLEVBQUUsaUJBQUFDLFlBQVk7QUFBQSxhQUNwQkEsWUFBWSxDQUFDQyxJQUFiLENBQWtCO0FBQ2pCUixRQUFBQSxHQUFHLEVBQUU7QUFBQSxpQkFBTSxVQUFBUyxZQUFZO0FBQUEsbUJBQUlBLFlBQVksQ0FBQ1AsQ0FBRCxDQUFoQjtBQUFBLFdBQWxCO0FBQUE7QUFEWSxPQUFsQixDQURvQjtBQUFBO0FBRlYsR0FBWixDQUQ4QjtBQUFBLENBQXhCIiwic291cmNlc0NvbnRlbnQiOlsiLyogQGZsb3cgKi9cblxuaW1wb3J0IGRhZ2d5IGZyb20gXCJkYWdneVwiO1xuXG5pbXBvcnQgeyBpbnRlcnByZXRlciwgc2VuZCB9IGZyb20gXCIuL2VmZi5qc1wiO1xuXG5jb25zdCBSZWFkZXIgPSBkYWdneS50YWdnZWRTdW0oXCJSZWFkZXJcIiwge1xuXHRnZXQ6IFtdLFxufSk7XG5cbmV4cG9ydCBjb25zdCBnZXQgPSAoKSA9PiBzZW5kKFJlYWRlci5nZXQpO1xuXG5leHBvcnQgY29uc3QgaW50ZXJwcmV0UmVhZGVyID0gKGk6IGFueSkgPT5cblx0aW50ZXJwcmV0ZXIoe1xuXHRcdHByZWRpY2F0ZTogeCA9PiBSZWFkZXIuaXMoeCksXG5cdFx0aGFuZGxlcjogcmVhZGVyRWZmZWN0ID0+XG5cdFx0XHRyZWFkZXJFZmZlY3QuY2F0YSh7XG5cdFx0XHRcdGdldDogKCkgPT4gY29udGludWF0aW9uID0+IGNvbnRpbnVhdGlvbihpKSxcblx0XHRcdH0pLFxuXHR9KTtcbiJdfQ==