git.iko.soy/rowtype-yoga/psfp
on 093e592 help sign in
43 lines 2.3 kB history raw
1// Generated by purs version 0.13.6
2"use strict";
3var $foreign = require("./foreign.js");
4var Control_Alt = require("../Control.Alt/index.js");
5var Control_Bind = require("../Control.Bind/index.js");
6var Control_Category = require("../Control.Category/index.js");
7var Control_Monad_Except = require("../Control.Monad.Except/index.js");
8var Control_Monad_Except_Trans = require("../Control.Monad.Except.Trans/index.js");
9var Data_Either = require("../Data.Either/index.js");
10var Data_Functor = require("../Data.Functor/index.js");
11var Data_Identity = require("../Data.Identity/index.js");
12var Data_List_Types = require("../Data.List.Types/index.js");
13var Data_Monoid = require("../Data.Monoid/index.js");
14var Effect = require("../Effect/index.js");
15var Effect_Aff = require("../Effect.Aff/index.js");
16var Effect_Class = require("../Effect.Class/index.js");
17var Effect_Exception = require("../Effect.Exception/index.js");
18var Foreign = require("../Foreign/index.js");
19var toAff$prime = function (customCoerce) {
20 return function (p) {
21 return Effect_Aff.makeAff(function (cb) {
22 return Data_Functor.voidRight(Effect.functorEffect)(Data_Monoid.mempty(Effect_Aff.monoidCanceler))($foreign.thenImpl(p)(function ($117) {
23 return cb(Data_Either.Left.create(customCoerce($117)))();
24 })(function ($118) {
25 return cb(Data_Either.Right.create($118))();
26 }));
27 });
28 };
29};
30var coerce = function (fn) {
31 return Data_Either.either(function (v) {
32 return Effect_Exception.error("Promise failed, couldn't extract JS Error or String");
33 })(Control_Category.identity(Control_Category.categoryFn))(Control_Monad_Except.runExcept(Control_Alt.alt(Control_Monad_Except_Trans.altExceptT(Data_List_Types.semigroupNonEmptyList)(Data_Identity.monadIdentity))(Foreign.unsafeReadTagged("Error")(fn))(Data_Functor.map(Control_Monad_Except_Trans.functorExceptT(Data_Identity.functorIdentity))(Effect_Exception.error)(Foreign.readString(fn)))));
34};
35var toAff = toAff$prime(coerce);
36var toAffE = function (f) {
37 return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(f))(toAff);
38};
39module.exports = {
40 toAff: toAff,
41 "toAff'": toAff$prime,
42 toAffE: toAffE
43};