packages/kirki-framework/module-webfonts/src/assets/scripts/vendor-typekit/src/core/fontmoduleloader.js
goog.provide('webfont.FontModuleLoader');
goog.provide('webfont.FontModuleFactory');
/** @typedef {function(Object, webfont.DomHelper): webfont.FontModule} */
webfont.FontModuleFactory;
/**
* @constructor
*/
webfont.FontModuleLoader = function() {
/**
* @type {Object.<string, webfont.FontModuleFactory>}
*/
this.modules_ = {};
};
goog.scope(function () {
var FontModuleLoader = webfont.FontModuleLoader;
/**
* @param {string} name
* @param {webfont.FontModuleFactory} factory
*/
FontModuleLoader.prototype.addModuleFactory = function(name, factory) {
this.modules_[name] = factory;
};
/**
* @param {Object} configuration
* @param {webfont.DomHelper} domHelper
* @return {Array.<webfont.FontModule>}
*/
FontModuleLoader.prototype.getModules = function(configuration, domHelper) {
var modules = [];
for (var key in configuration) {
if (configuration.hasOwnProperty(key)) {
var moduleFactory = this.modules_[key];
if (moduleFactory) {
modules.push(moduleFactory(configuration[key], domHelper));
}
}
}
return modules;
};
});