Skip to content

Commit b5050fa

Browse files
committed
refactor: Update rxjs operators to be lettable
Fixes #8912
1 parent d53eb59 commit b5050fa

18 files changed

+74
-88
lines changed

package-lock.json

+16-14
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
"postcss-url": "^7.1.2",
8181
"raw-loader": "^0.5.1",
8282
"resolve": "^1.1.7",
83-
"rxjs": "^5.5.2",
83+
"rxjs": "^5.5.6",
8484
"sass-loader": "^6.0.3",
8585
"semver": "^5.3.0",
8686
"silent-error": "^1.0.0",
@@ -121,7 +121,7 @@
121121
"@types/node": "^6.0.84",
122122
"@types/request": "~2.0.0",
123123
"@types/semver": "^5.3.30",
124-
"@types/source-map": "^0.5.0",
124+
"@types/source-map": "0.5.2",
125125
"@types/webpack": "^3.0.5",
126126
"@types/webpack-sources": "^0.1.3",
127127
"conventional-changelog": "1.1.0",

packages/@angular/cli/commands/generate.ts

-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ const stringUtils = require('ember-cli-string-utils');
33
import { oneLine } from 'common-tags';
44
import { CliConfig } from '../models/config';
55

6-
import 'rxjs/add/observable/of';
7-
import 'rxjs/add/operator/ignoreElements';
86
import {
97
getCollection,
108
getEngineHost

packages/@angular/cli/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@
6565
"postcss-url": "^7.1.2",
6666
"raw-loader": "^0.5.1",
6767
"resolve": "^1.1.7",
68-
"rxjs": "^5.5.2",
68+
"rxjs": "^5.5.6",
6969
"sass-loader": "^6.0.3",
7070
"semver": "^5.1.0",
7171
"silent-error": "^1.0.0",

packages/@angular/cli/tasks/lint.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ export interface CliLintConfig {
2525
export class LintTaskOptions {
2626
fix: boolean;
2727
force: boolean;
28-
format? = 'prose';
29-
silent? = false;
30-
typeCheck? = false;
28+
format ? = 'prose';
29+
silent ? = false;
30+
typeCheck ? = false;
3131
configs: Array<CliLintConfig>;
3232
}
3333

packages/@angular/cli/tasks/schematic-run.ts

+16-13
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ import {
88
Tree
99
} from '@angular-devkit/schematics';
1010
import { FileSystemHost } from '@angular-devkit/schematics/tools';
11-
import { Observable } from 'rxjs/Observable';
11+
import { of as observableOf } from 'rxjs/observable/of';
1212
import * as path from 'path';
1313
import chalk from 'chalk';
1414
import { CliConfig } from '../models/config';
15-
import 'rxjs/add/operator/concatMap';
16-
import 'rxjs/add/operator/map';
15+
import { concat, concatMap, ignoreElements, map } from 'rxjs/operators';
1716
import { getCollection, getSchematic } from '../utilities/schematics';
1817

1918
const { green, red, yellow } = chalk;
@@ -58,7 +57,7 @@ export default Task.extend({
5857
const opts = { ...taskOptions, ...preppedOptions };
5958

6059
const tree = emptyHost ? new EmptyTree() : new FileSystemTree(new FileSystemHost(workingDir));
61-
const host = Observable.of(tree);
60+
const host = observableOf(tree);
6261

6362
const dryRunSink = new DryRunSink(workingDir, opts.force);
6463
const fsSink = new FileSystemSink(workingDir, opts.force);
@@ -111,22 +110,26 @@ export default Task.extend({
111110
});
112111

113112
return new Promise((resolve, reject) => {
114-
schematic.call(opts, host)
115-
.map((tree: Tree) => Tree.optimize(tree))
116-
.concatMap((tree: Tree) => {
117-
return dryRunSink.commit(tree).ignoreElements().concat(Observable.of(tree));
118-
})
119-
.concatMap((tree: Tree) => {
113+
schematic.call(opts, host).pipe(
114+
map((tree: Tree) => Tree.optimize(tree)),
115+
concatMap((tree: Tree) => {
116+
return dryRunSink.commit(tree).pipe(
117+
ignoreElements(),
118+
concat(observableOf(tree)));
119+
}),
120+
concatMap((tree: Tree) => {
120121
if (!error) {
121122
// Output the logging queue.
122123
loggingQueue.forEach(log => ui.writeLine(` ${log.color(log.keyword)} ${log.message}`));
123124
}
124125

125126
if (opts.dryRun || error) {
126-
return Observable.of(tree);
127+
return observableOf(tree);
127128
}
128-
return fsSink.commit(tree).ignoreElements().concat(Observable.of(tree));
129-
})
129+
return fsSink.commit(tree).pipe(
130+
ignoreElements(),
131+
concat(observableOf(tree)));
132+
}))
130133
.subscribe({
131134
error(err) {
132135
ui.writeLine(red(`Error: ${err.message}`));

packages/@angular/cli/utilities/schematics.ts

-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ import {
1717
NodeModulesEngineHost
1818
} from '@angular-devkit/schematics/tools';
1919
import { SchemaClassFactory } from '@ngtools/json-schema';
20-
import 'rxjs/add/operator/concatMap';
21-
import 'rxjs/add/operator/map';
2220

2321
const SilentError = require('silent-error');
2422

packages/@ngtools/logger/src/console-logger-stack.spec.ts

+4-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import {LogEntry, Logger} from './logger';
22
import {ConsoleLoggerStack} from './console-logger-stack';
33
import {NullLogger} from './null-logger';
4+
import {toArray} from 'rxjs/operators';
45

56

67
describe('ConsoleLoggerStack', () => {
78
it('works', (done: DoneFn) => {
89
const logger = ConsoleLoggerStack.start('test');
9-
logger
10-
.toArray()
10+
logger.pipe(toArray())
1111
.toPromise()
1212
.then((observed: LogEntry[]) => {
1313
expect(observed).toEqual([
@@ -26,8 +26,7 @@ describe('ConsoleLoggerStack', () => {
2626
const oldConsoleLog = console.log;
2727
const logger = ConsoleLoggerStack.start('test');
2828
expect(console.log).not.toBe(oldConsoleLog);
29-
logger
30-
.toArray()
29+
logger.pipe(toArray())
3130
.toPromise()
3231
.then((observed: LogEntry[]) => {
3332
expect(observed).toEqual([
@@ -55,8 +54,7 @@ describe('ConsoleLoggerStack', () => {
5554
const logger = new Logger('test');
5655
ConsoleLoggerStack.start(logger);
5756
expect(console.log).not.toBe(oldConsoleLog);
58-
logger
59-
.toArray()
57+
logger.pipe(toArray())
6058
.toPromise()
6159
.then((observed: LogEntry[]) => {
6260
expect(observed).toEqual([

packages/@ngtools/logger/src/indent.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {LogEntry, Logger} from './logger';
22
import {IndentLogger} from './indent';
3+
import {toArray} from 'rxjs/operators';
34

45

56
describe('IndentSpec', () => {
67
it('works', (done: DoneFn) => {
78
const logger = new IndentLogger('test');
8-
logger
9-
.toArray()
9+
logger.pipe(toArray())
1010
.toPromise()
1111
.then((observed: LogEntry[]) => {
1212
expect(observed).toEqual([
+9-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1+
import { map } from 'rxjs/operators';
12
import {Logger} from './logger';
23

3-
import 'rxjs/add/operator/map';
4-
54

65
/**
76
* Keep an map of indentation => array of indentations based on the level.
@@ -18,20 +17,20 @@ export class IndentLogger extends Logger {
1817
super(name, parent);
1918

2019
indentationMap[indentation] = indentationMap[indentation] || [''];
21-
const map = indentationMap[indentation];
20+
const indentMap = indentationMap[indentation];
2221

23-
this._observable = this._observable.map(entry => {
22+
this._observable = this._observable.pipe(map(entry => {
2423
const l = entry.path.length;
25-
if (l >= map.length) {
26-
let current = map[map.length - 1];
27-
while (l >= map.length) {
24+
if (l >= indentMap.length) {
25+
let current = indentMap[indentMap.length - 1];
26+
while (l >= indentMap.length) {
2827
current += indentation;
29-
map.push(current);
28+
indentMap.push(current);
3029
}
3130
}
3231

33-
entry.message = map[l] + entry.message;
32+
entry.message = indentMap[l] + entry.message;
3433
return entry;
35-
});
34+
}));
3635
}
3736
}

packages/@ngtools/logger/src/logger.spec.ts

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
11
import {Logger, JsonValue} from './logger';
2-
import 'rxjs/add/operator/toArray';
3-
import 'rxjs/add/operator/toPromise';
2+
import {toArray} from 'rxjs/operators';
43

54

65
describe('Logger', () => {
76
it('works', (done: DoneFn) => {
87
const logger = new Logger('test');
9-
logger
10-
.toArray()
8+
logger.pipe(toArray())
119
.toPromise()
1210
.then((observed: JsonValue[]) => {
1311
expect(observed).toEqual([
@@ -25,8 +23,7 @@ describe('Logger', () => {
2523
it('works with children', (done: DoneFn) => {
2624
const logger = new Logger('test');
2725
let hasCompleted = false;
28-
logger
29-
.toArray()
26+
logger.pipe(toArray())
3027
.toPromise()
3128
.then((observed: JsonValue[]) => {
3229
expect(observed).toEqual([

packages/@ngtools/logger/src/null-logger.spec.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import {NullLogger} from './null-logger';
22
import {LogEntry, Logger} from './logger';
3+
import {toArray} from 'rxjs/operators';
34

45

56
describe('NullLogger', () => {
67
it('works', (done: DoneFn) => {
78
const logger = new NullLogger();
8-
logger
9-
.toArray()
9+
logger.pipe(toArray())
1010
.toPromise()
1111
.then((observed: LogEntry[]) => {
1212
expect(observed).toEqual([]);
@@ -20,8 +20,7 @@ describe('NullLogger', () => {
2020

2121
it('nullifies children', (done: DoneFn) => {
2222
const logger = new Logger('test');
23-
logger
24-
.toArray()
23+
logger.pipe(toArray())
2524
.toPromise()
2625
.then((observed: LogEntry[]) => {
2726
expect(observed).toEqual([]);
+3-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
import {Logger} from './logger';
2-
3-
import {Observable} from 'rxjs/Observable';
4-
5-
import 'rxjs/add/observable/empty';
1+
import { empty } from 'rxjs/observable/empty';
2+
import { Logger } from './logger';
63

74

85
export class NullLogger extends Logger {
96
constructor(parent: Logger | null = null) {
107
super('', parent);
11-
this._observable = Observable.empty();
8+
this._observable = empty();
129
}
1310
}

packages/@ngtools/logger/src/transform-logger.spec.ts

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,19 @@
11
import {TransformLogger} from './transform-logger';
22
import {LogEntry} from './logger';
3-
4-
import 'rxjs/add/operator/filter';
5-
import 'rxjs/add/operator/map';
3+
import {filter, map, toArray} from 'rxjs/operators';
64

75

86
describe('TransformLogger', () => {
97
it('works', (done: DoneFn) => {
108
const logger = new TransformLogger('test', stream => {
11-
return stream
12-
.filter(entry => entry.message != 'hello')
13-
.map(entry => {
9+
return stream.pipe(
10+
filter(entry => entry.message != 'hello'),
11+
map(entry => {
1412
entry.message += '1';
1513
return entry;
16-
});
14+
}));
1715
});
18-
logger
19-
.toArray()
16+
logger.pipe(toArray())
2017
.toPromise()
2118
.then((observed: LogEntry[]) => {
2219
expect(observed).toEqual([

packages/@ngtools/webpack/src/angular_compiler_plugin.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ export class AngularCompilerPlugin implements Tapable {
273273
this._entryModule = this._options.entryModule;
274274
} else if (this._compilerOptions.entryModule) {
275275
this._entryModule = path.resolve(this._basePath,
276-
this._compilerOptions.entryModule);
276+
this._compilerOptions.entryModule as string); // temporary cast for type issue
277277
}
278278

279279
// Set platform.

tests/e2e/tests/basic/assets.ts

-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ export default function () {
131131
'src/app/app.component.ts': `
132132
import { Component } from '@angular/core';
133133
import { Http, Response } from '@angular/http';
134-
import 'rxjs/add/operator/map';
135134
136135
@Component({
137136
selector: 'app-root',

0 commit comments

Comments
 (0)