Skip to content
This repository was archived by the owner on Jan 6, 2025. It is now read-only.

Commit ea4bf72

Browse files
committed
fix: import individual rx operators
* Removes 'rxjs/operators' import in favor of indivial imports, adds lint rule to prevent that type of import * Maintains parity with angular/components#8160
1 parent b01c2d7 commit ea4bf72

File tree

12 files changed

+8052
-10192
lines changed

12 files changed

+8052
-10192
lines changed

package-lock.json

Lines changed: 8008 additions & 10144 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
"@angular/core": "~4.4.4",
3232
"@angular/platform-browser": "~4.4.4",
3333
"core-js": "^2.4.1",
34-
"rxjs": "^5.5.0",
34+
"rxjs": "^5.5.2",
3535
"systemjs": "0.19.43",
3636
"tsickle": "^0.23.5",
3737
"tslib": "^1.8.0",
@@ -125,4 +125,4 @@
125125
"typescript": "~2.4.2",
126126
"uglify-js": "^2.8.14"
127127
}
128-
}
128+
}
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
import {Directive, ElementRef, Inject, Output} from '@angular/core';
2-
import {DOCUMENT} from '@angular/platform-browser';
2+
import {DOCUMENT} from '@angular/common';
33

44
import {Observable} from 'rxjs/Observable';
55

6-
import 'rxjs/add/observable/fromEvent';
7-
import 'rxjs/add/operator/takeUntil';
8-
import 'rxjs/add/operator/switchMap';
9-
import 'rxjs/add/operator/map';
6+
import {fromEvent} from 'rxjs/observable/fromEvent';
7+
import {map} from 'rxjs/operators/map';
8+
import {switchMap} from 'rxjs/operators/switchMap';
9+
import {takeUntil} from 'rxjs/operators/takeUntil';
10+
1011

