@valo/extensibility
Advanced tools
Comparing version 1.1.0-821b09be326afc6e963bc7206fb4338ee7910861 to 1.1.0-ac4a9a85e98dd765aaf195cdd1a4751500e41508
@@ -14,1 +14,2 @@ export * from './DataSource'; | ||
export * from './UnbindedExtensionTrigger'; | ||
export * from './UnbindedTriggerDefer'; |
@@ -1,5 +0,5 @@ | ||
import { IntranetTrigger, ExtensionTrigger } from '..'; | ||
import { IntranetTrigger, UnbindedTriggerDefer } from '..'; | ||
export interface UnbindedExtensionTrigger { | ||
trigger: IntranetTrigger; | ||
callback: (trigger: ExtensionTrigger) => void; | ||
defer: UnbindedTriggerDefer; | ||
} |
@@ -19,5 +19,4 @@ import { ExtensionProvider, IntranetProvider } from '..'; | ||
* @param {IntranetProvider} providerType - The provider type | ||
* @param {number} timeout - OPTIONAL: specify how long you want to wait for the provider | ||
*/ | ||
getProvider<T>(providerType: IntranetProvider, timeout?: number): Promise<ExtensionProvider<T>>; | ||
getProvider<T>(providerType: IntranetProvider): Promise<ExtensionProvider<T>>; | ||
/** | ||
@@ -24,0 +23,0 @@ * Use this to retrieve already binded trigger listeners |
@@ -56,6 +56,4 @@ "use strict"; | ||
* @param {IntranetProvider} providerType - The provider type | ||
* @param {number} timeout - OPTIONAL: specify how long you want to wait for the provider | ||
*/ | ||
ProviderService.prototype.getProvider = function (providerType, timeout) { | ||
if (timeout === void 0) { timeout = null; } | ||
ProviderService.prototype.getProvider = function (providerType) { | ||
var foundExt = this.getBindedProvider(providerType); | ||
@@ -70,3 +68,3 @@ // Register the unbinded WP | ||
else { | ||
var defer = this.providerPromise(timeout); | ||
var defer = this.providerPromise(); | ||
this.unbindedProviders.push({ | ||
@@ -97,4 +95,3 @@ provider: providerType, | ||
*/ | ||
ProviderService.prototype.providerPromise = function (timeout) { | ||
if (timeout === void 0) { timeout = null; } | ||
ProviderService.prototype.providerPromise = function () { | ||
var defer = { | ||
@@ -101,0 +98,0 @@ promise: null, |
@@ -19,11 +19,14 @@ import { ExtensionTrigger, IntranetTrigger } from '..'; | ||
* @param {IntranetTrigger} triggerType - The trigger type | ||
* @param {Function} updateRegistrationCb - Callback function when extension is ready | ||
*/ | ||
registerTrigger(triggerType: IntranetTrigger, updateRegistrationCb: (trigger: ExtensionTrigger) => void): void; | ||
registerTrigger(triggerType: IntranetTrigger): Promise<ExtensionTrigger>; | ||
/** | ||
* Use this to retrieve already binded trigger listeners {external} | ||
* Use this to retrieve already binded trigger listeners {internal} | ||
* | ||
* @param {IntranetTrigger} extensionLocation - The trigger type | ||
*/ | ||
getTrigger(triggerType: IntranetTrigger): ExtensionTrigger | null; | ||
private getBindedTrigger; | ||
/** | ||
* Creates the trigger promise | ||
*/ | ||
private triggerPromise; | ||
} |
@@ -41,3 +41,4 @@ "use strict"; | ||
var crntTrigger = crntUnbindedTriggers_1[_i]; | ||
crntTrigger.callback(this.getTrigger(crntTrigger.trigger)); | ||
var trigger = this.getBindedTrigger(crntTrigger.trigger); | ||
crntTrigger.defer.resolve(trigger); | ||
// Find the index of the updated binding | ||
@@ -56,6 +57,5 @@ var ubdIdx = findIndex(this.unbindedTriggers, function (ext) { return ext.trigger === ext.trigger; }); | ||
* @param {IntranetTrigger} triggerType - The trigger type | ||
* @param {Function} updateRegistrationCb - Callback function when extension is ready | ||
*/ | ||
TriggerService.prototype.registerTrigger = function (triggerType, updateRegistrationCb) { | ||
var foundExt = this.getTrigger(triggerType); | ||
TriggerService.prototype.registerTrigger = function (triggerType) { | ||
var foundExt = this.getBindedTrigger(triggerType); | ||
// Register the unbinded WP | ||
@@ -66,9 +66,11 @@ if (!foundExt) { | ||
if (unbindedWp) { | ||
unbindedWp.callback = updateRegistrationCb; | ||
return unbindedWp.defer.promise; | ||
} | ||
else { | ||
var defer = this.triggerPromise(); | ||
this.unbindedTriggers.push({ | ||
trigger: triggerType, | ||
callback: updateRegistrationCb | ||
defer: defer | ||
}); | ||
return unbindedWp.defer.promise; | ||
} | ||
@@ -78,17 +80,31 @@ } | ||
// The trigger already existed, so call the callback | ||
if (updateRegistrationCb) { | ||
updateRegistrationCb(foundExt); | ||
} | ||
return Promise.resolve(foundExt); | ||
} | ||
}; | ||
/** | ||
* Use this to retrieve already binded trigger listeners {external} | ||
* Use this to retrieve already binded trigger listeners {internal} | ||
* | ||
* @param {IntranetTrigger} extensionLocation - The trigger type | ||
*/ | ||
TriggerService.prototype.getTrigger = function (triggerType) { | ||
TriggerService.prototype.getBindedTrigger = function (triggerType) { | ||
return find(this.triggers, function (ext) { return ext.trigger === triggerType; }); | ||
}; | ||
/** | ||
* Creates the trigger promise | ||
*/ | ||
TriggerService.prototype.triggerPromise = function () { | ||
var defer = { | ||
promise: null, | ||
resolve: null, | ||
reject: null | ||
}; | ||
var promise = new Promise(function (resolve, reject) { | ||
defer.resolve = resolve; | ||
defer.reject = reject; | ||
}); | ||
defer.promise = promise; | ||
return defer; | ||
}; | ||
return TriggerService; | ||
}()); | ||
exports.TriggerService = TriggerService; |
{ | ||
"name": "@valo/extensibility", | ||
"version": "1.1.0-821b09be326afc6e963bc7206fb4338ee7910861", | ||
"version": "1.1.0-ac4a9a85e98dd765aaf195cdd1a4751500e41508", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
38102
64
957