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

Commit 60cd9a5

Browse files
committed
refactor: Update rxjs operators to be lettable
1 parent 6df0aeb commit 60cd9a5

File tree

38 files changed

+703
-545
lines changed

38 files changed

+703
-545
lines changed

bin/devkit-admin

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ process.chdir(path.join(__dirname, '..'));
3434
let logger = null;
3535
try {
3636
logger = new (require('@angular-devkit/core').logging.IndentLogger)('root');
37-
require('rxjs/add/operator/filter');
37+
const filter = require('rxjs/operators').filter;
3838

3939
logger
40-
.filter(entry => (entry.level !== 'debug' || args.verbose))
40+
.pipe(filter(entry => (entry.level !== 'debug' || args.verbose)))
4141
.subscribe(entry => {
4242
let color = gray;
4343
let output = process.stdout;
@@ -52,7 +52,7 @@ try {
5252
});
5353

5454
logger
55-
.filter(entry => entry.level === 'fatal')
55+
.pipe(filter(entry => entry.level === 'fatal'))
5656
.subscribe(() => {
5757
process.stderr.write('A fatal error happened. See details above.\n');
5858
process.exit(100);

package-lock.json

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

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@
6666
"npm": "^5.2.0",
6767
"npm-run": "^4.1.2",
6868
"npm-run-all": "^4.0.0",
69-
"rxjs": "^5.5.2",
69+
"rxjs": "5.5.4",
7070
"semver": "^5.3.0",
7171
"semver-intersect": "^1.1.2",
7272
"source-map": "^0.5.6",

packages/angular_devkit/core/node/cli-logger.ts

Lines changed: 2 additions & 2 deletions
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 { logging, terminal } from '@angular-devkit/core';
9-
import 'rxjs/add/operator/filter';
9+
import { filter } from 'rxjs/operators';
1010

1111

1212
/**
@@ -16,7 +16,7 @@ export function createConsoleLogger(verbose = false): logging.Logger {
1616
const logger = new logging.IndentLogger('cling');
1717

1818
logger
19-
.filter(entry => (entry.level != 'debug' || verbose))
19+
.pipe(filter(entry => (entry.level != 'debug' || verbose)))
2020
.subscribe(entry => {
2121
let color: (s: string) => string = x => terminal.dim(terminal.white(x));
2222
let output = process.stdout;

packages/angular_devkit/core/node/host.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ import {
1919
import * as fs from 'fs';
2020
import { Observable } from 'rxjs/Observable';
2121
import { ArrayObservable } from 'rxjs/observable/ArrayObservable';
22-
import { FromObservable } from 'rxjs/observable/FromObservable';
22+
import { empty } from 'rxjs/observable/empty';
23+
import { from as observableFrom } from 'rxjs/observable/from';
2324
import { concat } from 'rxjs/operators/concat';
2425
import { concatMap } from 'rxjs/operators/concatMap';
2526
import { ignoreElements } from 'rxjs/operators/ignoreElements';
@@ -131,11 +132,11 @@ export class NodeJsAsyncHost implements virtualFs.Host<fs.Stats> {
131132
};
132133
_recurseList(path);
133134

134-
return FromObservable.create(allFiles)
135+
return observableFrom(allFiles)
135136
.pipe(
136137
mergeMap(p => _callFs(fs.unlink, this._getSystemPath(p))),
137138
ignoreElements(),
138-
concat(FromObservable.create(allDirs).pipe(
139+
concat(observableFrom(allDirs).pipe(
139140
concatMap(p => _callFs(fs.rmdir, this._getSystemPath(p))),
140141
)),
141142
map(() => {}),
@@ -251,7 +252,7 @@ export class NodeJsSyncHost implements virtualFs.Host<fs.Stats> {
251252
_createDir(dirname(path));
252253
fs.writeFileSync(this._getSystemPath(path), new Uint8Array(content));
253254

254-
return Observable.empty<void>();
255+
return empty<void>();
255256
}
256257

257258
read(path: Path): Observable<virtualFs.FileBuffer> {
@@ -271,13 +272,13 @@ export class NodeJsSyncHost implements virtualFs.Host<fs.Stats> {
271272
fs.unlinkSync(this._getSystemPath(path));
272273
}
273274

274-
return Observable.empty();
275+
return empty();
275276
}
276277

277278
rename(from: Path, to: Path): Observable<void> {
278279
fs.renameSync(this._getSystemPath(from), this._getSystemPath(to));
279280

280-
return Observable.empty();
281+
return empty();
281282
}
282283

283284
list(path: Path): Observable<PathFragment[]> {
@@ -292,11 +293,11 @@ export class NodeJsSyncHost implements virtualFs.Host<fs.Stats> {
292293

293294
isDirectory(path: Path): Observable<boolean> {
294295
// tslint:disable-next-line:non-null-operator
295-
return this.stats(path) !.map(stat => stat.isDirectory());
296+
return this.stats(path) !.pipe(map(stat => stat.isDirectory()));
296297
}
297298
isFile(path: Path): Observable<boolean> {
298299
// tslint:disable-next-line:non-null-operator
299-
return this.stats(path) !.map(stat => stat.isFile());
300+
return this.stats(path) !.pipe(map(stat => stat.isFile()));
300301
}
301302

302303
// Some hosts may not support stats.

packages/angular_devkit/core/src/logger/indent.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8-
import 'rxjs/add/operator/map';
8+
import { map } from 'rxjs/operators';
99
import { Logger } from './logger';
1010

1111

@@ -24,21 +24,21 @@ export class IndentLogger extends Logger {
2424
super(name, parent);
2525

2626
indentationMap[indentation] = indentationMap[indentation] || [''];
27-
const map = indentationMap[indentation];
27+
const indentMap = indentationMap[indentation];
2828

29-
this._observable = this._observable.map(entry => {
29+
this._observable = this._observable.pipe(map(entry => {
3030
const l = entry.path.length;
31-
if (l >= map.length) {
32-
let current = map[map.length - 1];
33-
while (l >= map.length) {
31+
if (l >= indentMap.length) {
32+
let current = indentMap[indentMap.length - 1];
33+
while (l >= indentMap.length) {
3434
current += indentation;
35-
map.push(current);
35+
indentMap.push(current);
3636
}
3737
}
3838

39-
entry.message = map[l] + entry.message.split(/\n/).join('\n' + map[l]);
39+
entry.message = indentMap[l] + entry.message.split(/\n/).join('\n' + indentMap[l]);
4040

4141
return entry;
42-
});
42+
}));
4343
}
4444
}

packages/angular_devkit/core/src/logger/indent_spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
// tslint:disable:no-any
9+
import { toArray } from 'rxjs/operators';
910
import { IndentLogger } from './indent';
1011
import { LogEntry, Logger } from './logger';
1112

1213

1314
describe('IndentSpec', () => {
1415
it('works', (done: DoneFn) => {
1516
const logger = new IndentLogger('test');
16-
logger
17-
.toArray()
17+
logger.pipe(toArray())
1818
.toPromise()
1919
.then((observed: LogEntry[]) => {
2020
expect(observed).toEqual([

packages/angular_devkit/core/src/logger/logger_spec.ts

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,15 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
// tslint:disable:no-any
9-
import 'rxjs/add/operator/toArray';
10-
import 'rxjs/add/operator/toPromise';
9+
import { toArray } from 'rxjs/operators';
1110
import { JsonValue } from '../json/interface';
1211
import { Logger } from './logger';
1312

1413

1514
describe('Logger', () => {
1615
it('works', (done: DoneFn) => {
1716
const logger = new Logger('test');
18-
logger
19-
.toArray()
17+
logger.pipe(toArray())
2018
.toPromise()
2119
.then((observed: JsonValue[]) => {
2220
expect(observed).toEqual([
@@ -34,8 +32,7 @@ describe('Logger', () => {
3432
it('works with children', (done: DoneFn) => {
3533
const logger = new Logger('test');
3634
let hasCompleted = false;
37-
logger
38-
.toArray()
35+
logger.pipe(toArray())
3936
.toPromise()
4037
.then((observed: JsonValue[]) => {
4138
expect(observed).toEqual([
@@ -57,8 +54,7 @@ describe('Logger', () => {
5754
const logger = new Logger('test');
5855
logger.debug('woah');
5956

60-
logger
61-
.toArray()
57+
logger.pipe(toArray())
6258
.toPromise()
6359
.then((observed: JsonValue[]) => {
6460
expect(observed).toEqual([

packages/angular_devkit/core/src/logger/null-logger.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,14 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8-
import { Observable } from 'rxjs/Observable';
9-
import 'rxjs/add/observable/empty';
8+
import { empty } from 'rxjs/observable/empty';
109
import { Logger, LoggerApi } from './logger';
1110

1211

1312
export class NullLogger extends Logger {
1413
constructor(parent: Logger | null = null) {
1514
super('', parent);
16-
this._observable = Observable.empty();
15+
this._observable = empty();
1716
}
1817

1918
asApi(): LoggerApi {

packages/angular_devkit/core/src/logger/null-logger_spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,15 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8+
import { toArray } from 'rxjs/operators';
89
import { LogEntry, Logger } from './logger';
910
import { NullLogger } from './null-logger';
1011

1112

1213
describe('NullLogger', () => {
1314
it('works', (done: DoneFn) => {
1415
const logger = new NullLogger();
15-
logger
16-
.toArray()
16+
logger.pipe(toArray())
1717
.toPromise()
1818
.then((observed: LogEntry[]) => {
1919
expect(observed).toEqual([]);
@@ -27,8 +27,7 @@ describe('NullLogger', () => {
2727

2828
it('nullifies children', (done: DoneFn) => {
2929
const logger = new Logger('test');
30-
logger
31-
.toArray()
30+
logger.pipe(toArray())
3231
.toPromise()
3332
.then((observed: LogEntry[]) => {
3433
expect(observed).toEqual([]);

packages/angular_devkit/core/src/logger/transform-logger_spec.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,19 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88
// tslint:disable:no-any
9-
import 'rxjs/add/operator/filter';
10-
import 'rxjs/add/operator/map';
9+
import { filter, map, toArray } from 'rxjs/operators';
1110
import { LogEntry } from './logger';
1211
import { TransformLogger } from './transform-logger';
1312

1413

1514
describe('TransformLogger', () => {
1615
it('works', (done: DoneFn) => {
1716
const logger = new TransformLogger('test', stream => {
18-
return stream
19-
.filter(entry => entry.message != 'hello')
20-
.map(entry => (entry.message += '1', entry));
17+
return stream.pipe(
18+
filter(entry => entry.message != 'hello'),
19+
map(entry => (entry.message += '1', entry)));
2120
});
22-
logger
23-
.toArray()
21+
logger.pipe(toArray())
2422
.toPromise()
2523
.then((observed: LogEntry[]) => {
2624
expect(observed).toEqual([

packages/angular_devkit/core/src/virtual-fs/host/memory.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import { Observable } from 'rxjs/Observable';
99
import { Subject } from 'rxjs/Subject';
1010
import { ArrayObservable } from 'rxjs/observable/ArrayObservable';
11+
import { empty } from 'rxjs/observable/empty';
1112
import { _throw } from 'rxjs/observable/throw';
1213
import {
1314
FileAlreadyExistException,
@@ -106,7 +107,7 @@ export class SimpleMemoryHost implements Host<{}> {
106107
this._cache.set(path, content);
107108
this._updateWatchers(path, existed ? HostWatchEventType.Changed : HostWatchEventType.Created);
108109

109-
return Observable.empty<void>();
110+
return empty<void>();
110111
}
111112
read(path: Path): Observable<FileBuffer> {
112113
if (this._isDir(path)) {
@@ -131,7 +132,7 @@ export class SimpleMemoryHost implements Host<{}> {
131132
}
132133
this._updateWatchers(path, HostWatchEventType.Deleted);
133134

134-
return Observable.empty();
135+
return empty();
135136
}
136137
rename(from: Path, to: Path): Observable<void> {
137138
if (!this._cache.has(from)) {
@@ -158,7 +159,7 @@ export class SimpleMemoryHost implements Host<{}> {
158159

159160
this._updateWatchers(from, HostWatchEventType.Renamed);
160161

161-
return Observable.empty();
162+
return empty();
162163
}
163164

164165
list(path: Path): Observable<PathFragment[]> {

packages/angular_devkit/schematics/bin/schematics.ts

Lines changed: 30 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,13 @@ import {
2222
NodeModulesEngineHost,
2323
} from '@angular-devkit/schematics/tools';
2424
import * as minimist from 'minimist';
25-
import { Observable } from 'rxjs/Observable';
26-
import 'rxjs/add/operator/ignoreElements';
27-
25+
import { of as observableOf } from 'rxjs/observable/of';
26+
import {
27+
concat,
28+
concatMap,
29+
ignoreElements,
30+
map,
31+
} from 'rxjs/operators';
2832

2933
/**
3034
* Show usage of the CLI tool, and exit the process.
@@ -169,7 +173,7 @@ const dryRun: boolean = argv['dry-run'] === null ? debug : argv['dry-run'];
169173
const force = argv['force'];
170174

171175
/** This host is the original Tree created from the current directory. */
172-
const host = Observable.of(new FileSystemTree(new FileSystemHost(process.cwd())));
176+
const host = observableOf(new FileSystemTree(new FileSystemHost(process.cwd())));
173177

174178
// We need two sinks if we want to output what will happen, and actually do the work.
175179
// Note that fsSink is technically not used if `--dry-run` is passed, but creating the Sink
@@ -250,26 +254,31 @@ delete args._;
250254
* (if --dry-run was not passed or an error was detected by dryRun).
251255
*/
252256
schematic.call(args, host, { debug, logger: logger.asApi() })
253-
.map((tree: Tree) => Tree.optimize(tree))
254-
.concatMap((tree: Tree) => {
255-
return dryRunSink.commit(tree).ignoreElements().concat(Observable.of(tree));
256-
})
257-
.concatMap((tree: Tree) => {
258-
if (!error) {
259-
// Output the logging queue.
260-
loggingQueue.forEach(log => logger.info(log));
261-
}
257+
.pipe(
258+
map((tree: Tree) => Tree.optimize(tree)),
259+
concatMap((tree: Tree) => {
260+
return dryRunSink.commit(tree).pipe(
261+
ignoreElements(),
262+
concat(observableOf(tree)));
263+
}),
264+
concatMap((tree: Tree) => {
265+
if (!error) {
266+
// Output the logging queue.
267+
loggingQueue.forEach(log => logger.info(log));
268+
}
262269

263-
if (nothingDone) {
264-
logger.info('Nothing to be done.');
265-
}
270+
if (nothingDone) {
271+
logger.info('Nothing to be done.');
272+
}
266273

267-
if (dryRun || error) {
268-
return Observable.of(tree);
269-
}
274+
if (dryRun || error) {
275+
return observableOf(tree);
276+
}
270277

271-
return fsSink.commit(tree).ignoreElements().concat(Observable.of(tree));
272-
})
278+
return fsSink.commit(tree).pipe(
279+
ignoreElements(),
280+
concat(observableOf(tree)));
281+
}))
273282
.subscribe({
274283
error(err: Error) {
275284
// Add extra processing to output better error messages.

packages/angular_devkit/schematics/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@
2323
"@ngtools/json-schema": "^1.1.0",
2424
"@schematics/schematics": "0.0.0",
2525
"minimist": "^1.2.0",
26-
"rxjs": "^5.5.2"
26+
"rxjs": "5.5.4"
2727
}
2828
}

0 commit comments

Comments
 (0)