Files
DefinitelyTyped/gruntjs/gruntjs.d.ts
2013-08-07 16:59:39 +03:00

167 lines
3.8 KiB
TypeScript

// Type definitions for Grunt JS
// Project: http://gruntjs.com/
// Definitions by: Basarat Ali Syed <https://github.com/basarat>
// Definitions: https://github.com/borisyankov/DefinitelyTyped
////////////////
/// To add plugins update the IGruntConfig using open ended interface syntax
////////////////
interface IGruntConfig {
pkg?: any;
}
////////////////
/// Sample grunt plugin definition:
/// uglify : https://github.com/gruntjs/grunt-contrib-uglify
////////////////
interface IGruntUglifyConfig {
mangle?: boolean;
compress?: boolean;
beautify?: boolean;
report?: any; // false / 'min' / 'gzip'
sourceMap?: any; // String / Function
sourceMapRoot?: string;
sourceMapIn?: string;
sourceMappingURL?: any; // String / Function
sourceMapPrefix?: number;
wrap?: string;
exportAll?: boolean;
preserveComments?: any; // boolean / string / function
banner?: string;
}
interface IGruntConfig {
uglify?: {
options?: IGruntUglifyConfig;
build?: {
src: string;
dest: string;
};
};
}
////////////////
// Main Grunt object
// http://gruntjs.com/api/grunt
////////////////
interface IGrunt {
// Config
config: IGruntConfigObject;
initConfig(config?: IGruntConfig);
// Tasks
task: any;
// Creating
registerTask: Function;
registerMultiTask: Function;
renameTask: Function;
// Loading
loadTasks: Function;
loadNpmTasks: Function;
// Errors
warn: Function;
fatal: Function;
// Misc:
package: any;
version: any;
// File
file: IGruntFileObject;
// Event
event: any;
// Fail
fail: any;
// Log
log: any;
// Options
option: any;
// Template
template: any;
// Util
util: any;
}
////////////////
/// Grunt Config object
/// http://gruntjs.com/api/grunt.config#accessing-config-data
////////////////
interface IGruntConfigObject {
(...param: any[]): any;
init: (config?: IGruntConfig) => void;
get: Function;
process: Function;
getRaw: Function;
set: Function;
escape: (propString: string) => void;
requires: Function;
}
////////////////
// Grunt File object
// http://gruntjs.com/api/grunt.file
////////////////
interface IGruntFileObjectOptionsSimple {
encoding?: string;
}
interface IGruntFileObjectOptions extends IGruntFileObjectOptionsSimple {
process?: Function;
noProcess?: any;
}
interface IGruntFileObject {
// Character encoding
defaultEncoding: string;
// Reading and writing
read(filepath, options?: IGruntFileObjectOptionsSimple);
readJSON(filepath, options?: IGruntFileObjectOptionsSimple);
readYAML(filepath, options?: IGruntFileObjectOptionsSimple);
write(filepath, contents, options?: IGruntFileObjectOptionsSimple);
copy(srcpath, destpath, options?: IGruntFileObjectOptions);
delete (filepath, options?: { force?: boolean; });
// Directories
mkdir(dirpath, mode?);
recurse(rootdir, callback);
// Globbing patterns
expand(patterns);
expand(options, patterns);
expandMapping(patterns, dest, options?);
match(patterns, filepaths);
match(options, patterns, filepaths);
isMatch(patterns, filepaths): boolean;
isMatch(options, patterns, filepaths): boolean;
// file types
exists(...paths: any[]);
isLink(...paths: any[]);
isDir(...paths: any[]);
isFile(...paths: any[]);
// paths
isPathAbsolute(...paths: any[]);
arePathsEquivalent(...paths: any[]);
isPathCwd(...paths: any[]);
setBase(...paths: any[]);
// External libraries
glob: any;
minimatch: any;
findup: any;
}
////////////////
/// Globally called export function module.exports
////////////////
declare var exports: (grunt: IGrunt) => void;