From eb2d3e1b25896deca8a34842ee127330937ca6d8 Mon Sep 17 00:00:00 2001 From: Phil Kunz Date: Wed, 1 Nov 2017 14:59:28 +0100 Subject: [PATCH] now has working intake --- dist/index.d.ts | 4 +- dist/index.js | 6 ++- dist/smartrx.classes.observable.d.ts | 5 --- dist/smartrx.classes.observable.js | 9 ---- dist/smartrx.classes.observableintake.d.ts | 15 +++++++ dist/smartrx.classes.observableintake.js | 44 +++++++++++++++++++ dist/smartrx.classes.observablemap.d.ts | 4 +- dist/smartrx.classes.observablemap.js | 2 +- dist/smartrx.plugins.d.ts | 5 ++- dist/smartrx.plugins.js | 7 ++- package.json | 7 +-- test/test.observableintake.ts | 21 +++++++++ test/test.observablemap.ts | 6 +-- test/test.ts | 8 ---- ts/index.ts | 8 +++- ts/smartrx.classes.observable.ts | 8 ---- ts/smartrx.classes.observableintake.ts | 50 ++++++++++++++++++++++ ts/smartrx.classes.observablemap.ts | 3 +- ts/smartrx.plugins.ts | 7 ++- yarn.lock | 24 +++++++---- 20 files changed, 185 insertions(+), 58 deletions(-) delete mode 100644 dist/smartrx.classes.observable.d.ts delete mode 100644 dist/smartrx.classes.observable.js create mode 100644 dist/smartrx.classes.observableintake.d.ts create mode 100644 dist/smartrx.classes.observableintake.js create mode 100644 test/test.observableintake.ts delete mode 100644 test/test.ts delete mode 100644 ts/smartrx.classes.observable.ts create mode 100644 ts/smartrx.classes.observableintake.ts diff --git a/dist/index.d.ts b/dist/index.d.ts index 5fbf311..afdc17a 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -1,3 +1,5 @@ export declare let standardExport: string; export * from './smartrx.classes.observablemap'; -export * from './smartrx.classes.observable'; +export * from './smartrx.classes.observableintake'; +import * as rxjs from 'rxjs'; +export { rxjs }; diff --git a/dist/index.js b/dist/index.js index b57bddc..74a9e54 100644 --- a/dist/index.js +++ b/dist/index.js @@ -5,5 +5,7 @@ function __export(m) { Object.defineProperty(exports, "__esModule", { value: true }); exports.standardExport = 'Hi there! :) This is a exported string'; __export(require("./smartrx.classes.observablemap")); -__export(require("./smartrx.classes.observable")); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVXLFFBQUEsY0FBYyxHQUFHLHdDQUF3QyxDQUFBO0FBQ3BFLHFEQUErQztBQUMvQyxrREFBNEMifQ== \ No newline at end of file +__export(require("./smartrx.classes.observableintake")); +const rxjs = require("rxjs"); +exports.rxjs = rxjs; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVXLFFBQUEsY0FBYyxHQUFHLHdDQUF3QyxDQUFBO0FBQ3BFLHFEQUErQztBQUMvQyx3REFBa0Q7QUFFbEQsNkJBQTRCO0FBRzFCLG9CQUFJIn0= \ No newline at end of file diff --git a/dist/smartrx.classes.observable.d.ts b/dist/smartrx.classes.observable.d.ts deleted file mode 100644 index de6c76c..0000000 --- a/dist/smartrx.classes.observable.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Observable as rxjsObservable } from 'rxjs'; -export { rxjsObservable }; -export declare class Observable extends rxjsObservable { - static fromIntake(): void; -} diff --git a/dist/smartrx.classes.observable.js b/dist/smartrx.classes.observable.js deleted file mode 100644 index 8b1e448..0000000 --- a/dist/smartrx.classes.observable.js +++ /dev/null @@ -1,9 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -const rxjs_1 = require("rxjs"); -exports.rxjsObservable = rxjs_1.Observable; -class Observable extends rxjs_1.Observable { - static fromIntake() { } -} -exports.Observable = Observable; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRyeC5jbGFzc2VzLm9ic2VydmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHJ4LmNsYXNzZXMub2JzZXJ2YWJsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLCtCQUFtRDtBQUVqRCx5QkFGcUIsaUJBQWMsQ0FFckI7QUFHaEIsZ0JBQTJCLFNBQVEsaUJBQWlCO0lBQ2xELE1BQU0sQ0FBQyxVQUFVLEtBQUssQ0FBQztDQUN4QjtBQUZELGdDQUVDIn0= \ No newline at end of file diff --git a/dist/smartrx.classes.observableintake.d.ts b/dist/smartrx.classes.observableintake.d.ts new file mode 100644 index 0000000..2173586 --- /dev/null +++ b/dist/smartrx.classes.observableintake.d.ts @@ -0,0 +1,15 @@ +import { Observable, Subscription } from 'rxjs'; +/** + * ObservableIntake + */ +export declare class ObservableIntake { + observable: Observable; + completed: Promise; + private completedDeffered; + private observableFunctions; + constructor(); + setObservable(observableFunc: any): void; + push(payloadArg: T): void; + subscribe(...args: any[]): Subscription; + signalComplete(): void; +} diff --git a/dist/smartrx.classes.observableintake.js b/dist/smartrx.classes.observableintake.js new file mode 100644 index 0000000..efb1f7b --- /dev/null +++ b/dist/smartrx.classes.observableintake.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const plugins = require("./smartrx.plugins"); +const rxjs_1 = require("rxjs"); +/** + * ObservableIntake + */ +class ObservableIntake { + constructor() { + this.observableFunctions = { + next: (payloadArg) => { + // nothing + }, + complete: (payloadArg) => { + // nothing + } + }; + this.observable = rxjs_1.Observable.create((observerArg) => { + this.observableFunctions.next = (...args) => { + return observerArg.next(...args); + }; + this.observableFunctions.complete = (...args) => { + this.completedDeffered.resolve(); + return observerArg.complete(...args); + }; + }); + this.completedDeffered = plugins.smartq.defer(); + this.completed = this.completedDeffered.promise; + } + setObservable(observableFunc) { + this.observable = observableFunc(); + } + push(payloadArg) { + this.observableFunctions.next(payloadArg); + } + subscribe(...args) { + return this.observable.subscribe(...args); + } + signalComplete() { + this.observableFunctions.complete(); + } +} +exports.ObservableIntake = ObservableIntake; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRyeC5jbGFzc2VzLm9ic2VydmFibGVpbnRha2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHJ4LmNsYXNzZXMub2JzZXJ2YWJsZWludGFrZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUE0QztBQUM1QywrQkFBK0M7QUFHL0M7O0dBRUc7QUFDSDtJQWFFO1FBVFEsd0JBQW1CLEdBQVE7WUFDakMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ25CLFVBQVU7WUFDWixDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsVUFBVSxFQUFFLEVBQUU7Z0JBQ3ZCLFVBQVU7WUFDWixDQUFDO1NBQ0YsQ0FBQTtRQUdDLElBQUksQ0FBQyxVQUFVLEdBQUcsaUJBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtnQkFDMUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQTtZQUNsQyxDQUFDLENBQUE7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtnQkFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFBO2dCQUNoQyxNQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1lBQ3RDLENBQUMsQ0FBQTtRQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFBO0lBQ2pELENBQUM7SUFFRCxhQUFhLENBQUUsY0FBYztRQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsRUFBRSxDQUFBO0lBQ3BDLENBQUM7SUFFRCxJQUFJLENBQUUsVUFBYTtRQUNqQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxTQUFTLENBQUUsR0FBRyxJQUFJO1FBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQ3JDLENBQUM7Q0FDRjtBQTFDRCw0Q0EwQ0MifQ== \ No newline at end of file diff --git a/dist/smartrx.classes.observablemap.d.ts b/dist/smartrx.classes.observablemap.d.ts index 986019f..916a8ec 100644 --- a/dist/smartrx.classes.observablemap.d.ts +++ b/dist/smartrx.classes.observablemap.d.ts @@ -1,6 +1,6 @@ /// import * as plugins from './smartrx.plugins'; -import { rxjsObservable } from './smartrx.classes.observable'; +import { Observable } from 'rxjs'; import { Objectmap } from 'lik'; /** * bundles an observable with an emitter @@ -19,5 +19,5 @@ export declare class Observablemap { * creates a new observable if not yet registered for the same event. * In case event has been registered before the same observable is returned. */ - getObservableForEmitterEvent(emitterArg: plugins.events.EventEmitter, eventArg: string): rxjsObservable; + getObservableForEmitterEvent(emitterArg: plugins.events.EventEmitter, eventArg: string): Observable; } diff --git a/dist/smartrx.classes.observablemap.js b/dist/smartrx.classes.observablemap.js index e1094ba..6693c7e 100644 --- a/dist/smartrx.classes.observablemap.js +++ b/dist/smartrx.classes.observablemap.js @@ -32,4 +32,4 @@ class Observablemap { } } exports.Observablemap = Observablemap; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRyeC5jbGFzc2VzLm9ic2VydmFibGVtYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHJ4LmNsYXNzZXMub2JzZXJ2YWJsZW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUE0QztBQUc1Qyw2QkFBK0I7QUFZL0I7O0dBRUc7QUFDSDtJQUFBO1FBQ0UscUNBQWdDLEdBQUcsSUFBSSxlQUFTLEVBQTJCLENBQUE7SUFzQjdFLENBQUM7SUFwQkM7OztPQUdHO0lBQ0gsNEJBQTRCLENBQUUsVUFBdUMsRUFBRSxRQUFnQjtRQUNyRixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDNUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQTtRQUMzRSxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUE7UUFDbEMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQy9FLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLENBQUM7Z0JBQ3hDLFVBQVUsRUFBRSxpQkFBaUI7Z0JBQzdCLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDLENBQUE7WUFDRixNQUFNLENBQUMsaUJBQWlCLENBQUE7UUFDMUIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZCRCxzQ0F1QkMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRyeC5jbGFzc2VzLm9ic2VydmFibGVtYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydHJ4LmNsYXNzZXMub2JzZXJ2YWJsZW1hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZDQUE0QztBQUU1Qyw2QkFBK0I7QUFZL0I7O0dBRUc7QUFDSDtJQUFBO1FBQ0UscUNBQWdDLEdBQUcsSUFBSSxlQUFTLEVBQTJCLENBQUE7SUFzQjdFLENBQUM7SUFwQkM7OztPQUdHO0lBQ0gsNEJBQTRCLENBQUUsVUFBdUMsRUFBRSxRQUFnQjtRQUNyRixJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDNUUsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sS0FBSyxVQUFVLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQTtRQUMzRSxDQUFDLENBQUMsQ0FBQTtRQUNGLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUE7UUFDbEMsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sSUFBSSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFBO1lBQy9FLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLENBQUM7Z0JBQ3hDLFVBQVUsRUFBRSxpQkFBaUI7Z0JBQzdCLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixLQUFLLEVBQUUsUUFBUTthQUNoQixDQUFDLENBQUE7WUFDRixNQUFNLENBQUMsaUJBQWlCLENBQUE7UUFDMUIsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZCRCxzQ0F1QkMifQ== \ No newline at end of file diff --git a/dist/smartrx.plugins.d.ts b/dist/smartrx.plugins.d.ts index 734e9ba..698ba93 100644 --- a/dist/smartrx.plugins.d.ts +++ b/dist/smartrx.plugins.d.ts @@ -2,4 +2,7 @@ import 'typings-global'; import * as events from 'events'; import * as lik from 'lik'; import * as rxjs from 'rxjs'; -export { events, lik, rxjs }; +import * as smartevent from 'smartevent'; +import * as smartq from 'smartq'; +import 'typings-global'; +export { events, lik, rxjs, smartevent, smartq }; diff --git a/dist/smartrx.plugins.js b/dist/smartrx.plugins.js index de9f870..a2c1204 100644 --- a/dist/smartrx.plugins.js +++ b/dist/smartrx.plugins.js @@ -7,4 +7,9 @@ const lik = require("lik"); exports.lik = lik; const rxjs = require("rxjs"); exports.rxjs = rxjs; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRyeC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRyeC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEJBQXVCO0FBQ3ZCLGlDQUFnQztBQUs5Qix3QkFBTTtBQUpSLDJCQUEwQjtBQUt4QixrQkFBRztBQUpMLDZCQUE0QjtBQUsxQixvQkFBSSJ9 \ No newline at end of file +const smartevent = require("smartevent"); +exports.smartevent = smartevent; +const smartq = require("smartq"); +exports.smartq = smartq; +require("typings-global"); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRyeC5wbHVnaW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRyeC5wbHVnaW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMEJBQXVCO0FBQ3ZCLGlDQUFnQztBQVE5Qix3QkFBTTtBQVBSLDJCQUEwQjtBQVF4QixrQkFBRztBQVBMLDZCQUE0QjtBQVExQixvQkFBSTtBQVBOLHlDQUF3QztBQVF0QyxnQ0FBVTtBQVBaLGlDQUFnQztBQVE5Qix3QkFBTTtBQVBSLDBCQUF1QiJ9 \ No newline at end of file diff --git a/package.json b/package.json index 91c02b1..10948ec 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,13 @@ "test": "(npmts)" }, "devDependencies": { - "tapbundle": "^1.0.13" + "tapbundle": "^1.1.8" }, "dependencies": { - "lik": "^1.0.43", + "lik": "^2.0.1", "rxjs": "^5.5.2", + "smartevent": "^1.0.1", "smartq": "^1.1.6", - "typings-global": "^1.0.16" + "typings-global": "^1.0.23" } } diff --git a/test/test.observableintake.ts b/test/test.observableintake.ts new file mode 100644 index 0000000..9f7d0c1 --- /dev/null +++ b/test/test.observableintake.ts @@ -0,0 +1,21 @@ +import { tap, expect } from 'tapbundle' + +import * as smartrx from '../ts/index' + +tap.test('should create a valid instance of observableinstake', async () => { + const testObservableIntake = new smartrx.ObservableIntake() + expect(testObservableIntake).to.be.instanceOf(smartrx.ObservableIntake) +}) + +tap.test('expect testObserservableIntake to be lazy', async (tools) => { + const testObserservableIntake = new smartrx.ObservableIntake() + testObserservableIntake.subscribe(value => { + console.log(value) + }) + + testObserservableIntake.push('hi') + testObserservableIntake.signalComplete() + await testObserservableIntake.completed +}) + +tap.start() diff --git a/test/test.observablemap.ts b/test/test.observablemap.ts index dcdd19f..54b089c 100644 --- a/test/test.observablemap.ts +++ b/test/test.observablemap.ts @@ -27,10 +27,8 @@ tap.test('should accept a new emitter', async () => { }) testObservable2 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event1') testObservable3 = testObservablemap.getObservableForEmitterEvent(testEmitter, 'event2') - // tslint:disable-next-line:no-unused-expression - expect(testObservable1 === testObservable2).be.true - // tslint:disable-next-line:no-unused-expression - expect(testObservable1 === testObservable3).be.false + expect(testObservable1 === testObservable2).be.true() + expect(testObservable1 === testObservable3).be.false() testEmitter.emit('event1') await done.promise }) diff --git a/test/test.ts b/test/test.ts deleted file mode 100644 index c174bdf..0000000 --- a/test/test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { expect, tap } from 'tapbundle' -import * as smartrx from '../ts/index' - -tap.test('first test', async () => { - console.log(smartrx.standardExport) -}) - -tap.start() diff --git a/ts/index.ts b/ts/index.ts index de0c510..4c7b517 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -2,4 +2,10 @@ import * as plugins from './smartrx.plugins' export let standardExport = 'Hi there! :) This is a exported string' export * from './smartrx.classes.observablemap' -export * from './smartrx.classes.observable' +export * from './smartrx.classes.observableintake' + +import * as rxjs from 'rxjs' + +export { + rxjs +} diff --git a/ts/smartrx.classes.observable.ts b/ts/smartrx.classes.observable.ts deleted file mode 100644 index 15a6519..0000000 --- a/ts/smartrx.classes.observable.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Observable as rxjsObservable } from 'rxjs' -export { - rxjsObservable -} - -export class Observable extends rxjsObservable { - static fromIntake () {} -} diff --git a/ts/smartrx.classes.observableintake.ts b/ts/smartrx.classes.observableintake.ts new file mode 100644 index 0000000..2801ac9 --- /dev/null +++ b/ts/smartrx.classes.observableintake.ts @@ -0,0 +1,50 @@ +import * as plugins from './smartrx.plugins' +import { Observable, Subscription } from 'rxjs' +import { Deferred } from 'smartq' + +/** + * ObservableIntake + */ +export class ObservableIntake { + observable: Observable + completed: Promise + private completedDeffered: Deferred + private observableFunctions: any = { + next: (payloadArg) => { + // nothing + }, + complete: (payloadArg) => { + // nothing + } + } + + constructor () { + this.observable = Observable.create((observerArg) => { + this.observableFunctions.next = (...args) => { + return observerArg.next(...args) + } + this.observableFunctions.complete = (...args) => { + this.completedDeffered.resolve() + return observerArg.complete(...args) + } + }) + this.completedDeffered = plugins.smartq.defer() + this.completed = this.completedDeffered.promise + } + + setObservable (observableFunc) { + this.observable = observableFunc() + } + + push (payloadArg: T) { + this.observableFunctions.next(payloadArg) + } + + subscribe (...args) { + return this.observable.subscribe(...args) + } + + signalComplete () { + this.observableFunctions.complete() + } +} diff --git a/ts/smartrx.classes.observablemap.ts b/ts/smartrx.classes.observablemap.ts index ad934c1..ca7051f 100644 --- a/ts/smartrx.classes.observablemap.ts +++ b/ts/smartrx.classes.observablemap.ts @@ -1,6 +1,5 @@ import * as plugins from './smartrx.plugins' -import { Observable, rxjsObservable } from './smartrx.classes.observable' - +import { Observable } from 'rxjs' import { Objectmap } from 'lik' import { Stringmap } from 'lik' diff --git a/ts/smartrx.plugins.ts b/ts/smartrx.plugins.ts index b7ae1bb..bacd925 100644 --- a/ts/smartrx.plugins.ts +++ b/ts/smartrx.plugins.ts @@ -2,9 +2,14 @@ import 'typings-global' import * as events from 'events' import * as lik from 'lik' import * as rxjs from 'rxjs' +import * as smartevent from 'smartevent' +import * as smartq from 'smartq' +import 'typings-global' export { events, lik, - rxjs + rxjs, + smartevent, + smartq } diff --git a/yarn.lock b/yarn.lock index eef413f..e068fb1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -193,15 +193,14 @@ left-pad@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" -lik@^1.0.43: - version "1.0.43" - resolved "https://registry.yarnpkg.com/lik/-/lik-1.0.43.tgz#e81709290fb85ff61dabfa008791ba9ffed0c666" +lik@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/lik/-/lik-2.0.1.tgz#828be73de3e356d12ee020d1499b9a99538cfa3d" dependencies: "@types/lodash" "^4.14.74" "@types/minimatch" "3.x.x" lodash "^4.17.4" minimatch "^3.0.4" - rxjs "^5.4.3" smartq "^1.1.6" typings-global "^1.0.20" @@ -271,7 +270,7 @@ resolve@^1.1.6: dependencies: path-parse "^1.0.5" -rxjs@^5.4.3, rxjs@^5.5.2: +rxjs@^5.5.2: version "5.5.2" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.5.2.tgz#28d403f0071121967f18ad665563255d54236ac3" dependencies: @@ -304,6 +303,13 @@ smartdelay@^1.0.3: smartq "^1.1.1" typings-global "^1.0.16" +smartevent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/smartevent/-/smartevent-1.0.1.tgz#13d2bf2cf094ebdf17813fa0d46041f817a302aa" + dependencies: + smartq "^1.1.1" + typings-global "^1.0.16" + smartq@^1.1.1, smartq@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/smartq/-/smartq-1.1.6.tgz#0c1ff4336d95e95b4f1fdd8ccd7e2c5a323b8412" @@ -326,7 +332,7 @@ symbol-observable@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" -tapbundle@^1.0.13: +tapbundle@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/tapbundle/-/tapbundle-1.1.8.tgz#e08aee0e100a830d8a26a583a85d37ce53312e02" dependencies: @@ -338,9 +344,9 @@ tapbundle@^1.0.13: smartq "^1.1.1" typings-global "^1.0.19" -typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.20: - version "1.0.20" - resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.20.tgz#3da769c54db538247c5d877d1d9e97eb2ec981ff" +typings-global@^1.0.14, typings-global@^1.0.16, typings-global@^1.0.19, typings-global@^1.0.20, typings-global@^1.0.23: + version "1.0.23" + resolved "https://registry.yarnpkg.com/typings-global/-/typings-global-1.0.23.tgz#cdd085803049dd07d95b2e1475243c6b2db378ab" dependencies: semver "^5.3.0" smartshell "^1.0.6"