Esempio n. 1
0
    var mod = mainApplication.registerModule(domNode, dataName);
    if (!mod) {
      throw new Error('starting terrific component "' + dataName + '" failed.');
    }
    // execute terrific component
    mainApplication.start([mod]);
    // Return the public api and events
    return {
      api: mod.api || {},
      events: mod._events
    };
  },
  createModule: function(moduleName, moduleDefinitions) {
    if (typeof moduleName !== 'string' || !/^[A-Z][a-z0-9\-]+[a-z0-9]/.test(moduleName)) {
      throw new Error('Invalid module name "' + moduleName + '".');
    }
    if (T.Module[moduleName]) {
      throw new Error('Module "' + moduleName + '" was already defined.');
    }
    T.Module[moduleName] = T.createModule(moduleDefinitions);
    return T.Module[moduleName];
  }
};

// Inherit from terrific
for (var attribute in T) {
  if( T.hasOwnProperty( attribute ) && typeof attribute === 'function' ) {
    module.exports[attribute] = module.exports[attribute] || T[attribute];
  }
}
Esempio n. 2
0
          T.Module.prototype.stop.apply(this, arguments);
          stop.apply(this, arguments);
        };
      }
      T.Module[moduleName] = T.createModule(moduleDefinitions);
      return T.Module[moduleName];
    };
    // Allow to use createModule either as function or as decorator
    return moduleDefinitions !== undefined ? decorator(moduleDefinitions) : decorator;
  }
};

// Inherit from terrific
for (var attribute in T) {
  /* istanbul ignore else */
  if (T.hasOwnProperty(attribute)) {
    module.exports[attribute] = module.exports[attribute] || T[attribute];
  }
}

/**
 * Create a deferred promise object
 */
function createDeferred () {
  var deferred = {};
  deferred.promise = new Promise(function (resolve, reject) {
    deferred.resolve = resolve;
    deferred.reject = reject;
  });
  return deferred;
}