polymer-cli
Version:
A commandline tool for Polymer projects
48 lines (41 loc) • 1.41 kB
text/typescript
/**
* @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<CommandResult|void>;
/**
* Documentation to append onto the output of `polymer help commandName`.
*/
extraUsageGroups?(config: ProjectConfig): Promise<UsageGroup[]>;
}
/**
* A command may return a CommandResult to indicate an exit code.
*/
export class CommandResult {
constructor(public exitCode: number) {
}
}