mirror of
https://github.com/wassname/DefinitelyTyped.git
synced 2026-09-09 11:13:57 +08:00
Merge pull request #7257 from iplabs/yeoman-generator
Improve yeoman-generator.d.ts
This commit is contained in:
@@ -35,6 +35,7 @@ var compose = generator.composeWith('namespace', 'any', {
|
||||
});
|
||||
|
||||
compose.defaultFor('name');
|
||||
compose.destinationRoot() === 'string';
|
||||
compose.destinationRoot('rootPath') === 'string';
|
||||
compose.determineAppname();
|
||||
compose.getCollisionFilter()('output');
|
||||
@@ -59,7 +60,8 @@ compose.run('args', () => {
|
||||
compose.runHooks(() => {
|
||||
return;
|
||||
});
|
||||
returnString = compose.sourceRoot('rootPath') === 'string';
|
||||
compose.sourceRoot('rootPath') === 'string';
|
||||
compose.sourceRoot() === 'string';
|
||||
|
||||
var assert = yeoman.assert;
|
||||
|
||||
@@ -112,3 +114,89 @@ runContext.inDir('dirPath')
|
||||
.withGenerators(['deps', 'deps'])
|
||||
.withOptions('opts')
|
||||
.withPrompts('answers');
|
||||
|
||||
// http://yeoman.io/generator/Base.html#destinationPath
|
||||
generator.destinationPath() === 'string';
|
||||
generator.destinationPath('path1') === 'string';
|
||||
generator.destinationPath('path1', 'path2') === 'string';
|
||||
generator.destinationPath('path1', 'path2', 'path3') === 'string';
|
||||
|
||||
// http://yeoman.io/generator/Base.html#templatePath
|
||||
generator.templatePath() === 'string';
|
||||
generator.templatePath('path1') === 'string';
|
||||
generator.templatePath('path1', 'path2') === 'string';
|
||||
generator.templatePath('path1', 'path2', 'path3') === 'string';
|
||||
|
||||
// http://yeoman.io/generator/Base.html#npmInstall
|
||||
generator.npmInstall();
|
||||
generator.npmInstall('pkg');
|
||||
generator.npmInstall([ 'pkg1', 'pkg2' ]);
|
||||
generator.npmInstall('pkg', {});
|
||||
generator.npmInstall('pkg', {}, () => {});
|
||||
|
||||
// http://yeoman.io/generator/Base.html#installDependencies
|
||||
generator.installDependencies();
|
||||
generator.installDependencies({});
|
||||
generator.installDependencies({ npm: true });
|
||||
generator.installDependencies({ bower: true });
|
||||
generator.installDependencies({ skipMessage: true });
|
||||
generator.installDependencies({ callback: () => {} });
|
||||
|
||||
// http://yeoman.io/generator/Base.html#spawnCommand
|
||||
generator.spawnCommand('command', []);
|
||||
generator.spawnCommand('command', [ '-arg' ]);
|
||||
generator.spawnCommand('command', [], {});
|
||||
|
||||
// http://yeoman.io/generator/Base.html#spawnCommandSync
|
||||
generator.spawnCommandSync('command', []);
|
||||
generator.spawnCommandSync('command', [ '-arg' ]);
|
||||
generator.spawnCommandSync('command', [], {});
|
||||
|
||||
// http://yeoman.io/generator/Base.html#option
|
||||
generator.options['opt'] === 'string';
|
||||
|
||||
// http://yeoman.io/generator/Base.html#prompt
|
||||
// https://github.com/SBoudrias/Inquirer.js
|
||||
generator.prompt({ name: 'Name', message: 'Message' }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: (answers) => 'Message' }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', choices: [ 'c1', 'c2' ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', choices: [ { name: 'Choice 1', value: 'c1' } ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', choices: (answers) => [ 'c1', 'c2' ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', choices: (answers) => [ { name: 'Choice 1', value: 'c1' } ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', choices: (answers) => [ { name: 'Choice 1', value: 'c1', short: '1' } ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: 'string' }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: 10 }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: [ 'string' ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: [ 10 ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: (answers) => [ 'string' ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: (answers) => [ 10 ] }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: (answers) => 'string' }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', default: (answers) => 10 }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', type: "list" }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', validate: (input) => true }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', validate: (input) => "Error" }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', filter: (input) => input }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', when: (answers) => true }, (answer) => {});
|
||||
generator.prompt({ name: 'Name', message: '', when: true }, (answer) => {});
|
||||
|
||||
// http://yeoman.io/generator/Base.html
|
||||
// https://github.com/SBoudrias/mem-fs-editor
|
||||
generator.fs.read("file") === "string";
|
||||
generator.fs.read("file", {}) === "string";
|
||||
generator.fs.readJSON("file") === {};
|
||||
generator.fs.readJSON("file", {}) === {};
|
||||
generator.fs.write("file", "contents");
|
||||
generator.fs.writeJSON("file", {});
|
||||
generator.fs.writeJSON("file", {}, () => {});
|
||||
generator.fs.writeJSON("file", {}, () => {}, 2);
|
||||
generator.fs.delete("file");
|
||||
generator.fs.delete("file", {});
|
||||
generator.fs.copy("from", "to");
|
||||
generator.fs.copy("from", "to", {});
|
||||
generator.fs.copyTpl("from", "to", {});
|
||||
generator.fs.copyTpl("from", "to", {}, {});
|
||||
generator.fs.move("from", "to");
|
||||
generator.fs.move("from", "to", {});
|
||||
generator.fs.exists("file") === true;
|
||||
generator.fs.commit(() => {});
|
||||
generator.fs.commit([], () => {});
|
||||
|
||||
+73
-16
@@ -9,7 +9,8 @@ declare module yo {
|
||||
argument(name: string, config: IArgumentConfig): void;
|
||||
composeWith(namespace: string, options: any, settings?: IComposeSetting): IYeomanGenerator;
|
||||
defaultFor(name: string): void;
|
||||
destinationRoot(rootPath: string): string;
|
||||
destinationRoot(rootPath?: string): string;
|
||||
destinationPath(...path: string[]): string;
|
||||
determineAppname(): void;
|
||||
getCollisionFilter(): (output: any) => void;
|
||||
hookFor(name: string, config: IHookConfig): void;
|
||||
@@ -18,16 +19,23 @@ declare module yo {
|
||||
run(args?: any): void;
|
||||
run(args: any, callback?: Function): void;
|
||||
runHooks(callback?: Function): void;
|
||||
sourceRoot(rootPath: string): string;
|
||||
|
||||
|
||||
sourceRoot(rootPath?: string): string;
|
||||
templatePath(...path: string[]): string;
|
||||
prompt(opt: IPromptOptions | IPromptOptions[], callback: (answers: any) => void): void;
|
||||
npmInstall(packages?: string[] | string, options?: any, cb?: Function): void;
|
||||
installDependencies(options?: IInstallDependencyOptions): void;
|
||||
spawnCommand(name: string, args?: string[], options?: Object): void;
|
||||
spawnCommandSync(name: string, args?: string[], options?: Object): void;
|
||||
options: { [key: string]: any };
|
||||
fs: IMemFsEditor;
|
||||
}
|
||||
|
||||
export class YeomanGeneratorBase implements IYeomanGenerator, NodeJS.EventEmitter {
|
||||
argument(name: string, config: IArgumentConfig): void;
|
||||
composeWith(namespace: string, options: any, settings?: IComposeSetting): IYeomanGenerator;
|
||||
defaultFor(name: string): void;
|
||||
destinationRoot(rootPath: string): string;
|
||||
destinationRoot(rootPath?: string): string;
|
||||
destinationPath(...path: string[]): string;
|
||||
determineAppname(): void;
|
||||
getCollisionFilter(): (output: any) => void;
|
||||
hookFor(name: string, config: IHookConfig): void;
|
||||
@@ -36,7 +44,8 @@ declare module yo {
|
||||
run(args?: any): void;
|
||||
run(args: any, callback?: Function): void;
|
||||
runHooks(callback?: Function): void;
|
||||
sourceRoot(rootPath: string): string;
|
||||
sourceRoot(rootPath?: string): string;
|
||||
templatePath(...path: string[]): string;
|
||||
addListener(event: string, listener: Function): NodeJS.EventEmitter;
|
||||
on(event: string, listener: Function): NodeJS.EventEmitter;
|
||||
once(event: string, listener: Function): NodeJS.EventEmitter;
|
||||
@@ -47,20 +56,58 @@ declare module yo {
|
||||
emit(event: string, ...args: any[]): boolean;
|
||||
|
||||
async(): any;
|
||||
prompt(opt?:IPromptOptions, callback?:(answers:any)=>void) :void;
|
||||
prompt(opt: IPromptOptions | IPromptOptions[], callback: (answers: any) => void): void;
|
||||
log(message: string) : void;
|
||||
npmInstall(packages: string[], options?:any) :void;
|
||||
npmInstall(packages: string[], options?: any, cb?: Function) :void;
|
||||
installDependencies(options?: IInstallDependencyOptions): void;
|
||||
spawnCommand(name: string, args?: string[], options?: Object): void;
|
||||
spawnCommandSync(name: string, args?: string[], options?: Object): void;
|
||||
|
||||
appname: string;
|
||||
gruntfile: IGruntFileStatic;
|
||||
options: { [key: string]: any };
|
||||
fs: IMemFsEditor;
|
||||
}
|
||||
|
||||
export interface IMemFsEditor {
|
||||
read(filepath: string, options?: Object): string;
|
||||
readJSON(filepath: string, defaults?: Object): Object;
|
||||
write(filepath: string, contents: string): void;
|
||||
writeJSON(filepath: string, contents: Object, replacer?: Function, space?: number): void;
|
||||
delete(filepath: string, options?: Object): void;
|
||||
copy(from: string, to: string, options?: Object): void;
|
||||
copyTpl(from: string, to: string, context: Object, options?: Object): void;
|
||||
move(from: string, to: string, options?: Object): void;
|
||||
exists(filepath: string): boolean;
|
||||
commit(callback: Function): void;
|
||||
commit(filters: any[], callback: Function): void;
|
||||
}
|
||||
|
||||
export interface IInstallDependencyOptions {
|
||||
npm?: boolean;
|
||||
bower?: boolean;
|
||||
skipMessage?: boolean;
|
||||
callback?: Function;
|
||||
}
|
||||
|
||||
export interface IChoice {
|
||||
name: string;
|
||||
value: string;
|
||||
short?: string;
|
||||
}
|
||||
|
||||
export interface IPromptOptions{
|
||||
type:string;
|
||||
name:string;
|
||||
message:string;
|
||||
default:string;
|
||||
type?: string;
|
||||
name: string;
|
||||
message: string | ((answers: Object) => string);
|
||||
choices?: any[] | ((answers: Object) => any);
|
||||
default?: string | number | string[] | number[] | ((answers: Object) => (string | number | string[] | number[]));
|
||||
validate?: ((input: any) => boolean | string);
|
||||
filter?: ((input: any) => any);
|
||||
when?: ((answers: Object) => boolean) | boolean;
|
||||
store?: boolean;
|
||||
}
|
||||
|
||||
|
||||
export interface IGruntFileStatic {
|
||||
loadNpmTasks(pluginName: string): void;
|
||||
insertConfig(name:string, config:any):void;
|
||||
@@ -71,10 +118,10 @@ declare module yo {
|
||||
|
||||
export interface IArgumentConfig {
|
||||
desc: string;
|
||||
required: boolean;
|
||||
optional: boolean;
|
||||
required?: boolean;
|
||||
optional?: boolean;
|
||||
type: any;
|
||||
defaults: any;
|
||||
defaults?: any;
|
||||
}
|
||||
|
||||
export interface IComposeSetting {
|
||||
@@ -174,6 +221,8 @@ declare module yo {
|
||||
var file: any;
|
||||
var assert: IAssert;
|
||||
var test: ITestHelper;
|
||||
|
||||
// "generators" is deprecated
|
||||
module generators {
|
||||
|
||||
export class NamedBase extends YeomanGeneratorBase implements INamedBase {
|
||||
@@ -184,6 +233,14 @@ declare module yo {
|
||||
static extend(protoProps: IQueueProps, staticProps?: any): IYeomanGenerator;
|
||||
}
|
||||
}
|
||||
|
||||
export class NamedBase extends YeomanGeneratorBase implements INamedBase {
|
||||
constructor(args: string | string[], options: any);
|
||||
}
|
||||
|
||||
export class Base extends NamedBase implements IBase {
|
||||
static extend(protoProps: IQueueProps, staticProps?: any): IYeomanGenerator;
|
||||
}
|
||||
}
|
||||
|
||||
declare module "yeoman-generator" {
|
||||
|
||||
Reference in New Issue
Block a user