UNPKG

tribe

Version:

Tribe is a platform for building rich, powerful, highly scalable distributed HTML5 web and mobile systems.

35 lines (30 loc) 1.26 kB
var repository = require('./repository'), facetModule = require('tribe.pubsub/facet'), _ = require('underscore'); var api = module.exports = { register: repository.register, definition: repository.definition, indexes: function (scopes) { // deprecated - facets no longer specify their own scope var indexes = _.unique(_.reduce(repository.facets, function (indexes, facet) { var expression = repository.definition(facet.path).expression; if (expression) if (expression.constructor === Array) { if (expression.length > 0) indexes.push.apply(indexes, _.pluck(expression, 'p')); } else indexes.push(expression.p); return indexes; }, [])); if(scopes) indexes = indexes.concat(scopes.map(function (scope) { return 'data.' + scope; })); return indexes; }, create: function (pubsub, path, scope, dependencies) { var constructor = repository.facet(path).constructor; return new facetModule(pubsub, constructor, scope, dependencies); } }; require('./extensions')(api);