Skip to content

Commit 8de42ed

Browse files
authored
Merge pull request #238 from ah45/update-promesa-dependency
Update Promesa dependency
2 parents 6dda7e7 + c66fc77 commit 8de42ed

File tree

4 files changed

+36
-25
lines changed

4 files changed

+36
-25
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog #
22

3+
## Version 2.3.6
4+
5+
Date: 2020-04-07
6+
7+
- Bump Promesa version from 1.9.0 to 5.1.0
8+
39
## Version 2.3.5
410

511
Date: 2020-02-21

project.clj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(defproject funcool/cats "2.3.5"
1+
(defproject funcool/cats "2.3.6"
22
:description "Category Theory abstractions for Clojure"
33
:url "https://github.com/funcool/cats"
44
:license {:name "BSD (2 Clause)"
@@ -9,7 +9,7 @@
99
[org.clojure/test.check "0.9.0" :scope "provided"]
1010
[org.clojure/core.match "0.3.0-alpha4" :scope "provided"]
1111
[manifold "0.1.6" :scope "provided"]
12-
[funcool/promesa "1.9.0" :scope "provided"]]
12+
[funcool/promesa "5.1.0" :scope "provided"]]
1313
:deploy-repositories {"releases" :clojars
1414
"snapshots" :clojars}
1515
:source-paths ["src"]

src/cats/labs/promise.cljc

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,34 @@
44
[cats.context :as mc]
55
[cats.protocols :as mp]
66
[promesa.core :as p]
7+
[promesa.impl :as pi]
78
[promesa.protocols :as pp])
89
#?(:clj
910
(:import java.util.concurrent.CompletableFuture)))
1011

1112
(declare context)
1213

13-
(extend-type #?(:cljs p/Promise :clj CompletableFuture)
14-
mp/Contextual
15-
(-get-context [_] context)
14+
#?(:cljs
15+
(defn extend-promise!
16+
[t]
17+
(extend-type t
18+
mp/Contextual
19+
(-get-context [_] context)
1620

17-
mp/Extract
18-
(-extract [it]
19-
(pp/-extract it)))
21+
mp/Extract
22+
(-extract [it]
23+
(pp/-extract it)))))
24+
25+
#?(:cljs (extend-promise! pi/*default-promise*))
26+
27+
#?(:clj
28+
(extend-type CompletableFuture
29+
mp/Contextual
30+
(-get-context [_] context)
31+
32+
mp/Extract
33+
(-extract [it]
34+
(pp/-extract it))))
2035

2136
(def ^:no-doc context
2237
(reify
@@ -29,7 +44,7 @@
2944
(-bimap [_ err succ mv]
3045
(-> mv
3146
(pp/-map succ)
32-
(pp/-catch err)))
47+
(pp/-thenErr err)))
3348

3449
mp/Monad
3550
(-mreturn [_ v]

test/cats/labs/promise_spec.cljc

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,21 @@
44
[cats.context :as ctx :include-macros true]
55
[cats.core :as m :include-macros true]
66
[cats.labs.promise :as pm]
7-
[promesa.core :as p])
7+
[promesa.core :as p]
8+
[promesa.impl :as pi]
9+
[promesa.exec :as pe])
810
:clj (:require [clojure.test :as t]
911
[cats.builtin :as b]
1012
[cats.context :as ctx]
1113
[cats.core :as m]
1214
[cats.labs.promise :as pm]
13-
[promesa.core :as p])))
15+
[promesa.core :as p]
16+
[promesa.exec :as pe])))
1417

1518

1619
(defn future-ok
1720
[sleep value]
18-
(p/promise (fn [resolve reject]
19-
(p/schedule sleep #(resolve value)))))
20-
21-
(defn future-fail
22-
[sleep value]
23-
(p/promise (fn [_ reject]
24-
(p/schedule sleep #(reject value)))))
25-
26-
27-
#?(:cljs
28-
(t/deftest extract-from-rejected-promise
29-
(let [p1 (p/rejected 42)]
30-
(t/is (p/rejected? p1))
31-
(t/is (= (p/extract p1) 42)))))
21+
(p/delay sleep value))
3222

3323
(t/deftest chaining-using-bind
3424
#?(:cljs

0 commit comments

Comments
 (0)