Hans Larsen 2e58fb33ca feat(@angular/cli): add custom implementation for analytics for commands
Some commands (like schematics) need to have custom reporting for
analytics. Schematics and Architect commands need to verify if the
schematic/architect builder run is in the safelist, for example.
2019-03-20 15:08:07 -07:00

43 lines
1.4 KiB
TypeScript

/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { AnalyticsDimensions } from '../models/analytics';
import { ArchitectCommand, ArchitectCommandOptions } from '../models/architect-command';
import { Arguments } from '../models/interface';
import { Version } from '../upgrade/version';
import { Schema as BuildCommandSchema } from './build';
import { Schema as ServeCommandSchema } from './serve';
export class ServeCommand extends ArchitectCommand<ServeCommandSchema> {
public readonly target = 'serve';
public validate(_options: ArchitectCommandOptions & Arguments) {
// Check Angular versions.
Version.assertCompatibleAngularVersion(this.workspace.root);
return true;
}
public async run(options: ArchitectCommandOptions & Arguments) {
return this.runArchitectTarget(options);
}
async reportAnalytics(
paths: string[],
options: BuildCommandSchema & Arguments,
dimensions: (boolean | number | string)[] = [],
metrics: (boolean | number | string)[] = [],
): Promise<void> {
if (options.buildEventLog !== undefined) {
dimensions[AnalyticsDimensions.NgBuildBuildEventLog] = true;
}
return super.reportAnalytics(paths, options, dimensions, metrics);
}
}