collection.js 587 B

123456789101112131415161718192021222324
  1. var memoizedProperty = require('../util').memoizedProperty;
  2. function memoize(name, value, factory, nameTr) {
  3. memoizedProperty(this, nameTr(name), function() {
  4. return factory(name, value);
  5. });
  6. }
  7. function Collection(iterable, options, factory, nameTr, callback) {
  8. nameTr = nameTr || String;
  9. var self = this;
  10. for (var id in iterable) {
  11. if (Object.prototype.hasOwnProperty.call(iterable, id)) {
  12. memoize.call(self, id, iterable[id], factory, nameTr);
  13. if (callback) callback(id, iterable[id]);
  14. }
  15. }
  16. }
  17. /**
  18. * @api private
  19. */
  20. module.exports = Collection;