1112
@Directive({
1213
selector: '[ngxSplitHandle]',
@@ -20,14 +21,13 @@ export class SplitHandleDirective {
2021
@Output() drag: Observable<{ x: number, y: number }>;
2122

2223
constructor(ref: ElementRef, @Inject(DOCUMENT) _document: any) {
23-
const fromEvent = Observable.fromEvent;
2424
const getMouseEventPosition = (event: MouseEvent) => ({x: event.movementX, y: event.movementY});
2525

26-
const mousedown$ = fromEvent(ref.nativeElement, 'mousedown').map(getMouseEventPosition);
27-
const mousemove$ = fromEvent(_document, 'mousemove').map(getMouseEventPosition);
28-
const mouseup$ = fromEvent(_document, 'mouseup').map(getMouseEventPosition);
26+
const mousedown$ = fromEvent(ref.nativeElement, 'mousedown').pipe(map(getMouseEventPosition));
27+
const mousemove$ = fromEvent(_document, 'mousemove').pipe(map(getMouseEventPosition));
28+
const mouseup$ = fromEvent(_document, 'mouseup').pipe(map(getMouseEventPosition));
2929

30-
this.drag = mousedown$.switchMap(_ => mousemove$.takeUntil(mouseup$));
30+
this.drag = mousedown$.pipe(switchMap(_ => mousemove$.pipe(takeUntil(mouseup$))));
3131
}
3232

3333
}

src/demo-app/system-config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ System.config({
4949
packages: {
5050
// 3rd-Party barrels.
5151
'rxjs': { main: 'index' },
52-
'rxjs/operators': {main: 'index'},
5352
// Set the default extension for the root package, because otherwise the demo-app can't
5453
// be built within the production mode. Due to missing file extensions.
5554
'.': {

src/lib/api/core/responsive-activation.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
import {Subscription} from 'rxjs/Subscription';
9-
import {map} from 'rxjs/operators';
9+
import {map} from 'rxjs/operators/map';
1010

1111
import {MediaChange, MediaQuerySubscriber} from '../../media-query/media-change';
1212
import {BreakPoint} from '../../media-query/breakpoints/break-point';

src/lib/media-query/match-media.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {ɵgetDOM as getDom} from '@angular/platform-browser';
1010
import {DOCUMENT} from '@angular/common';
1111
import {BehaviorSubject} from 'rxjs/BehaviorSubject';
1212
import {Observable} from 'rxjs/Observable';
13-
import {filter} from 'rxjs/operators';
13+
import {filter} from 'rxjs/operators/filter';
1414

1515
import {MediaChange} from './media-change';
1616

src/lib/media-query/media-monitor.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ import {MediaChange} from './media-change';
1515
import {mergeAlias} from '../utils/add-alias';
1616

1717
import {Observable} from 'rxjs/Observable';
18-
import {filter, map} from 'rxjs/operators';
18+
import {filter} from 'rxjs/operators/filter';
19+
import {map} from 'rxjs/operators/map';
1920

2021
/**
2122
* MediaMonitor uses the MatchMedia service to observe mediaQuery changes (both activations and

src/lib/media-query/observable-media.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
*/
88
import {TestBed, inject, async} from '@angular/core/testing';
99

10-
import {filter, map} from 'rxjs/operators';
10+
import {filter} from 'rxjs/operators/filter';
11+
import {map} from 'rxjs/operators/map';
1112

1213
import {BreakPoint} from './breakpoints/break-point';
1314
import {BREAKPOINTS} from './breakpoints/break-points-token';

src/lib/media-query/observable-media.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import {Injectable} from '@angular/core';
1010
import {Subscription} from 'rxjs/Subscription';
1111
import {Observable, Subscribable} from 'rxjs/Observable';
1212

13-
import {map, filter} from 'rxjs/operators';
13+
import {map} from 'rxjs/operators/map';
14+
import {filter} from 'rxjs/operators/filter';
1415

1516
import {BreakPointRegistry} from './breakpoints/break-point-registry';
1617

@@ -52,7 +53,7 @@ export abstract class ObservableMedia implements Subscribable<MediaChange> {
5253
* @usage
5354
*
5455
* // RxJS
55-
* import 'rxjs/add/operator/filter';
56+
* import {filter} from 'rxjs/operators/filter';
5657
* import { ObservableMedia } from '@angular/flex-layout';
5758
*
5859
* @Component({ ... })
@@ -69,8 +70,9 @@ export abstract class ObservableMedia implements Subscribable<MediaChange> {
6970
* // media.subscribe(onChange);
7071
*
7172
* media.asObservable()
72-
* .filter((change:MediaChange) => true) // silly noop filter
73-
* .subscribe(onChange);
73+
* .pipe(
74+
* filter((change:MediaChange) => true) // silly noop filter
75+
* ).subscribe(onChange);
7476
* }
7577
* }
7678
*/

src/universal-app/app/splitter/split-handle.directive.ts

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
import {Directive, ElementRef, Inject, Output} from '@angular/core';
2-
import {DOCUMENT} from '@angular/platform-browser';
3-
import { isBrowser } from '../util/helper';
1+
import {Directive, ElementRef, Inject, Output, PLATFORM_ID} from '@angular/core';
2+
import {DOCUMENT, isPlatformBrowser} from '@angular/common';
43

54
import {Observable} from 'rxjs/Observable';
5+
import {fromEvent} from 'rxjs/observable/fromEvent';
6+
import {switchMap} from 'rxjs/operators/switchMap';
7+
import {map} from 'rxjs/operators/map';
8+
import {takeUntil} from 'rxjs/operators/takeUntil';
69

7-
import 'rxjs/add/observable/fromEvent';
8-
import 'rxjs/add/operator/takeUntil';
9-
import 'rxjs/add/operator/switchMap';
10-
import 'rxjs/add/operator/map';
1110

1211
@Directive({
1312
selector: '[ngxSplitHandle]',
@@ -20,17 +19,21 @@ export class SplitHandleDirective {
2019

2120
@Output() drag: Observable<{ x: number, y: number }>;
2221

23-
constructor(ref: ElementRef, @Inject(DOCUMENT) _document: any) {
22+
constructor(
23+
ref: ElementRef,
24+
@Inject(DOCUMENT) _document: any,
25+
@Inject(PLATFORM_ID) private _platformId: Object
26+
) {
2427
const getMouseEventPosition = (event: MouseEvent) => ({x: event.movementX, y: event.movementY});
2528

26-
if ( isBrowser() ) {
29+
if ( isPlatformBrowser(PLATFORM_ID) ) {
2730
/* tslint:disable */
28-
const mousedown$ = Observable.fromEvent(ref.nativeElement, 'mousedown').map(getMouseEventPosition);
29-
const mousemove$ = Observable.fromEvent(_document, 'mousemove').map(getMouseEventPosition);
30-
const mouseup$ = Observable.fromEvent(_document, 'mouseup').map(getMouseEventPosition);
31+
const mousedown$ = fromEvent(ref.nativeElement, 'mousedown').pipe(map(getMouseEventPosition));
32+
const mousemove$ = fromEvent(_document, 'mousemove').pipe(map(getMouseEventPosition));
33+
const mouseup$ = fromEvent(_document, 'mouseup').pipe(map(getMouseEventPosition));
3134

3235
/* tslint:enable*/
33-
this.drag = mousedown$.switchMap(_ => mousemove$.takeUntil(mouseup$));
36+
this.drag = mousedown$.pipe(switchMap(_ => mousemove$.pipe(takeUntil(mouseup$))));
3437
}
3538

3639
}

tools/package-tools/rollup-globals.ts

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -52,25 +52,15 @@ export const rollupGlobals = {
5252
'rxjs/Subscriber': 'Rx',
5353
'rxjs/Scheduler': 'Rx',
5454
'rxjs/ReplaySubject': 'Rx',
55+
5556
'rxjs/observable/combineLatest': 'Rx.Observable',
5657
'rxjs/observable/forkJoin': 'Rx.Observable',
5758
'rxjs/observable/fromEvent': 'Rx.Observable',
5859
'rxjs/observable/merge': 'Rx.Observable',
5960
'rxjs/observable/of': 'Rx.Observable',
6061
'rxjs/observable/throw': 'Rx.Observable',
6162
'rxjs/observable/defer': 'Rx.Observable',
62-
'rxjs/operators': 'Rx.Observable',
63-
'rxjs/operators/index': 'Rx.Observable',
6463

65-
'rxjs/add/observable/merge': 'Rx.Observable',
66-
'rxjs/add/observable/fromEvent': 'Rx.Observable',
67-
'rxjs/add/observable/of': 'Rx.Observable',
68-
'rxjs/add/observable/interval': 'Rx.Observable',
69-
'rxjs/add/operator/startWith': 'Rx.Observable.prototype',
70-
'rxjs/add/operator/map': 'Rx.Observable.prototype',
71-
'rxjs/add/operator/debounceTime': 'Rx.Observable.prototype',
72-
'rxjs/add/operator/distinctUntilChanged': 'Rx.Observable.prototype',
73-
'rxjs/add/operator/first': 'Rx.Observable.prototype',
74-
'rxjs/add/operator/catch': 'Rx.Observable.prototype',
75-
'rxjs/add/operator/switchMap': 'Rx.Observable.prototype'
64+
'rxjs/operators/filter': 'Rx.operators',
65+
'rxjs/operators/map': 'Rx.operators',
7666
};

tslint.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
["xdescribe"]
7676
],
7777
// Disallows importing the whole RxJS library. Submodules can be still imported.
78-
"import-blacklist": [true, "rxjs"],
78+
"import-blacklist": [true, "rxjs", "rxjs/operators"],
7979
// Avoids inconsistent linebreak styles in source files. Forces developers to use LF linebreaks.
8080
"linebreak-style": [true, "LF"],
8181

0 commit comments

Comments
 (0)