aboutsummaryrefslogtreecommitdiff
path: root/tools/typings/gulp-load-plugins.d.ts
blob: 809c305baa3e81a9d2d50870034657a09d5ed945 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Type definitions for gulp-load-plugins
// Project: https://github.com/jackfranklin/gulp-load-plugins
// Definitions by: Joe Skeen <http://github.com/joeskeen>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

// Does not support ES2015 import (import * as open from 'open').

/** Loads in any gulp plugins and attaches them to an object, freeing you up from having to manually require each gulp plugin. */
declare module 'gulp-load-plugins' {

	interface IOptions {
		/** the glob(s) to search for, default ['gulp-*', 'gulp.*'] */
		pattern?: string[];
		/** where to find the plugins, searched up from process.cwd(), default 'package.json' */
		config?: string;
		/** which keys in the config to look within, default ['dependencies', 'devDependencies', 'peerDependencies'] */
		scope?: string[];
		/** what to remove from the name of the module when adding it to the context, default /^gulp(-|\.)/ */
		replaceString?: RegExp;
		/** if true, transforms hyphenated plugin names to camel case, default true */
		camelize?: boolean;
		/** whether the plugins should be lazy loaded on demand, default true */
		lazy?: boolean;
		/** a mapping of plugins to rename, the key being the NPM name of the package, and the value being an alias you define */
		rename?: IPluginNameMappings;
	}

	interface IPluginNameMappings {
		[npmPackageName: string]: string;
	}

	/** Loads in any gulp plugins and attaches them to an object, freeing you up from having to manually require each gulp plugin. */
	function gulpLoadPlugins<T extends IGulpPlugins>(options?: IOptions): T;
	module gulpLoadPlugins {}
	export = gulpLoadPlugins;
}

/**
 * Extend this interface to use Gulp plugins in your gulpfile.js
 */
interface IGulpPlugins {
}