1
0
mirror of https://github.com/angular/angular-cli.git synced 2025-05-22 23:15:56 +08:00

refactor: Update rxjs operators to be lettable

Fixes 
This commit is contained in:
Mike Brocchi 2017-12-21 13:49:32 -05:00 committed by Hans
parent e654fb2b3f
commit 5a736bd90b
20 changed files with 66 additions and 82 deletions

10
package-lock.json generated

@ -271,9 +271,9 @@
"dev": true
},
"@types/source-map": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.1.tgz",
"integrity": "sha512-/GVAjL1Y8puvZab63n8tsuBiYwZt1bApMdx58/msQ9ID5T05ov+wm/ZV1DvYC/DKKEygpTJViqQvkh5Rhrl4CA==",
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/@types/source-map/-/source-map-0.5.2.tgz",
"integrity": "sha512-++w4WmMbk3dS3UeHGzAG+xJOSz5Xqtjys/TBkqG3qp3SeWE7Wwezqe5eB7B51cxUyh4PW7bwVotpsLdBK0D8cw==",
"dev": true
},
"@types/tapable": {
@ -288,7 +288,7 @@
"integrity": "sha512-BdFLCZW0GTl31AbqXSak8ss/MqEZ3DN2MH9rkAyGoTuzK7ifGUlX+u0nfbWeTsa7IPcZhtn8BlpYBXSV+vqGhQ==",
"dev": true,
"requires": {
"@types/source-map": "0.5.1"
"@types/source-map": "0.5.2"
}
},
"@types/webpack": {
@ -310,7 +310,7 @@
"requires": {
"@types/node": "6.0.88",
"@types/source-list-map": "0.1.2",
"@types/source-map": "0.5.1"
"@types/source-map": "0.5.2"
}
},
"JSONStream": {

@ -122,7 +122,7 @@
"@types/node": "^6.0.84",
"@types/request": "~2.0.0",
"@types/semver": "^5.3.30",
"@types/source-map": "^0.5.0",
"@types/source-map": "0.5.2",
"@types/webpack": "^3.0.5",
"@types/webpack-sources": "^0.1.3",
"conventional-changelog": "1.1.0",

@ -3,8 +3,6 @@ const stringUtils = require('ember-cli-string-utils');
import { oneLine } from 'common-tags';
import { CliConfig } from '../models/config';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/ignoreElements';
import {
getCollection,
getEngineHost

@ -67,7 +67,7 @@
"postcss-url": "^7.1.2",
"raw-loader": "^0.5.1",
"resolve": "^1.1.7",
"rxjs": "^5.5.2",
"rxjs": "^5.5.6",
"sass-loader": "^6.0.6",
"semver": "^5.1.0",
"silent-error": "^1.0.0",

@ -25,9 +25,9 @@ export interface CliLintConfig {
export class LintTaskOptions {
fix: boolean;
force: boolean;
format? = 'prose';
silent? = false;
typeCheck? = false;
format ? = 'prose';
silent ? = false;
typeCheck ? = false;
configs: Array<CliLintConfig>;
}

@ -8,12 +8,11 @@ import {
Tree
} from '@angular-devkit/schematics';
import { FileSystemHost } from '@angular-devkit/schematics/tools';
import { Observable } from 'rxjs/Observable';
import { of as observableOf } from 'rxjs/observable/of';
import * as path from 'path';
import chalk from 'chalk';
import { CliConfig } from '../models/config';
import 'rxjs/add/operator/concatMap';
import 'rxjs/add/operator/map';
import { concat, concatMap, ignoreElements, map } from 'rxjs/operators';
import { getCollection, getSchematic } from '../utilities/schematics';
const { green, red, yellow } = chalk;
@ -58,7 +57,7 @@ export default Task.extend({
const opts = { ...taskOptions, ...preppedOptions };
const tree = emptyHost ? new EmptyTree() : new FileSystemTree(new FileSystemHost(workingDir));
const host = Observable.of(tree);
const host = observableOf(tree);
const dryRunSink = new DryRunSink(workingDir, opts.force);
const fsSink = new FileSystemSink(workingDir, opts.force);
@ -111,22 +110,26 @@ export default Task.extend({
});
return new Promise((resolve, reject) => {
schematic.call(opts, host)
.map((tree: Tree) => Tree.optimize(tree))
.concatMap((tree: Tree) => {
return dryRunSink.commit(tree).ignoreElements().concat(Observable.of(tree));
})
.concatMap((tree: Tree) => {
schematic.call(opts, host).pipe(
map((tree: Tree) => Tree.optimize(tree)),
concatMap((tree: Tree) => {
return dryRunSink.commit(tree).pipe(
ignoreElements(),
concat(observableOf(tree)));
}),
concatMap((tree: Tree) => {
if (!error) {
// Output the logging queue.
loggingQueue.forEach(log => ui.writeLine(` ${log.color(log.keyword)} ${log.message}`));
}
if (opts.dryRun || error) {
return Observable.of(tree);
return observableOf(tree);
}
return fsSink.commit(tree).ignoreElements().concat(Observable.of(tree));
})
return fsSink.commit(tree).pipe(
ignoreElements(),
concat(observableOf(tree)));
}))
.subscribe({
error(err) {
ui.writeLine(red(`Error: ${err.message}`));

@ -20,8 +20,6 @@ import {
validateOptionsWithSchema
} from '@angular-devkit/schematics/tools';
import { SchemaClassFactory } from '@ngtools/json-schema';
import 'rxjs/add/operator/concatMap';
import 'rxjs/add/operator/map';
const SilentError = require('silent-error');

@ -1,13 +1,13 @@
import {LogEntry, Logger} from './logger';
import {ConsoleLoggerStack} from './console-logger-stack';
import {NullLogger} from './null-logger';
import {toArray} from 'rxjs/operators';
describe('ConsoleLoggerStack', () => {
it('works', (done: DoneFn) => {
const logger = ConsoleLoggerStack.start('test');
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([
@ -26,8 +26,7 @@ describe('ConsoleLoggerStack', () => {
const oldConsoleLog = console.log;
const logger = ConsoleLoggerStack.start('test');
expect(console.log).not.toBe(oldConsoleLog);
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([
@ -55,8 +54,7 @@ describe('ConsoleLoggerStack', () => {
const logger = new Logger('test');
ConsoleLoggerStack.start(logger);
expect(console.log).not.toBe(oldConsoleLog);
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([

@ -1,12 +1,12 @@
import {LogEntry, Logger} from './logger';
import {IndentLogger} from './indent';
import {toArray} from 'rxjs/operators';
describe('IndentSpec', () => {
it('works', (done: DoneFn) => {
const logger = new IndentLogger('test');
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([

@ -1,7 +1,6 @@
import { map } from 'rxjs/operators';
import {Logger} from './logger';
import 'rxjs/add/operator/map';
/**
* Keep an map of indentation => array of indentations based on the level.
@ -18,20 +17,20 @@ export class IndentLogger extends Logger {
super(name, parent);
indentationMap[indentation] = indentationMap[indentation] || [''];
const map = indentationMap[indentation];
const indentMap = indentationMap[indentation];
this._observable = this._observable.map(entry => {
this._observable = this._observable.pipe(map(entry => {
const l = entry.path.length;
if (l >= map.length) {
let current = map[map.length - 1];
while (l >= map.length) {
if (l >= indentMap.length) {
let current = indentMap[indentMap.length - 1];
while (l >= indentMap.length) {
current += indentation;
map.push(current);
indentMap.push(current);
}
}
entry.message = map[l] + entry.message;
entry.message = indentMap[l] + entry.message;
return entry;
});
}));
}
}

@ -1,13 +1,11 @@
import {Logger, JsonValue} from './logger';
import 'rxjs/add/operator/toArray';
import 'rxjs/add/operator/toPromise';
import {toArray} from 'rxjs/operators';
describe('Logger', () => {
it('works', (done: DoneFn) => {
const logger = new Logger('test');
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: JsonValue[]) => {
expect(observed).toEqual([
@ -25,8 +23,7 @@ describe('Logger', () => {
it('works with children', (done: DoneFn) => {
const logger = new Logger('test');
let hasCompleted = false;
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: JsonValue[]) => {
expect(observed).toEqual([

@ -1,12 +1,12 @@
import {NullLogger} from './null-logger';
import {LogEntry, Logger} from './logger';
import {toArray} from 'rxjs/operators';
describe('NullLogger', () => {
it('works', (done: DoneFn) => {
const logger = new NullLogger();
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([]);
@ -20,8 +20,7 @@ describe('NullLogger', () => {
it('nullifies children', (done: DoneFn) => {
const logger = new Logger('test');
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([]);

@ -1,13 +1,10 @@
import {Logger} from './logger';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/observable/empty';
import { empty } from 'rxjs/observable/empty';
import { Logger } from './logger';
export class NullLogger extends Logger {
constructor(parent: Logger | null = null) {
super('', parent);
this._observable = Observable.empty();
this._observable = empty();
}
}

@ -1,22 +1,19 @@
import {TransformLogger} from './transform-logger';
import {LogEntry} from './logger';
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/map';
import {filter, map, toArray} from 'rxjs/operators';
describe('TransformLogger', () => {
it('works', (done: DoneFn) => {
const logger = new TransformLogger('test', stream => {
return stream
.filter(entry => entry.message != 'hello')
.map(entry => {
return stream.pipe(
filter(entry => entry.message != 'hello'),
map(entry => {
entry.message += '1';
return entry;
});
}));
});
logger
.toArray()
logger.pipe(toArray())
.toPromise()
.then((observed: LogEntry[]) => {
expect(observed).toEqual([

@ -273,7 +273,7 @@ export class AngularCompilerPlugin implements Tapable {
this._entryModule = this._options.entryModule;
} else if (this._compilerOptions.entryModule) {
this._entryModule = path.resolve(this._basePath,
this._compilerOptions.entryModule);
this._compilerOptions.entryModule as string); // temporary cast for type issue
}
// Set platform.

@ -6,7 +6,7 @@ const validateCommitMessage = require('./validate-commit-message');
const execSync = require('child_process').execSync;
const chalk = require('chalk');
const Logger = require('@ngtools/logger').Logger;
require('rxjs/add/operator/filter');
const filter = require('rxjs/operators').filter;
// Configure logger
const logger = new Logger('test-commit-messages');
@ -25,7 +25,7 @@ logger.subscribe((entry) => {
});
logger
.filter((entry) => entry.level === 'fatal')
.pipe(filter((entry) => entry.level === 'fatal'))
.subscribe(() => {
process.stderr.write('A fatal error happened. See details above.');
process.exit(1);

@ -4,7 +4,7 @@ const path = require('path');
const chalk = require('chalk');
const spdxSatisfies = require('spdx-satisfies');
const Logger = require('@ngtools/logger').Logger;
require('rxjs/add/operator/filter');
const filter = require('rxjs/operators').filter;
// Configure logger
const logger = new Logger('test-licenses');
@ -23,7 +23,7 @@ logger.subscribe((entry) => {
});
logger
.filter((entry) => entry.level == 'fatal')
.pipe(filter((entry) => entry.level == 'fatal'))
.subscribe(() => {
process.stderr.write('A fatal error happened. See details above.');
process.exit(1);

@ -131,7 +131,6 @@ export default function () {
'src/app/app.component.ts': `
import { Component } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';
@Component({
selector: 'app-root',

@ -14,8 +14,7 @@ import * as path from 'path';
import {setGlobalVariable} from './e2e/utils/env';
// RxJS
import 'rxjs/add/operator/filter';
import 'rxjs/add/observable/empty';
import {filter} from 'rxjs/operators';
Error.stackTraceLimit = Infinity;
@ -73,7 +72,7 @@ process.exitCode = 255;
ConsoleLoggerStack.start(new IndentLogger('name'))
.filter((entry: LogEntry) => (entry.level != 'debug' || argv.verbose))
.pipe(filter((entry: LogEntry) => (entry.level != 'debug' || argv.verbose)))
.subscribe((entry: LogEntry) => {
let color: (s: string) => string = white;
let output = process.stdout;

@ -5,7 +5,7 @@ import chalk from 'chalk';
import * as minimist from 'minimist';
import 'rxjs/add/operator/filter';
import {filter} from 'rxjs/operators';
const { bold, red, yellow, white } = chalk;
@ -17,7 +17,7 @@ const argv = minimist(process.argv.slice(2), {
const rootLogger = new IndentLogger('cling');
rootLogger
.filter((entry: LogEntry) => (entry.level != 'debug' || argv['verbose']))
.pipe(filter((entry: LogEntry) => (entry.level != 'debug' || argv['verbose'])))
.subscribe((entry: LogEntry) => {
let color: (s: string) => string = white;
let output = process.stdout;
@ -32,7 +32,7 @@ rootLogger
});
rootLogger
.filter((entry: LogEntry) => entry.level == 'fatal')
.pipe(filter((entry: LogEntry) => entry.level == 'fatal'))
.subscribe(() => {
process.stderr.write('A fatal error happened. See details above.');
process.exit(100);