Skip to content

Commit

Permalink
[renamed] listener to observerOrNext
Browse files Browse the repository at this point in the history
Reviewers: featherless, O2 Material Motion

Reviewed By: featherless, O2 Material Motion

Tags: #material_motion

Differential Revision: http://codereview.cc/D2165
  • Loading branch information
appsforartists committed Dec 8, 2016
1 parent 5b9207f commit 1dc6251
Show file tree
Hide file tree
Showing 13 changed files with 43 additions and 41 deletions.
10 changes: 5 additions & 5 deletions build.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,23 @@ const licenseText = `/** @license

const observableSource = readFileSync('./dist/IndefiniteObservable.js').toString();
const subjectSource = readFileSync('./dist/IndefiniteSubject.js').toString();
const wrapListenerWithObserverSource = readFileSync('./dist/wrapListenerWithObserver.js').toString();
const wrapWithObserverSource = readFileSync('./dist/wrapWithObserver.js').toString();
const symbolObservable = readFileSync('./third_party/symbol-observable/index.js').toString();

writeFileSync(
'./dist/indefinite-observable.js',
licenseText + '\n' +[
observableSource.replace(licenseText, ''),
subjectSource.replace(licenseText, ''),
wrapListenerWithObserverSource.replace(licenseText, ''),
wrapWithObserverSource.replace(licenseText, ''),
].join('\n\n').replace(
/const symbol_observable_\d = require\("symbol-observable"\);/,
symbolObservable
).replace(
/const symbol_observable_\d = require\("symbol-observable"\);/,
''
).replace(
/const wrapListenerWithObserver_\d = require\(".\/wrapListenerWithObserver"\);/g,
/const wrapWithObserver_\d = require\(".\/wrapWithObserver"\);/g,
''
).replace(
// strip comments
Expand All @@ -64,8 +64,8 @@ writeFileSync(
/symbol_observable_\d\.default/g,
'$$observable'
).replace(
/wrapListenerWithObserver_\d\.default/g,
'wrapListenerWithObserver'
/wrapWithObserver_\d\.default/g,
'wrapWithObserver'
).replace(
/Object\.defineProperty\(exports, "__esModule", \{ value: true \}\);/g,
''
Expand Down
4 changes: 2 additions & 2 deletions dist/IndefiniteObservable.d.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Creator, Listener, Observable, Subscription } from './types';
import { Creator, Observable, ObserverOrNext, Subscription } from './types';
export default class IndefiniteObservable<T> implements Observable<T> {
_creator: Creator<T>;
constructor(creator: Creator<T>);
subscribe(listener: Listener<T>): Subscription;
subscribe(observerOrNext: ObserverOrNext<T>): Subscription;
}
6 changes: 3 additions & 3 deletions dist/IndefiniteObservable.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions dist/IndefiniteSubject.d.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Listener, Observable, Observer, Subscription } from './types';
import { Observable, Observer, ObserverOrNext, Subscription } from './types';
export default class IndefiniteSubject<T> implements Observable<T>, Observer<T> {
_observers: Set<Observer<T>>;
_lastValue: T;
_hasStarted: boolean;
next(value: T): void;
subscribe(listener: Listener<T>): Subscription;
subscribe(observerOrNext: ObserverOrNext<T>): Subscription;
}
6 changes: 3 additions & 3 deletions dist/IndefiniteSubject.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions dist/indefinite-observable.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ class IndefiniteObservable {
constructor(creator) {
this._creator = creator;
}
subscribe(listener) {
const observer = wrapListenerWithObserver(listener);
subscribe(observerOrNext) {
const observer = wrapWithObserver(observerOrNext);
let unsubscribe = this._creator(observer);
return {
unsubscribe,
Expand All @@ -105,8 +105,8 @@ class IndefiniteSubject {
this._lastValue = value;
this._observers.forEach((observer) => observer.next(value));
}
subscribe(listener) {
const observer = wrapListenerWithObserver(listener);
subscribe(observerOrNext) {
const observer = wrapWithObserver(observerOrNext);
this._observers.add(observer);
if (this._hasStarted) {
observer.next(this._lastValue);
Expand All @@ -127,7 +127,7 @@ class IndefiniteSubject {
}
}

function wrapListenerWithObserver(listener) {
function wrapWithObserver(listener) {
if (listener.next) {
return listener;
}
Expand Down
2 changes: 1 addition & 1 deletion dist/types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ export interface Observer<T> {
}
export declare type Creator<T> = (observer: Observer<T>) => Unsubscribe;
export declare type Channel<T> = (value: T) => void;
export declare type Listener<T> = Observer<T> | Channel<T>;
export declare type ObserverOrNext<T> = Observer<T> | Channel<T>;
export declare type Unsubscribe = () => void;
export interface Subscription {
unsubscribe: Unsubscribe;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@
* License for the specific language governing permissions and limitations
* under the License.
*/
import { Observer, Listener } from './types';
export default function wrapListenerWithObserver<T>(listener: Listener<T>): Observer<T>;
import { Observer, ObserverOrNext } from './types';
export default function wrapWithObserver<T>(listener: ObserverOrNext<T>): Observer<T>;
11 changes: 6 additions & 5 deletions dist/wrapListenerWithObserver.js → dist/wrapWithObserver.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions src/IndefiniteObservable.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@

import $$observable from 'symbol-observable';

import wrapListenerWithObserver from './wrapListenerWithObserver';
import wrapWithObserver from './wrapWithObserver';

import {
Channel,
Creator,
Listener,
Observable,
Observer,
ObserverOrNext,
Subscription,
Unsubscribe,
} from './types';
Expand All @@ -35,13 +35,13 @@ export default class IndefiniteObservable<T> implements Observable<T> {
this._creator = creator;
}

subscribe(listener: Listener<T>): Subscription {
subscribe(observerOrNext: ObserverOrNext<T>): Subscription {
// subscribe accepts next as either an anonymous function or as a named
// member on an object. The creator always expects an object with a
// function named next. Therefore, if we receive an anonymous function, we
// wrap it in an object literal.

const observer = wrapListenerWithObserver<T>(listener);
const observer = wrapWithObserver<T>(observerOrNext);

let unsubscribe: Unsubscribe = this._creator(observer);

Expand Down
8 changes: 4 additions & 4 deletions src/IndefiniteSubject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@

import $$observable from 'symbol-observable';

import wrapListenerWithObserver from './wrapListenerWithObserver';
import wrapWithObserver from './wrapWithObserver';

import {
Channel,
Listener,
Observable,
Observer,
ObserverOrNext,
Subscription,
Unsubscribe,
} from './types';
Expand All @@ -46,8 +46,8 @@ export default class IndefiniteSubject<T> implements Observable<T>, Observer<T>
);
}

subscribe(listener: Listener<T>): Subscription {
const observer = wrapListenerWithObserver<T>(listener);
subscribe(observerOrNext: ObserverOrNext<T>): Subscription {
const observer = wrapWithObserver<T>(observerOrNext);

this._observers.add(observer);

Expand Down
2 changes: 1 addition & 1 deletion src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export interface Observer<T> {
export type Creator<T> = (observer: Observer<T>) => Unsubscribe;

export type Channel<T> = (value: T) => void;
export type Listener<T> = Observer<T> | Channel<T>;
export type ObserverOrNext<T> = Observer<T> | Channel<T>;

export type Unsubscribe = () => void;
export interface Subscription {
Expand Down
9 changes: 5 additions & 4 deletions src/wrapListenerWithObserver.ts → src/wrapWithObserver.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,18 @@ import {
Observer,
Creator,
Channel,
Listener,
ObserverOrNext,
Unsubscribe,
Subscription,
} from './types';

// TypeScript is a pain to use with polymorphic types unless you wrap them in a
// function that returns a single type. So, that's what this is.
//
// If you give it an observer, you get back that observer. If you give it a
// lambda, you get back that lambda wrapped in an observer.
export default function wrapListenerWithObserver<T>(listener: Listener<T>): Observer<T> {
// If you give it an observer, you get back that observer. If you give it an
// anonymous function, you get back that anonymous function wrapped in an
// observer.
export default function wrapWithObserver<T>(listener: ObserverOrNext<T>): Observer<T> {
if ((listener as Observer<T>).next) {
return (listener as Observer<T>);

Expand Down

0 comments on commit 1dc6251

Please sign in to comment.