diff --git a/package.json b/package.json
index 2de897cd..df63918f 100644
--- a/package.json
+++ b/package.json
@@ -80,9 +80,10 @@
"rollup-plugin-size-snapshot": "^0.3.0",
"rollup-plugin-uglify": "^3.0.0",
"rx": "^4.1.0",
- "rxjs": "^5.0.0",
+ "rxjs": "^6.0.0",
"shelljs": "^0.6.0",
"sinon": "^1.17.1",
+ "symbol-observable": "^1.2.0",
"webpack": "^2.4.1",
"xstream": "^5.0.5"
},
diff --git a/scripts/jest.setup.js b/scripts/jest.setup.js
index 43270604..edf30b0e 100644
--- a/scripts/jest.setup.js
+++ b/scripts/jest.setup.js
@@ -1,6 +1,7 @@
/* eslint-disable */
jasmine.DEFAULT_TIMEOUT_INTERVAL = 20000
+import 'symbol-observable'
import Enzyme from 'enzyme'
import Adapter from 'enzyme-adapter-react-16'
diff --git a/src/packages/recompose/__tests__/componentFromStream-test.js b/src/packages/recompose/__tests__/componentFromStream-test.js
index a85767f5..b502fa43 100644
--- a/src/packages/recompose/__tests__/componentFromStream-test.js
+++ b/src/packages/recompose/__tests__/componentFromStream-test.js
@@ -1,7 +1,15 @@
import React from 'react'
import { mount } from 'enzyme'
import { Observable, Subject } from 'rxjs'
-import sinon from 'sinon'
+import {
+ first,
+ last,
+ startWith,
+ map,
+ mapTo,
+ combineLatest,
+ tap,
+} from 'rxjs/operators'
import rxjsConfig from '../rxjsObservableConfig'
import { componentFromStreamWithConfig } from '../componentFromStream'
@@ -9,10 +17,12 @@ const componentFromStream = componentFromStreamWithConfig(rxjsConfig)
test('componentFromStream creates a component from a prop stream transformation', () => {
const Double = componentFromStream(props$ =>
- props$.map(({ n }) =>
-
- {n * 2}
-
+ props$.pipe(
+ map(({ n }) =>
+
+ {n * 2}
+
+ )
)
)
const wrapper = mount()
@@ -42,7 +52,7 @@ test('componentFromStream unsubscribes from stream before unmounting', () => {
test('componentFromStream renders nothing until the stream emits a value', () => {
const vdom$ = new Subject()
- const Div = componentFromStream(() => vdom$.mapTo())
+ const Div = componentFromStream(() => vdom$.pipe(mapTo()))
const wrapper = mount()
expect(wrapper.find('div').length).toBe(0)
vdom$.next()
@@ -54,7 +64,7 @@ test('handler multiple observers of props stream', () => {
const Other = () =>
const Div = componentFromStream(props$ =>
// Adds three observers to props stream
- props$.combineLatest(props$, props$, props1 => )
+ props$.pipe(combineLatest(props$, props$, props1 => ))
)
const wrapper = mount()
@@ -71,18 +81,24 @@ test('complete props stream before unmounting', () => {
let counter = 0
const Div = componentFromStream(props$ => {
- const first$ = props$.first().do(() => {
- counter += 1
- })
+ const first$ = props$.pipe(
+ first(),
+ tap(() => {
+ counter += 1
+ })
+ )
- const last$ = props$
- .last()
- .do(() => {
+ const last$ = props$.pipe(
+ last(),
+ tap(() => {
counter -= 1
- })
- .startWith(null)
+ }),
+ startWith(null)
+ )
- return props$.combineLatest(first$, last$, props1 => )
+ return props$.pipe(
+ combineLatest(first$, last$, props1 => )
+ )
})
const wrapper = mount()
@@ -93,20 +109,3 @@ test('complete props stream before unmounting', () => {
wrapper.unmount()
expect(counter).toBe(0)
})
-
-test('completed props stream should throw an exception', () => {
- const Div = componentFromStream(props$ => {
- const first$ = props$.filter(() => false).first().startWith(null)
-
- return props$.combineLatest(first$, props1 => )
- })
-
- const wrapper = mount()
-
- expect(wrapper.find('div').length).toBe(1)
-
- const error = sinon.stub(console, 'error')
-
- expect(() => wrapper.unmount()).toThrowError(/no elements in sequence/)
- expect(error.called).toBe(true)
-})
diff --git a/src/packages/recompose/__tests__/componentFromStreamWithConfig-test.js b/src/packages/recompose/__tests__/componentFromStreamWithConfig-test.js
index b8b9b130..0e01e4f3 100644
--- a/src/packages/recompose/__tests__/componentFromStreamWithConfig-test.js
+++ b/src/packages/recompose/__tests__/componentFromStreamWithConfig-test.js
@@ -1,6 +1,7 @@
import React from 'react'
import { mount } from 'enzyme'
import { Observable } from 'rxjs'
+import { map } from 'rxjs/operators'
import { Stream as MostStream } from 'most'
import mostConfig from '../mostObservableConfig'
import rxjsConfig from '../rxjsObservableConfig'
@@ -20,10 +21,12 @@ test('componentFromStreamWithConfig creates a stream with the correct stream typ
const RXJSComponent = componentFromStreamWithConfig(rxjsConfig)(props$ => {
expect(props$ instanceof Observable).toBe(true)
- return props$.map(v =>
-
- {String(v)}
-
+ return props$.pipe(
+ map(v =>
+
+ {String(v)}
+
+ )
)
})
diff --git a/src/packages/recompose/__tests__/mapPropsStreamWithConfig-test.js b/src/packages/recompose/__tests__/mapPropsStreamWithConfig-test.js
index e892f3f5..96bf3c11 100644
--- a/src/packages/recompose/__tests__/mapPropsStreamWithConfig-test.js
+++ b/src/packages/recompose/__tests__/mapPropsStreamWithConfig-test.js
@@ -2,6 +2,7 @@ import React from 'react'
import { mount } from 'enzyme'
import { Stream as MostStream } from 'most'
import { Observable } from 'rxjs'
+import { map } from 'rxjs/operators'
import { mapPropsStreamWithConfig } from '../'
import rxConfig from '../rxjsObservableConfig'
import mostConfig from '../mostObservableConfig'
@@ -9,7 +10,7 @@ import mostConfig from '../mostObservableConfig'
// Most of mapPropsStreamConfig's functionality is covered by componentFromStream
test('mapPropsStreamWithConfig creates a higher-order component from a stream and a observable config', () => {
const Double = mapPropsStreamWithConfig(rxConfig)(props$ =>
- props$.map(({ n }) => ({ children: n * 2 }))
+ props$.pipe(map(({ n }) => ({ children: n * 2 })))
)('div')
const wrapper = mount()
const div = wrapper.find('div')
@@ -28,7 +29,7 @@ test('mapPropsStreamWithConfig creates a stream with the correct config', () =>
const RXJSComponent = mapPropsStreamWithConfig(rxConfig)(props$ => {
expect(props$ instanceof Observable).toBe(true)
- return props$.map(v => v)
+ return props$.pipe(map(v => v))
})('div')
mount()
diff --git a/src/packages/recompose/__tests__/setObservableConfig-test.js b/src/packages/recompose/__tests__/setObservableConfig-test.js
index bd47133d..0d5b5a64 100644
--- a/src/packages/recompose/__tests__/setObservableConfig-test.js
+++ b/src/packages/recompose/__tests__/setObservableConfig-test.js
@@ -1,5 +1,6 @@
import React from 'react'
import { mount } from 'enzyme'
+import { map } from 'rxjs/operators'
import rxjs5Config from '../rxjsObservableConfig'
import rxjs4Config from '../rxjs4ObservableConfig'
import mostConfig from '../mostObservableConfig'
@@ -22,10 +23,12 @@ const testTransform = transform => {
test('works with RxJS 5', () => {
setObservableConfig(rxjs5Config)
testTransform(props$ =>
- props$.map(({ n }) =>
-
- {n * 2}
-
+ props$.pipe(
+ map(({ n }) =>
+
+ {n * 2}
+
+ )
)
)
})
diff --git a/src/packages/recompose/rxjsObservableConfig.js b/src/packages/recompose/rxjsObservableConfig.js
index f4f55b65..98c07fa1 100644
--- a/src/packages/recompose/rxjsObservableConfig.js
+++ b/src/packages/recompose/rxjsObservableConfig.js
@@ -1,7 +1,7 @@
-import Rx from 'rxjs'
+import { from } from 'rxjs'
const config = {
- fromESObservable: Rx.Observable.from,
+ fromESObservable: from,
toESObservable: stream => stream,
}
diff --git a/yarn.lock b/yarn.lock
index 88403c55..ccbe0a80 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -5580,18 +5580,18 @@ rx@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
-rxjs@^5.0.0:
- version "5.5.9"
- resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.9.tgz#12a0487794b00f5eb370fec2751bd973a89886fb"
- dependencies:
- symbol-observable "1.0.1"
-
rxjs@^5.0.0-beta.11:
version "5.4.1"
resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.1.tgz#b62f757f279445d265a18a58fb0a70dc90e91626"
dependencies:
symbol-observable "^1.0.1"
+rxjs@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.0.0.tgz#d647e029b5854617f994c82fe57a4c6747b352da"
+ dependencies:
+ tslib "^1.9.0"
+
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.1"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
@@ -6026,14 +6026,14 @@ swap-case@^1.1.0:
lower-case "^1.1.1"
upper-case "^1.1.1"
-symbol-observable@1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.1.tgz#8340fc4702c3122df5d22288f88283f513d3fdd4"
-
symbol-observable@1.0.4, symbol-observable@^1.0.1, symbol-observable@^1.0.2:
version "1.0.4"
resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d"
+symbol-observable@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804"
+
symbol-tree@^3.2.2:
version "3.2.2"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.2.tgz#ae27db38f660a7ae2e1c3b7d1bc290819b8519e6"
@@ -6190,6 +6190,10 @@ tryit@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
+tslib@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+
tty-browserify@0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"