Skip to content

Commit b59f1ec

Browse files
committed
refactor(@angular-devkit/core): add a namespace for logging to core
1 parent f028e95 commit b59f1ec

File tree

19 files changed

+62
-58
lines changed

19 files changed

+62
-58
lines changed

bin/devkit-admin

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ process.chdir(path.join(__dirname, '..'));
3333
// This might get awkward, so we fallback to console if there was an error.
3434
let logger = null;
3535
try {
36-
logger = new (require('@angular-devkit/core').IndentLogger)('root');
36+
logger = new (require('@angular-devkit/core').logging.IndentLogger)('root');
3737
require('rxjs/add/operator/filter');
3838

3939
logger
@@ -65,6 +65,7 @@ try {
6565
warn: console.warn.bind(console),
6666
error: console.error.bind(console),
6767
fatal: x => { console.error(x); process.exit(100); },
68+
createChild: () => logger,
6869
};
6970
}
7071

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@
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 { IndentLogger, LogEntry, Logger, terminal } from '@angular-devkit/core';
8+
import { logging, terminal } from '@angular-devkit/core';
99
import 'rxjs/add/operator/filter';
1010

1111

1212
/**
1313
* A Logger that sends information to STDOUT and STDERR.
1414
*/
15-
export function createConsoleLogger(verbose = false): Logger {
16-
const logger = new IndentLogger('cling');
15+
export function createConsoleLogger(verbose = false): logging.Logger {
16+
const logger = new logging.IndentLogger('cling');
1717

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

packages/angular_devkit/core/src/index.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +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 * as logging from './logger';
9+
import * as terminal from './terminal';
10+
811
export * from './exception/exception';
912
export * from './json';
10-
export * from './logger';
11-
import * as terminal from './terminal';
1213
export * from './utils';
1314
export * from './virtual-fs';
1415

15-
16-
export { terminal };
16+
export {
17+
logging,
18+
terminal,
19+
};

packages/angular_devkit/schematics/src/engine/engine.ts

Lines changed: 2 additions & 2 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 { BaseException, NullLogger } from '@angular-devkit/core';
8+
import { BaseException, logging } from '@angular-devkit/core';
99
import { CollectionDescription, TypedSchematicContext } from '@angular-devkit/schematics';
1010
import 'rxjs/add/operator/map';
1111
import { Url } from 'url';
@@ -84,7 +84,7 @@ export class SchematicEngine<CollectionT extends object, SchematicT extends obje
8484
debug: parent && parent.debug || false,
8585
engine: this,
8686
logger: (parent && parent.logger && parent.logger.createChild(schematic.description.name))
87-
|| new NullLogger(),
87+
|| new logging.NullLogger(),
8888
schematic,
8989
strategy: (parent && parent.strategy !== undefined)
9090
? parent.strategy : this.defaultMergeStrategy,

packages/angular_devkit/schematics/src/engine/interface.ts

Lines changed: 2 additions & 2 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 { LoggerApi } from '@angular-devkit/core';
8+
import { logging } from '@angular-devkit/core';
99
import { Observable } from 'rxjs/Observable';
1010
import { Url } from 'url';
1111
import { FileEntry, MergeStrategy, Tree } from '../tree/interface';
@@ -128,7 +128,7 @@ export interface TypedSchematicContext<CollectionMetadataT extends object,
128128
SchematicMetadataT extends object> {
129129
readonly debug: boolean;
130130
readonly engine: Engine<CollectionMetadataT, SchematicMetadataT>;
131-
readonly logger: LoggerApi;
131+
readonly logger: logging.LoggerApi;
132132
readonly schematic: Schematic<CollectionMetadataT, SchematicMetadataT>;
133133
readonly strategy: MergeStrategy;
134134
}

packages/angular_devkit/schematics/src/engine/schematic_spec.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
// tslint:disable:non-null-operator
9-
import { NullLogger } from '@angular-devkit/core';
9+
import { logging } from '@angular-devkit/core';
1010
import { Observable } from 'rxjs/Observable';
1111
import 'rxjs/add/operator/toArray';
1212
import 'rxjs/add/operator/toPromise';
@@ -28,7 +28,7 @@ type SchematicT = {
2828

2929
const context = {
3030
debug: false,
31-
logger: new NullLogger(),
31+
logger: new logging.NullLogger(),
3232
strategy: MergeStrategy.Default,
3333
};
3434
const engine: Engine<CollectionT, SchematicT> = {

packages/angular_devkit/schematics/testing/schematic-test-runner.ts

Lines changed: 4 additions & 4 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 { Logger, schema } from '@angular-devkit/core';
8+
import { logging, schema } from '@angular-devkit/core';
99
import {
1010
Collection,
1111
DelegateTree,
@@ -36,12 +36,12 @@ export class SchematicTestRunner {
3636
private _engineHost = new NodeModulesTestEngineHost();
3737
private _engine: SchematicEngine<{}, {}> = new SchematicEngine(this._engineHost);
3838
private _collection: Collection<{}, {}>;
39-
private _logger: Logger;
39+
private _logger: logging.Logger;
4040
private _registry: schema.JsonSchemaRegistry;
4141

4242
constructor(private _collectionName: string, collectionPath: string) {
4343
this._engineHost.registerCollection(_collectionName, collectionPath);
44-
this._logger = new Logger('test');
44+
this._logger = new logging.Logger('test');
4545
this._registry = new schema.JsonSchemaRegistry();
4646

4747
this._engineHost.registerOptionsTransform((
@@ -66,7 +66,7 @@ export class SchematicTestRunner {
6666
this._collection = this._engine.createCollection(this._collectionName);
6767
}
6868

69-
get logger() { return this._logger; }
69+
get logger(): logging.Logger { return this._logger; }
7070

7171
runSchematicAsync(
7272
schematicName: string,

packages/schematics/schematics/schematic/files/src/my-schematic/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics';
66
export function mySchematic(options: any): Rule {
77
return (tree: Tree, context: SchematicContext) => {
88
// Show the options for this Schematics.
9-
// The logger here is at the discretion of the tooling. It can be ignored or only showing
9+
// The logging here is at the discretion of the tooling. It can be ignored or only showing
1010
// info/warnings/errors. If you use console.log() there is not guarantee it will be
1111
// propagated to a user in any way (for example, an IDE running this schematic might
1212
// have a logging window but no support for console.log).

scripts/build.ts

Lines changed: 12 additions & 12 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 { JsonObject, Logger } from '@angular-devkit/core';
8+
import { JsonObject, logging } from '@angular-devkit/core';
99
import * as fs from 'fs';
1010
import * as glob from 'glob';
1111
import * as path from 'path';
@@ -63,7 +63,7 @@ function _copy(from: string, to: string) {
6363
}
6464

6565

66-
function _recursiveCopy(from: string, to: string, logger: Logger) {
66+
function _recursiveCopy(from: string, to: string, logger: logging.Logger) {
6767
if (!fs.existsSync(from)) {
6868
logger.error(`File "${from}" does not exist.`);
6969
process.exit(4);
@@ -93,7 +93,7 @@ function _rimraf(p: string) {
9393
}
9494

9595

96-
function _clean(logger: Logger) {
96+
function _clean(logger: logging.Logger) {
9797
logger.info('Cleaning...');
9898
logger.info(' Removing dist/...');
9999
_rimraf(path.join(__dirname, '../dist'));
@@ -128,7 +128,7 @@ function _sortPackages() {
128128
}
129129

130130

131-
function _build(logger: Logger) {
131+
function _build(logger: logging.Logger) {
132132
logger.info('Building...');
133133
const tsConfigPath = path.relative(process.cwd(), path.join(__dirname, '../tsconfig.json'));
134134
try {
@@ -141,14 +141,14 @@ function _build(logger: Logger) {
141141
}
142142

143143

144-
export default function(argv: { local?: boolean }, logger: Logger) {
144+
export default function(argv: { local?: boolean }, logger: logging.Logger) {
145145
_clean(logger);
146146

147147
const sortedPackages = _sortPackages();
148148
_build(logger);
149149

150150
logger.info('Moving packages to dist/');
151-
const packageLogger = new Logger('packages', logger);
151+
const packageLogger = logger.createChild('packages');
152152
for (const packageName of sortedPackages) {
153153
packageLogger.info(packageName);
154154
const pkg = packages[packageName];
@@ -157,13 +157,13 @@ export default function(argv: { local?: boolean }, logger: Logger) {
157157
}
158158

159159
logger.info('Copying resources...');
160-
const resourceLogger = new Logger('resources', logger);
160+
const resourceLogger = logger.createChild('resources');
161161
for (const packageName of sortedPackages) {
162162
resourceLogger.info(packageName);
163163
const pkg = packages[packageName];
164164
const pkgJson = pkg.packageJson;
165165
const files = glob.sync(path.join(pkg.root, '**/*'), { dot: true, nodir: true });
166-
const subSubLogger = new Logger(packageName, resourceLogger);
166+
const subSubLogger = resourceLogger.createChild(packageName);
167167
subSubLogger.info(`${files.length} files total...`);
168168
const resources = files
169169
.map((fileName) => path.relative(pkg.root, fileName))
@@ -221,7 +221,7 @@ export default function(argv: { local?: boolean }, logger: Logger) {
221221
}
222222

223223
logger.info('Removing spec files...');
224-
const specLogger = new Logger('specfiles', logger);
224+
const specLogger = logger.createChild('specfiles');
225225
for (const packageName of sortedPackages) {
226226
specLogger.info(packageName);
227227
const pkg = packages[packageName];
@@ -231,7 +231,7 @@ export default function(argv: { local?: boolean }, logger: Logger) {
231231
}
232232

233233
logger.info('Building ejs templates...');
234-
const templateLogger = new Logger('templates', logger);
234+
const templateLogger = logger.createChild('templates');
235235
const templateCompiler = require('@angular-devkit/core').template;
236236
for (const packageName of sortedPackages) {
237237
templateLogger.info(packageName);
@@ -257,7 +257,7 @@ export default function(argv: { local?: boolean }, logger: Logger) {
257257

258258
logger.info('Setting versions...');
259259

260-
const versionLogger = new Logger('versions', logger);
260+
const versionLogger = logger.createChild('versions');
261261
for (const packageName of sortedPackages) {
262262
versionLogger.info(packageName);
263263
const pkg = packages[packageName];
@@ -289,7 +289,7 @@ export default function(argv: { local?: boolean }, logger: Logger) {
289289
}
290290

291291
logger.info('Tarring all packages...');
292-
const tarLogger = new Logger('license', logger);
292+
const tarLogger = logger.createChild('license');
293293
Object.keys(packages).forEach(pkgName => {
294294
const pkg = packages[pkgName];
295295
tarLogger.info(`${pkgName} => ${pkg.tar}`);

scripts/lint.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +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 { Logger } from '@angular-devkit/core';
8+
import { logging } from '@angular-devkit/core';
99
import { ParsedArgs } from 'minimist';
1010
import * as path from 'path';
1111
import { Configuration, ILinterOptions, Linter, findFormatter } from 'tslint';
1212
import * as ts from 'typescript';
1313

1414

15-
function _buildRules(logger: Logger) {
15+
function _buildRules(logger: logging.Logger) {
1616
const tsConfigPath = path.join(__dirname, '../rules/tsconfig.json');
1717
const configFile = ts.readConfigFile(tsConfigPath, ts.sys.readFile);
1818

@@ -36,7 +36,7 @@ function _buildRules(logger: Logger) {
3636
}
3737

3838

39-
export default function (options: ParsedArgs, logger: Logger) {
39+
export default function (options: ParsedArgs, logger: logging.Logger) {
4040
_buildRules(logger);
4141

4242
const lintOptions: ILinterOptions = {

0 commit comments

Comments
 (0)