ExtensionInterface
Import :
const ExtensionInterface = brackets.getModule("utils/ExtensionInterface")
utils/ExtensionInterface
ExtensionInterface defines utility methods for communicating between extensions safely.
A global window.ExtensionInterface
object is made available in phoenix that can be called anytime after AppStart.
Usage
For Eg. You may have two extensions installed say angular
extension which has to call functions made available by
angular-cli
Extension.
For Making this possible, the angular-cli
extension makes a named interface available with the ExtensionInterface
module and angular
extension can get hold of the interface as and when the extension gets loaded.
Example
// in angular-cli extension, make a file say cli-interface.js module within the extension, do the following:
const ExtensionInterface = brackets.getModule("utils/ExtensionInterface"),
// You can replace exports with any object you want to expose outside the extension really.
ExtensionInterface.registerExtensionInterface("angularCli", exports);
Once the interface is registered, the angular extension can get hold of the interface with the following code (inside or outside the extension) by using: Example
let angularCli;
ExtensionInterface.waitAndGetExtensionInterface("angularCli").then(interfaceObj=> angularCli = interfaceObj);
if(angularCli){ // check if angular cli is avilable
angularCli.callSomeFunction();
}
Note that the angularCli
interface is async populated as and when the cli extension is loaded and the
interface made available.
NBB: Do Not use await waitAndGetExtensionInterface
on tol level require as the module loading might fail.
utils/ExtensionInterface.EVENT_EXTENSION_INTERFACE_REGISTERED : string
Extension interface registered event
Kind: inner constant of utils/ExtensionInterface
utils/ExtensionInterface.registerExtensionInterface(extensionInterfaceName, interfaceObject) : function
Registers a named extension interface. Will overwrite if an interface of the same name is already present.
To register an interface angularCli
ExtensionInterface.registerExtensionInterface("angularCli", exports);
Kind: inner method of utils/ExtensionInterface
Param | Type |
---|---|
extensionInterfaceName | string |
interfaceObject | Object |
utils/ExtensionInterface.isExistsExtensionInterface(extensionInterfaceName) ⇒ boolean
Returns true is an interface of the given name exists.
Kind: inner method of utils/ExtensionInterface
Param | Type |
---|---|
extensionInterfaceName | string |
utils/ExtensionInterface.waitAndGetExtensionInterface(extensionInterfaceName) ⇒ Promise
Returns a promise that gets resolved only when an ExtensionInterface of the given name is registered. Use this getter to get hold of extensions interface predictably.
To get a registered interface angularCli
let angularCli;
ExtensionInterface.waitAndGetExtensionInterface("angularCli").then(interfaceObj=> angularCli = interfaceObj);
if(angularCli){ // check if angular cli is avilable
angularCli.callSomeFunction();
}
Kind: inner method of utils/ExtensionInterface
Param |
---|
extensionInterfaceName |