Skip to content

Commit

Permalink
refactor: deprecated DataFlowNode type
Browse files Browse the repository at this point in the history
not support type 'DataFlowNode'

BREAKING CHANGE: replace DataFlowNode as CombErr<{}>
  • Loading branch information
ElonH committed May 17, 2020
1 parent b552309 commit 101786d
Show file tree
Hide file tree
Showing 10 changed files with 26 additions and 27 deletions.
2 changes: 1 addition & 1 deletion src/app/@dataflow/core/ajax-flow.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { CacheFlow } from './cache-flow';
import { DataFlowNode, FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { Observable, of } from 'rxjs';
import { ajax, AjaxRequest, AjaxResponse } from 'rxjs/ajax';
import { catchError, map } from 'rxjs/operators';
Expand Down
16 changes: 8 additions & 8 deletions src/app/@dataflow/core/bare-flow.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { BareFlow, DataFlowNode, FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { BareFlow, FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { TestScheduler } from 'rxjs/testing';
import { Observable, of } from 'rxjs';

Expand All @@ -14,14 +14,14 @@ describe('BareFlow', () => {
scheduler.run((helpers) => {
const { cold, hot, expectObservable, expectSubscriptions, flush } = helpers;
const values = {
a: [{}, [new Error('123')]] as DataFlowNode,
a: [{}, [new Error('123')]] as CombErr<{}>,
};
const pre = cold('a----', values);
const expected = 'a----';

const rst = new (class extends BareFlow<FlowInNode, FlowOutNode> {
public prerequest$ = pre;
protected request(pre: DataFlowNode): Observable<DataFlowNode> {
protected request(pre: CombErr<FlowInNode>): Observable<CombErr<FlowOutNode>> {
throw new Error('Method not implemented.');
}
})();
Expand All @@ -46,7 +46,7 @@ describe('BareFlow', () => {

const rst = new (class extends BareFlow<TestPreNode, TestPreNode> {
public prerequest$ = pre;
protected request(pre: DataFlowNode): Observable<DataFlowNode> {
protected request(pre: CombErr<TestPreNode>): Observable<CombErr<TestPreNode>> {
expect(pre).toEqual(values.a);
return of(values.b, values.b);
}
Expand All @@ -72,7 +72,7 @@ describe('BareFlow', () => {

const rst = new (class extends BareFlow<TestPreNode, TestPreNode> {
public prerequest$ = pre;
protected request(pre: DataFlowNode): Observable<DataFlowNode> {
protected request(pre: CombErr<TestPreNode>): Observable<CombErr<TestPreNode>> {
return of(values.b);
}
})();
Expand All @@ -97,9 +97,9 @@ describe('BareFlow', () => {
const expected = 'c--d-';

const rst = new (class extends BareFlow<TestPreNode, TestPreNode> {
// protected request(pre: import("./bare-flow").CombErr<TestPreNode>): Observable<import("./bare-flow").CombErr<TestPreNode>> {
// throw new Error("Method not implemented.");
// }
// protected request(pre: import("./bare-flow").CombErr<TestPreNode>): Observable<import("./bare-flow").CombErr<TestPreNode>> {
// throw new Error("Method not implemented.");
// }
public prerequest$ = pre;
protected request(pre: CombErr<TestPreNode>): Observable<CombErr<TestPreNode>> {
return of([{ ab: pre[0]['ab'] + 1 }, []]);
Expand Down
1 change: 0 additions & 1 deletion src/app/@dataflow/core/bare-flow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { switchMap, take, tap, startWith, distinctUntilChanged, skipWhile } from

export interface FlowInNode {}
export interface FlowOutNode {}
export type DataFlowNode = [FlowInNode, Error[]]; // TODO: drop support
export type CombErr<T> = [T, Error[]];

export abstract class BareFlow<Tin extends FlowInNode, Tout extends FlowOutNode> {
Expand Down
4 changes: 2 additions & 2 deletions src/app/@dataflow/core/cache-flow.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { CacheFlow } from './cache-flow';
import { TestScheduler } from 'rxjs/testing';
import { DataFlowNode, FlowInNode, CombErr, FlowOutNode } from './bare-flow';
import { FlowInNode, CombErr, FlowOutNode } from './bare-flow';
import { Observable, of } from 'rxjs';

describe('CacheFlow', () => {
Expand Down Expand Up @@ -77,7 +77,7 @@ describe('CacheFlow', () => {
protected requestCache(pre: CombErr<TestIn>): Observable<CombErr<TestOut>> {
return of([{ k: pre[0]['ab'] }, []]);
}
constructor(pre: Observable<DataFlowNode>) {
constructor(pre: Observable<CombErr<TestIn>>) {
super();
this.prerequest$ = pre;
}
Expand Down
4 changes: 2 additions & 2 deletions src/app/@dataflow/core/cache-flow.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { DataFlowNode, FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { Observable, iif, of } from 'rxjs';
import { SupersetFlow, FlowSupNode } from './superset-flow';
import { tap, take, map } from 'rxjs/operators';
Expand All @@ -24,7 +24,7 @@ export abstract class CacheFlow<

protected abstract cacheSupport: boolean;
protected abstract cachePath: string | undefined;
private static cacheStorage: { [id: string]: DataFlowNode } = {};
private static cacheStorage: { [id: string]: CombErr<FlowOutNode> } = {};

private cacheEnabled(): boolean {
return this.cacheSupport && typeof this.cachePath === 'string';
Expand Down
6 changes: 3 additions & 3 deletions src/app/@dataflow/core/superset-flow.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { SupersetFlow } from './superset-flow';
import { TestScheduler } from 'rxjs/testing';
import { DataFlowNode, FlowInNode, FlowOutNode } from './bare-flow';
import { FlowInNode, FlowOutNode, CombErr } from './bare-flow';
import { Observable, of } from 'rxjs';

describe('SupersetFlow', () => {
Expand All @@ -14,7 +14,7 @@ describe('SupersetFlow', () => {
it('prerequest twice(different value), got twice', () => {
scheduler.run((helpers) => {
const { cold, hot, expectObservable, expectSubscriptions, flush } = helpers;
const values: { [id: string]: DataFlowNode } = {
const values: { [id: string]: CombErr<{}> } = {
a: [{ ab: 555 }, []],
b: [{ ab: 123 }, []],
c: [{ ab: 555, cd: 556 }, []],
Expand All @@ -25,7 +25,7 @@ describe('SupersetFlow', () => {

const rst = new (class extends SupersetFlow<FlowInNode, FlowOutNode> {
public prerequest$ = pre;
protected request(pre: DataFlowNode): Observable<DataFlowNode> {
protected request(pre: CombErr<FlowInNode>): Observable<CombErr<FlowOutNode>> {
return of([{ cd: pre[0]['ab'] + 1 }, []]);
}
})();
Expand Down
4 changes: 2 additions & 2 deletions src/app/@dataflow/extra/name-validation.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SupersetFlow, DataFlowNode, FlowInNode, CombErr } from '../core';
import { SupersetFlow, FlowInNode, CombErr } from '../core';
import { Observable, of } from 'rxjs';
import { IUser, UsersFlowNode } from './users-flow';

Expand All @@ -11,7 +11,7 @@ export interface NameValidationNode extends FlowInNode {
}

export abstract class NameValidation extends SupersetFlow<NameValidationPreNode, NameValidationNode> {
protected request(pre: DataFlowNode): Observable<CombErr<NameValidationNode>> {
protected request(pre: CombErr<NameValidationPreNode>): Observable<CombErr<NameValidationNode>> {
const curName = pre[0]['currentName'];
if (curName === '') return of([{}, [new Error('You must enter a value')]] as any);
const usrs = pre[0]['users'] as IUser[];
Expand Down
10 changes: 5 additions & 5 deletions src/app/@dataflow/extra/users-flow.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { UsersFlow, IUser, UsersFlowNode } from './users-flow';
import { UsersFlow, IUser } from './users-flow';
import { TestScheduler } from 'rxjs/testing';
import { DataFlowNode } from '../core';
import { map } from 'rxjs/operators';
import { CombErr, FlowInNode } from '../core';

describe('UsersFlow', () => {
let scheduler: TestScheduler;
Expand All @@ -22,7 +22,7 @@ describe('UsersFlow', () => {
const expected = 'b-b--';

const rst = new (class extends UsersFlow {
public prerequest$ = pre.pipe(map(() => [{}, []] as DataFlowNode));
public prerequest$ = pre.pipe(map((): CombErr<FlowInNode> => [{}, []]));
})();

UsersFlow.purge();
Expand All @@ -42,7 +42,7 @@ describe('UsersFlow', () => {
const expected = 'b-b--';

const rst = new (class extends UsersFlow {
public prerequest$ = pre.pipe(map((): DataFlowNode => [{}, []]));
public prerequest$ = pre.pipe(map((): CombErr<FlowInNode> => [{}, []]));
})();

UsersFlow.setAll([]);
Expand All @@ -67,7 +67,7 @@ describe('UsersFlow', () => {
const expected = 'b-b--';

const rst = new (class extends UsersFlow {
public prerequest$ = pre.pipe(map((): DataFlowNode => [{}, []]));
public prerequest$ = pre.pipe(map((): CombErr<FlowInNode> => [{}, []]));
})();

UsersFlow.setAll([
Expand Down
2 changes: 1 addition & 1 deletion src/app/@dataflow/extra/users-flow.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Observable, of } from 'rxjs';
import { BareFlow, DataFlowNode, FlowInNode, CombErr } from '../core';
import { BareFlow, FlowInNode, CombErr } from '../core';

export interface IRcloneServer {
url: string;
Expand Down
4 changes: 2 additions & 2 deletions src/app/pages/user/user.component.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { Component, OnInit } from '@angular/core';
import { UsersFlow } from 'src/app/@dataflow/extra';
import { DataFlowNode } from 'src/app/@dataflow/core';
import { Subject } from 'rxjs';
import { map } from 'rxjs/operators';
import { CombErr, FlowInNode } from 'src/app/@dataflow/core';

@Component({
selector: 'app-user',
Expand All @@ -22,7 +22,7 @@ export class UserComponent implements OnInit {
ngOnInit(): void {
const outer = this;
this.usersFlow$ = new (class extends UsersFlow {
public prerequest$ = outer.userSubject.pipe(map((): DataFlowNode => [{}, []]));
public prerequest$ = outer.userSubject.pipe(map((): CombErr<FlowInNode> => [{}, []]));
})();
this.usersFlow$.deploy();

Expand Down

0 comments on commit 101786d

Please sign in to comment.