UNPKG

concern

Version:

A library for seperating your application logic into concerns.

121 lines (91 loc) 7.09 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _MockSystem = require('./MockSystem'); var _MockSystem2 = _interopRequireDefault(_MockSystem); var _MockDispatcher = require('./MockDispatcher'); var _MockDispatcher2 = _interopRequireDefault(_MockDispatcher); var _MockMailbox = require('./MockMailbox'); var _MockMailbox2 = _interopRequireDefault(_MockMailbox); var _MockReference = require('./MockReference'); var _MockReference2 = _interopRequireDefault(_MockReference); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * MockChildContext */ var MockChildContext = function () { function MockChildContext() { _classCallCheck(this, MockChildContext); this.Children = []; this.System = new _MockSystem2.default(); this.Dispatcher = new _MockDispatcher2.default(); this.Self = new _MockReference2.default(); this.Parent = null; this.Mailbox = new _MockMailbox2.default(); this.Selection = new _MockReference2.default(); } _createClass(MockChildContext, [{ key: 'isChild', value: function isChild(ref) { var ret = false; this.Children.forEach(function (child) { if (ref === child.self()) ret = true; }); return ret; } }, { key: 'children', value: function children() { return this.Children.slice(); } }, { key: 'path', value: function path() { return this.Self.path(); } }, { key: 'self', value: function self() { return this.Self; } }, { key: 'parent', value: function parent() { return this.Parent ? this.Parent : new MockChildContext(); } }, { key: 'mailbox', value: function mailbox() { return this.Mailbox; } }, { key: 'dispatcher', value: function dispatcher() { return this.Dispatcher; } }, { key: 'system', value: function system() { return this.System; } }, { key: 'concernOf', value: function concernOf(name, factory) { var ref = new _MockReference2.default(); this.mock.refs.push(ref); return ref; } }, { key: 'select', value: function select(path) { return this.Selection; } }]); return MockChildContext; }(); exports.default = MockChildContext; module.exports = exports['default']; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90ZXN0aW5nL01vY2tDaGlsZENvbnRleHQuanMiXSwibmFtZXMiOlsiTW9ja0NoaWxkQ29udGV4dCIsIkNoaWxkcmVuIiwiU3lzdGVtIiwiRGlzcGF0Y2hlciIsIlNlbGYiLCJQYXJlbnQiLCJNYWlsYm94IiwiU2VsZWN0aW9uIiwicmVmIiwicmV0IiwiZm9yRWFjaCIsImNoaWxkIiwic2VsZiIsInNsaWNlIiwicGF0aCIsIm5hbWUiLCJmYWN0b3J5IiwibW9jayIsInJlZnMiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7OztBQUNBOzs7SUFHTUEsZ0I7QUFFRixnQ0FBYztBQUFBOztBQUVWLGFBQUtDLFFBQUwsR0FBZ0IsRUFBaEI7QUFDQSxhQUFLQyxNQUFMLEdBQWMsMEJBQWQ7QUFDQSxhQUFLQyxVQUFMLEdBQWtCLDhCQUFsQjtBQUNBLGFBQUtDLElBQUwsR0FBWSw2QkFBWjtBQUNBLGFBQUtDLE1BQUwsR0FBYyxJQUFkO0FBQ0EsYUFBS0MsT0FBTCxHQUFlLDJCQUFmO0FBQ0EsYUFBS0MsU0FBTCxHQUFpQiw2QkFBakI7QUFFSDs7OztnQ0FFT0MsRyxFQUFLOztBQUVULGdCQUFJQyxNQUFNLEtBQVY7O0FBRUEsaUJBQUtSLFFBQUwsQ0FBY1MsT0FBZCxDQUFzQixpQkFBUzs7QUFFM0Isb0JBQUlGLFFBQVFHLE1BQU1DLElBQU4sRUFBWixFQUNJSCxNQUFNLElBQU47QUFFUCxhQUxEOztBQU9BLG1CQUFPQSxHQUFQO0FBRUg7OzttQ0FFVTs7QUFFUCxtQkFBTyxLQUFLUixRQUFMLENBQWNZLEtBQWQsRUFBUDtBQUVIOzs7K0JBRU07O0FBRUgsbUJBQU8sS0FBS1QsSUFBTCxDQUFVVSxJQUFWLEVBQVA7QUFFSDs7OytCQUVNOztBQUVILG1CQUFPLEtBQUtWLElBQVo7QUFFSDs7O2lDQUVROztBQUVMLG1CQUFPLEtBQUtDLE1BQUwsR0FBYyxLQUFLQSxNQUFuQixHQUE0QixJQUFJTCxnQkFBSixFQUFuQztBQUVIOzs7a0NBRVM7O0FBRU4sbUJBQU8sS0FBS00sT0FBWjtBQUVIOzs7cUNBRVk7O0FBRVQsbUJBQU8sS0FBS0gsVUFBWjtBQUVIOzs7aUNBRVE7O0FBRUwsbUJBQU8sS0FBS0QsTUFBWjtBQUVIOzs7a0NBRVNhLEksRUFBTUMsTyxFQUFTOztBQUVyQixnQkFBSVIsTUFBTSw2QkFBVjtBQUNBLGlCQUFLUyxJQUFMLENBQVVDLElBQVYsQ0FBZUMsSUFBZixDQUFvQlgsR0FBcEI7QUFDQSxtQkFBT0EsR0FBUDtBQUVIOzs7K0JBRU1NLEksRUFBTTs7QUFFVCxtQkFBTyxLQUFLUCxTQUFaO0FBRUg7Ozs7OztrQkFJVVAsZ0IiLCJmaWxlIjoiTW9ja0NoaWxkQ29udGV4dC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNb2NrU3lzdGVtIGZyb20gJy4vTW9ja1N5c3RlbSc7XG5pbXBvcnQgTW9ja0Rpc3BhdGNoZXIgZnJvbSAnLi9Nb2NrRGlzcGF0Y2hlcic7XG5pbXBvcnQgTW9ja01haWxib3ggZnJvbSAnLi9Nb2NrTWFpbGJveCc7XG5pbXBvcnQgTW9ja1JlZmVyZW5jZSBmcm9tICcuL01vY2tSZWZlcmVuY2UnO1xuLyoqXG4gKiBNb2NrQ2hpbGRDb250ZXh0XG4gKi9cbmNsYXNzIE1vY2tDaGlsZENvbnRleHQge1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG5cbiAgICAgICAgdGhpcy5DaGlsZHJlbiA9IFtdO1xuICAgICAgICB0aGlzLlN5c3RlbSA9IG5ldyBNb2NrU3lzdGVtKCk7XG4gICAgICAgIHRoaXMuRGlzcGF0Y2hlciA9IG5ldyBNb2NrRGlzcGF0Y2hlcigpO1xuICAgICAgICB0aGlzLlNlbGYgPSBuZXcgTW9ja1JlZmVyZW5jZSgpO1xuICAgICAgICB0aGlzLlBhcmVudCA9IG51bGw7XG4gICAgICAgIHRoaXMuTWFpbGJveCA9IG5ldyBNb2NrTWFpbGJveCgpO1xuICAgICAgICB0aGlzLlNlbGVjdGlvbiA9IG5ldyBNb2NrUmVmZXJlbmNlKCk7XG5cbiAgICB9XG5cbiAgICBpc0NoaWxkKHJlZikge1xuXG4gICAgICAgIHZhciByZXQgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLkNoaWxkcmVuLmZvckVhY2goY2hpbGQgPT4ge1xuXG4gICAgICAgICAgICBpZiAocmVmID09PSBjaGlsZC5zZWxmKCkpXG4gICAgICAgICAgICAgICAgcmV0ID0gdHJ1ZTtcblxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmV0O1xuXG4gICAgfVxuXG4gICAgY2hpbGRyZW4oKSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuQ2hpbGRyZW4uc2xpY2UoKTtcblxuICAgIH1cblxuICAgIHBhdGgoKSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuU2VsZi5wYXRoKCk7XG5cbiAgICB9XG5cbiAgICBzZWxmKCkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLlNlbGY7XG5cbiAgICB9XG5cbiAgICBwYXJlbnQoKSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuUGFyZW50ID8gdGhpcy5QYXJlbnQgOiBuZXcgTW9ja0NoaWxkQ29udGV4dCgpO1xuXG4gICAgfVxuXG4gICAgbWFpbGJveCgpIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5NYWlsYm94O1xuXG4gICAgfVxuXG4gICAgZGlzcGF0Y2hlcigpIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5EaXNwYXRjaGVyO1xuXG4gICAgfVxuXG4gICAgc3lzdGVtKCkge1xuXG4gICAgICAgIHJldHVybiB0aGlzLlN5c3RlbTtcblxuICAgIH1cblxuICAgIGNvbmNlcm5PZihuYW1lLCBmYWN0b3J5KSB7XG5cbiAgICAgICAgdmFyIHJlZiA9IG5ldyBNb2NrUmVmZXJlbmNlKCk7XG4gICAgICAgIHRoaXMubW9jay5yZWZzLnB1c2gocmVmKTtcbiAgICAgICAgcmV0dXJuIHJlZjtcblxuICAgIH1cblxuICAgIHNlbGVjdChwYXRoKSB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuU2VsZWN0aW9uO1xuXG4gICAgfVxuXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1vY2tDaGlsZENvbnRleHRcbiJdfQ==