/** * @license * Copyright (c) 2016 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at * http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at * http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at * http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at * http://polymer.github.io/PATENTS.txt */ // Be mindful of adding imports here, as this is on the hot path of all // commands. import {ArgDescriptor} from 'command-line-args'; import {UsageGroup} from 'command-line-usage'; import {ProjectConfig} from 'polymer-project-config'; export type CommandOptions = { // tslint:disable-next-line: no-any Scary and unsafe! [name: string]: any }; export interface Command { name: string; aliases: string[]; description: string; args: ArgDescriptor[]; run(options: CommandOptions, config: ProjectConfig): Promise; /** * Documentation to append onto the output of `polymer help commandName`. */ extraUsageGroups?(config: ProjectConfig): Promise; } /** * A command may return a CommandResult to indicate an exit code. */ export class CommandResult { constructor(public exitCode: number) { } }