11import { Config , IConfigManager } from '../config-manager' ;
22import { ConfigQuestionnaire } from '../config-wizard' ;
3+ import { DependenciesManifest } from '../dependencies-manager/dependencies-installer' ;
34import { ILogger } from '../util/logger' ;
4- import { AnyFunction } from '../util/utility-functions' ;
5+ import { AnyFunction , AnyObject } from '../util/utility-functions' ;
56import { Plugin } from './index' ;
67import { WorkingPaths } from './paths' ;
78export interface InstallableObject {
89 taskFn : AnyFunction ;
910 hook : string ;
1011 name : string ;
12+ dependencies ?: DependenciesManifest ;
1113 description ?: string ;
1214 configDefaults ?: Config ;
1315 configQuestionnaire ?: ConfigQuestionnaire ;
@@ -30,9 +32,7 @@ export declare const ERRORS: {
3032 * Check if object is an installable Plugin
3133 * @param object Plugin object to be tested
3234 */
33- export declare function isInstallable ( object : {
34- [ key : string ] : any ;
35- } ) : boolean | void ;
35+ export declare function isInstallable ( object : AnyObject ) : boolean | void ;
3636/**
3737 * Create utilities provider (e.g. logger, config proxy, paths, etc.)
3838 * @param name Plugin name
@@ -46,12 +46,13 @@ export declare function getUtilitiesProvider(name: string): Promise<PluginProvid
4646export declare function provideUtilities ( taskFn : AnyFunction , name : string ) : Promise < AnyFunction > ;
4747/**
4848 * Installable plugin factory
49- * @param { configDefaults } Configuration defaults object
50- * @param { configQuestionnaire } Configuration questionnaire object
51- * @param { description } Task description
52- * @param { hook } Task registration hook
53- * @param { name } Task name
54- * @param { taskFn } Function to be called when running the task
49+ * @param configDefaults Configuration defaults object
50+ * @param configQuestionnaire Configuration questionnaire object
51+ * @param dependencies Dependencies manifest object
52+ * @param description Task description
53+ * @param hook Task registration hook
54+ * @param name Task name
55+ * @param taskFn Function to be called when running the task
5556 */
5657declare function Installable ( plugin : Plugin | InstallableObject ) : Plugin ;
5758export default Installable ;
0 commit comments