integrate destroy functions from js utilities in setup utility

This commit is contained in:
Felix Hamann 2019-03-03 14:55:39 +01:00
parent 57f9e058f3
commit 8317748442

View File

@ -14,6 +14,8 @@
window.utils.setup = function(utilName, scope, options) { window.utils.setup = function(utilName, scope, options) {
var utilInstance;
if (!utilName || !scope) { if (!utilName || !scope) {
return; return;
} }
@ -27,21 +29,21 @@
} }
if (options.setupFunction) { if (options.setupFunction) {
options.setupFunction(scope, options); utilInstance = options.setupFunction(scope, options);
} else { } else {
var util = window.utils[utilName]; var util = window.utils[utilName];
if (!util) { if (!util) {
throw new Error('"' + utilName + '" is not a known js util'); throw new Error('"' + utilName + '" is not a known js util');
} }
util(scope, options); utilInstance = util(scope, options);
} }
}; };
window.utils.teardown(utilName);
if (registeredSetupListeners[utilName] && !options.singleton) { if (registeredSetupListeners[utilName] && !options.singleton) {
registeredSetupListeners[utilName].push(listener); registeredSetupListeners[utilName].push(listener);
} else { } else {
window.utils.teardown(utilName);
registeredSetupListeners[utilName] = [ listener ]; registeredSetupListeners[utilName] = [ listener ];
} }
@ -52,6 +54,8 @@
bubbles: true, bubbles: true,
cancelable: true, cancelable: true,
})); }));
return utilInstance;
}; };
window.utils.teardown = function(utilName) { window.utils.teardown = function(utilName) {