@zowe/imperative
Version:
framework for building configurable CLIs
49 lines • 2.6 kB
TypeScript
/**
* An optional module of a plugin extends this class to
* perform actions during the installation lifecycle of a plugin.
* A plugin identifies that it supplies a life cycle class
* by specifying the 'pluginLifeCycle' imperative configuration property.
*/
export declare abstract class AbstractPluginLifeCycle {
/**
* This function will be called after a plugin is installed.
* A plugin can use this opportunity to perform a sanity test or to
* perform some additional setup which is specific to that plugin.
* A plugin which provides a specialized credential manager should use
* this opportunity to insert itself as an override of the standard
* credential manager that is delivered with Zowe CLI.
*
* If the plugin's postInstall function performs an asynchronous operation,
* its postInstall function should return a promise, allowing the CLI
* framework to await the postInstall function. If it has no asynchronous
* operation, the postInstall function can be written as a synchronous function.
*
* @throws
* An ImperativeError containing a message describing any error
* that occurred while performing post-install actions.
*/
abstract postInstall(): Promise<void> | void;
/**
* This function will be called before a plugin is uninstalled.
* This lifecycle hook is intended to replace the capability that used to
* be performed by the NPM pre-uninstall action before NPM removed that
* capability in NPM version 7.
* See https://docs.npmjs.com/cli/v9/using-npm/scripts#a-note-on-a-lack-of-npm-uninstall-scripts
*
* A plugin can use this opportunity to revert any specialized setup that was
* established during the lifetime of the plugin. A plugin which provides a
* specialized credential manager should use this opportunity to remove itself as
* an override of the standard credential manager that is delivered with Zowe CLI.
*
* If the plugin's preUninstall function performs an asynchronous operation,
* its preUninstall function should return a promise, allowing the CLI
* framework to await the preUninstall function. If it has no asynchronous
* operation, the preUninstall function can be written as a synchronous function.
*
* @throws
* An ImperativeError containing a message describing any error
* that occurred while performing pre-uninstall actions.
*/
abstract preUninstall(): Promise<void> | void;
}
//# sourceMappingURL=AbstractPluginLifeCycle.d.ts.map