From b252d836e0f8c28207cdd9d60f0b382ede6d74e4 Mon Sep 17 00:00:00 2001 From: Kamil Kisiela Date: Wed, 26 Oct 2016 13:43:10 +0200 Subject: [PATCH] Add subscribeToMore function (#5) --- CHANGELOG.md | 1 + src/RxObservableQuery.ts | 13 ++++--------- tests/RxObservableQuery.ts | 9 +++++++++ 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7b5e80..81c8803 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ### vNEXT +- Add `subscribeToMore` function [PR #5](https://github.com/kamilkisiela/apollo-client-rxjs/pull/5) - Added support for ApolloClient `v0.5.0` [PR #4](https://github.com/kamilkisiela/apollo-client-rxjs/pull/4) - BREAKING CHANGE No longer support ApolloClient `v0.4.X` [PR #4](https://github.com/kamilkisiela/apollo-client-rxjs/pull/4) diff --git a/src/RxObservableQuery.ts b/src/RxObservableQuery.ts index 9edc9b7..5ac56d6 100644 --- a/src/RxObservableQuery.ts +++ b/src/RxObservableQuery.ts @@ -47,10 +47,13 @@ export class RxObservableQuery extends Observable { } public updateQuery(mapFn: any): void { - this.checkMethod('updateQuery'); this.getObservableQuery().updateQuery(mapFn); } + public subscribeToMore(options: any): () => void { + return this.getObservableQuery().subscribeToMore(options); + } + // where magic happens public _subscribe(subscriber: Subscriber) { @@ -73,12 +76,4 @@ export class RxObservableQuery extends Observable { return this.apollo as ObservableQuery; } - - private checkMethod(method: string): void { - const obsQuery = this.getObservableQuery(); - - if (typeof obsQuery[method] === 'undefined') { - throw new Error(`Method '${method}' is not available in your version of ApolloClient`); - } - } } diff --git a/tests/RxObservableQuery.ts b/tests/RxObservableQuery.ts index 4e8dc98..f98299c 100644 --- a/tests/RxObservableQuery.ts +++ b/tests/RxObservableQuery.ts @@ -100,6 +100,15 @@ describe('RxObservableQuery', () => { assert.equal(promise, 'promise'); }); + it('should be able to subscribeToMore', () => { + const stubbed = stub(obsQuery, 'subscribeToMore').returns('fn'); + const options = {}; + const fn = rxObsQuery.subscribeToMore(options); + + assert.deepEqual(stubbed.args[0], [options]); + assert.equal(fn, 'fn'); + }); + it('should be able to updateQuery', () => { const stubbed = stub(obsQuery, 'updateQuery').returns('void'); const mapFn = () => {