Comparing version 2.12.0 to 2.14.0
@@ -41,14 +41,14 @@ 'use strict'; | ||
var emptyBus = {}; | ||
const emptyBus = {}; | ||
var codeA = 'A'.charCodeAt(0); | ||
var codeZ = 'Z'.charCodeAt(0); | ||
const codeA = 'A'.charCodeAt(0); | ||
const codeZ = 'Z'.charCodeAt(0); | ||
function shouldAutoBind(name) { | ||
if (name.length > 2 && name.startsWith('on')) { | ||
var code = name.charCodeAt(2); | ||
const code = name.charCodeAt(2); | ||
return code >= codeA && code <= codeZ; | ||
} | ||
if (name.length > 6 && name.startsWith('handle')) { | ||
var code = name.charCodeAt(6); | ||
const code = name.charCodeAt(6); | ||
return code >= codeA && code <= codeZ; | ||
@@ -61,3 +61,3 @@ } | ||
var Electrum = function () { | ||
let Electrum = function () { | ||
function Electrum() { | ||
@@ -77,25 +77,13 @@ _classCallCheck(this, Electrum); | ||
value: function reset() { | ||
var _this = this; | ||
this._connectors = []; | ||
this._bus = emptyBus; | ||
this._linkingMiddleware = new _linkingMiddleware2.default(); | ||
this._linkingMiddleware.register('state', function (id, state) { | ||
return id === undefined ? state : state.select(id); | ||
}); | ||
this._linkingMiddleware.register('theme', function (id, theme) { | ||
return theme; | ||
}); | ||
this._linkingMiddleware.register('inject:', function (id, prop) { | ||
return prop; | ||
}); | ||
this._linkingMiddleware.register('state', (id, state) => id === undefined ? state : state.select(id)); | ||
this._linkingMiddleware.register('theme', (id, theme) => theme); | ||
this._linkingMiddleware.register('inject:', (id, prop) => prop); | ||
this._injectingMiddleware = new _injectingMiddleware2.default(); | ||
this._injectingMiddleware.register('events', function (obj) { | ||
obj._eventHandlers = _electrumEvents.EventHandlers.inject(obj, function () { | ||
return _this.bus; | ||
}); | ||
this._injectingMiddleware.register('events', obj => { | ||
obj._eventHandlers = _electrumEvents.EventHandlers.inject(obj, () => this.bus); | ||
}); | ||
this._wrappers.forEach(function (x) { | ||
return _this.use(x); | ||
}); | ||
this._wrappers.forEach(x => this.use(x)); | ||
this._options = {}; | ||
@@ -106,4 +94,4 @@ } | ||
value: function use(connector) { | ||
var wrap = (0, _getInterfaces.getWrap)(connector); | ||
var bus = (0, _getInterfaces.getBus)(connector); | ||
const wrap = (0, _getInterfaces.getWrap)(connector); | ||
const bus = (0, _getInterfaces.getBus)(connector); | ||
@@ -140,5 +128,5 @@ if (wrap) { | ||
var names = (0, _checks.getInstanceMethodNames)(obj, _react2.default.Component.prototype); | ||
const names = (0, _checks.getInstanceMethodNames)(obj, _react2.default.Component.prototype); | ||
names.forEach(function (name) { | ||
names.forEach(name => { | ||
if (shouldAutoBind(name)) { | ||
@@ -157,3 +145,3 @@ obj[name] = obj[name].bind(obj); | ||
value: function read(props, id) { | ||
var state = props.state; | ||
const state = props.state; | ||
@@ -180,15 +168,11 @@ return state.get(id); | ||
value: function wrap(name, component, more) { | ||
var _this2 = this; | ||
var _ref = more || {}; | ||
var styles = _ref.styles; | ||
const styles = _ref.styles; | ||
return (0, _wrap3.default)(this._connectors, (0, _extend2.default)(name, component, styles, function () { | ||
return _this2._options; | ||
})); | ||
return (0, _wrap3.default)(this._connectors, (0, _extend2.default)(name, component, styles, () => this._options)); | ||
} | ||
}, { | ||
key: 'bus', | ||
get: function get() { | ||
get: function () { | ||
return this._bus; | ||
@@ -198,3 +182,3 @@ } | ||
key: 'injectingMiddleware', | ||
get: function get() { | ||
get: function () { | ||
return this._injectingMiddleware; | ||
@@ -204,3 +188,3 @@ } | ||
key: 'linkingMiddleware', | ||
get: function get() { | ||
get: function () { | ||
return this._linkingMiddleware; | ||
@@ -210,3 +194,3 @@ } | ||
key: 'connectors', | ||
get: function get() { | ||
get: function () { | ||
return this._connectors.slice(); | ||
@@ -213,0 +197,0 @@ } |
@@ -30,3 +30,3 @@ 'use strict'; | ||
var RadiumConnector = function () { | ||
let RadiumConnector = function () { | ||
function RadiumConnector() { | ||
@@ -33,0 +33,0 @@ _classCallCheck(this, RadiumConnector); |
@@ -23,3 +23,3 @@ 'use strict'; | ||
var InjectingMiddleware = function (_Middleware) { | ||
let InjectingMiddleware = function (_Middleware) { | ||
_inherits(InjectingMiddleware, _Middleware); | ||
@@ -36,28 +36,7 @@ | ||
value: function inject(obj) { | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
try { | ||
for (var _iterator = this._middlewares[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var item = _step.value; | ||
var middleware = item.middleware; | ||
if (middleware) { | ||
middleware(obj); | ||
} | ||
for (let item of this._middlewares) { | ||
const middleware = item.middleware; | ||
if (middleware) { | ||
middleware(obj); | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
} | ||
@@ -64,0 +43,0 @@ } |
@@ -14,3 +14,3 @@ 'use strict'; | ||
var IBus = function () { | ||
let IBus = function () { | ||
function IBus() { | ||
@@ -17,0 +17,0 @@ _classCallCheck(this, IBus); |
@@ -24,3 +24,3 @@ 'use strict'; | ||
function linkProperty(copy, props, overrides, middleware, id, name) { | ||
var prop = props[name]; | ||
let prop = props[name]; | ||
if (overrides.hasOwnProperty(name)) { | ||
@@ -43,3 +43,3 @@ prop = overrides[name]; | ||
var LinkingMiddleware = function (_Middleware) { | ||
let LinkingMiddleware = function (_Middleware) { | ||
_inherits(LinkingMiddleware, _Middleware); | ||
@@ -56,49 +56,17 @@ | ||
value: function link(props, id) { | ||
var overrides = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; | ||
let overrides = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; | ||
var copy = {}; | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
try { | ||
var _loop = function _loop() { | ||
var item = _step.value; | ||
var name = item.name; | ||
var middleware = item.middleware; | ||
if (name.endsWith(':')) { | ||
var n1 = Object.getOwnPropertyNames(props).filter(function (x) { | ||
return x.startsWith(name); | ||
}); | ||
var n2 = Object.getOwnPropertyNames(overrides).filter(function (x) { | ||
return x.startsWith(name); | ||
}); | ||
var names = new Set(n1.concat(n2)); | ||
names.forEach(function (name) { | ||
return linkProperty(copy, props, overrides, middleware, id, name); | ||
}); | ||
} else { | ||
linkProperty(copy, props, overrides, middleware, id, name); | ||
} | ||
}; | ||
for (var _iterator = this._middlewares[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
_loop(); | ||
let copy = {}; | ||
for (let item of this._middlewares) { | ||
const name = item.name; | ||
const middleware = item.middleware; | ||
if (name.endsWith(':')) { | ||
const n1 = Object.getOwnPropertyNames(props).filter(x => x.startsWith(name)); | ||
const n2 = Object.getOwnPropertyNames(overrides).filter(x => x.startsWith(name)); | ||
const names = new Set(n1.concat(n2)); | ||
names.forEach(name => linkProperty(copy, props, overrides, middleware, id, name)); | ||
} else { | ||
linkProperty(copy, props, overrides, middleware, id, name); | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
} | ||
return copy; | ||
@@ -105,0 +73,0 @@ } |
@@ -13,3 +13,3 @@ 'use strict'; | ||
var Middleware = function () { | ||
let Middleware = function () { | ||
function Middleware() { | ||
@@ -29,8 +29,6 @@ _classCallCheck(this, Middleware); | ||
value: function register(name, middleware) { | ||
if (this._middlewares.findIndex(function (x) { | ||
return x.name === name; | ||
}) >= 0) { | ||
throw new Error('Middleware ' + name + ' cannot be registered twice'); | ||
if (this._middlewares.findIndex(x => x.name === name) >= 0) { | ||
throw new Error(`Middleware ${ name } cannot be registered twice`); | ||
} | ||
this._middlewares.push({ name: name, middleware: middleware }); | ||
this._middlewares.push({ name, middleware }); | ||
} | ||
@@ -40,5 +38,3 @@ }, { | ||
value: function list() { | ||
return this._middlewares.map(function (x) { | ||
return x.name; | ||
}); | ||
return this._middlewares.map(x => x.name); | ||
} | ||
@@ -48,7 +44,5 @@ }, { | ||
value: function unregister(name) { | ||
var pos = this._middlewares.findIndex(function (x) { | ||
return x.name === name; | ||
}); | ||
const pos = this._middlewares.findIndex(x => x.name === name); | ||
if (pos >= 0) { | ||
var item = this._middlewares.splice(pos, 1)[0]; | ||
const item = this._middlewares.splice(pos, 1)[0]; | ||
return item.middleware; | ||
@@ -55,0 +49,0 @@ } else { |
'use strict'; /*jshint latedef:false*/ | ||
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; | ||
Object.defineProperty(exports, "__esModule", { | ||
@@ -13,3 +11,3 @@ value: true | ||
enumerable: true, | ||
get: function get() { | ||
get: function () { | ||
return _electrumUtils.getInstanceMethodNames; | ||
@@ -26,8 +24,6 @@ } | ||
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | ||
/******************************************************************************/ | ||
function hasGetter(obj, name) { | ||
var desc = Object.getOwnPropertyDescriptor(obj, name); | ||
const desc = Object.getOwnPropertyDescriptor(obj, name); | ||
return !!desc && typeof desc.get === 'function'; | ||
@@ -37,3 +33,3 @@ } | ||
function hasMethod(obj, name) { | ||
var desc = Object.getOwnPropertyDescriptor(obj, name); | ||
const desc = Object.getOwnPropertyDescriptor(obj, name); | ||
return !!desc && typeof desc.value === 'function'; | ||
@@ -50,3 +46,3 @@ } | ||
} | ||
var dump = obj + ''; | ||
const dump = obj + ''; | ||
if (dump.startsWith('class ')) { | ||
@@ -67,3 +63,8 @@ // that sould be expected from an ES6-compilant engine | ||
} | ||
var props = Object.getOwnPropertyNames(obj.prototype); | ||
const proto = obj.prototype; | ||
// A pure function has no prototype | ||
if (!proto) { | ||
return true; | ||
} | ||
const props = Object.getOwnPropertyNames(proto); | ||
// A simple function has only a constructor | ||
@@ -80,29 +81,7 @@ return props.length === 1 && props[0] === 'constructor' && !isClass(obj); | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
try { | ||
for (var _iterator = methods[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var method = _step.value; | ||
if (!hasMethod(obj, method)) { | ||
return false; | ||
} | ||
for (let method of methods) { | ||
if (!hasMethod(obj, method)) { | ||
return false; | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
} | ||
return true; | ||
@@ -115,11 +94,11 @@ } | ||
what = what || 'interface'; | ||
var target = obj[method] || obj.prototype[method]; | ||
let target = obj[method] || obj.prototype[method]; | ||
if (target === undefined) { | ||
throw new Error('The provided ' + what + ' does not implement method ' + method); | ||
throw new Error(`The provided ${ what } does not implement method ${ method }`); | ||
} | ||
if (typeof target !== 'function') { | ||
throw new Error('The provided ' + what + ' contains ' + method + ', but it is not a function'); | ||
throw new Error(`The provided ${ what } contains ${ method }, but it is not a function`); | ||
} | ||
if (n !== undefined && n !== target.length) { | ||
throw new Error('The provided ' + what + ' contains ' + method + ', but it does not take ' + n + ' arguments'); | ||
throw new Error(`The provided ${ what } contains ${ method }, but it does not take ${ n } arguments`); | ||
} | ||
@@ -134,40 +113,16 @@ } | ||
} | ||
if ((typeof match === 'undefined' ? 'undefined' : _typeof(match)) === 'object') { | ||
var _methods = Object.keys(match); | ||
var _iteratorNormalCompletion2 = true; | ||
var _didIteratorError2 = false; | ||
var _iteratorError2 = undefined; | ||
try { | ||
for (var _iterator2 = _methods[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { | ||
var method = _step2.value; | ||
if (typeof match[method] !== 'function') { | ||
throw new Error('Invalid interface specified: ' + method + ' is not a function'); | ||
} | ||
if (typeof match === 'object') { | ||
const methods = Object.keys(match); | ||
for (let method of methods) { | ||
if (typeof match[method] !== 'function') { | ||
throw new Error(`Invalid interface specified: ${ method } is not a function`); | ||
} | ||
} catch (err) { | ||
_didIteratorError2 = true; | ||
_iteratorError2 = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion2 && _iterator2.return) { | ||
_iterator2.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError2) { | ||
throw _iteratorError2; | ||
} | ||
} | ||
} | ||
return verifyInterface.apply(undefined, [obj].concat(_toConsumableArray(_methods))); | ||
return verifyInterface(obj, ...methods); | ||
} | ||
if (isClass(match)) { | ||
var _methods2 = Object.getOwnPropertyNames(match.prototype).filter(function (method) { | ||
return method !== 'constructor'; | ||
}); | ||
return verifyInterface.apply(undefined, [obj].concat(_toConsumableArray(_methods2))); | ||
const methods = Object.getOwnPropertyNames(match.prototype).filter(method => method !== 'constructor'); | ||
return verifyInterface(obj, ...methods); | ||
} | ||
throw new Error('Invalid interface specified: no idea what to do with ' + match); | ||
throw new Error(`Invalid interface specified: no idea what to do with ${ match }`); | ||
} | ||
@@ -183,27 +138,6 @@ | ||
if (methods.length === 0) { | ||
throw new Error('Empty interface specified'); | ||
throw new Error(`Empty interface specified`); | ||
} | ||
var _iteratorNormalCompletion3 = true; | ||
var _didIteratorError3 = false; | ||
var _iteratorError3 = undefined; | ||
try { | ||
for (var _iterator3 = methods[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { | ||
var method = _step3.value; | ||
verifyMethodOrInterface(obj, method); | ||
} | ||
} catch (err) { | ||
_didIteratorError3 = true; | ||
_iteratorError3 = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion3 && _iterator3.return) { | ||
_iterator3.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError3) { | ||
throw _iteratorError3; | ||
} | ||
} | ||
for (let method of methods) { | ||
verifyMethodOrInterface(obj, method); | ||
} | ||
@@ -210,0 +144,0 @@ } |
@@ -31,3 +31,3 @@ 'use strict'; | ||
function extendComponent(component, stylesDef, optionsGetter) { | ||
var stylesResolver = _electrumTheme.Styles.create(stylesDef); | ||
const stylesResolver = _electrumTheme.Styles.create(stylesDef); | ||
return function (_component) { | ||
@@ -49,4 +49,4 @@ _inherits(_class, _component); | ||
value: function shouldComponentUpdate(nextProps, nextState) { | ||
var dirty = (0, _reactAddonsShallowCompare2.default)(this, nextProps, nextState); | ||
var options = optionsGetter && optionsGetter(); | ||
const dirty = (0, _reactAddonsShallowCompare2.default)(this, nextProps, nextState); | ||
const options = optionsGetter && optionsGetter(); | ||
if (options && options.log && options.log.shouldComponentUpdate) { | ||
@@ -70,3 +70,3 @@ options.log.shouldComponentUpdate(this, nextProps, nextState, dirty); | ||
value: function resolveStyle(name) { | ||
var styles = stylesResolver(this.theme, this.props); | ||
const styles = stylesResolver(this.theme, this.props); | ||
return styles.resolve(name); | ||
@@ -76,4 +76,4 @@ } | ||
key: 'theme', | ||
get: function get() { | ||
var theme = this.props.theme; | ||
get: function () { | ||
const theme = this.props.theme; | ||
@@ -84,9 +84,9 @@ return theme; | ||
key: 'styles', | ||
get: function get() { | ||
get: function () { | ||
if (!this.theme) { | ||
throw new Error('Component ' + component.name + ' not linked to Electrum'); | ||
throw new Error(`Component ${ component.name } not linked to Electrum`); | ||
} | ||
var styles = stylesResolver(this.theme, this.props); | ||
var props = this.props; | ||
var list = styles.get(props); | ||
const styles = stylesResolver(this.theme, this.props); | ||
const props = this.props; | ||
const list = styles.get(props); | ||
@@ -93,0 +93,0 @@ list.with = function () { |
@@ -30,3 +30,3 @@ 'use strict'; | ||
if (typeof component !== 'function') { | ||
throw new Error('Component ' + name + ' is not defined as a function/class'); | ||
throw new Error(`Component ${ name } is not defined as a function/class`); | ||
} | ||
@@ -37,3 +37,3 @@ if ((0, _isStatelessFunctionComponent2.default)(component)) { | ||
if (!component.render && !component.prototype.render) { | ||
throw new Error('Component ' + name + ' does not implement render()'); | ||
throw new Error(`Component ${ name } does not implement render()`); | ||
} | ||
@@ -40,0 +40,0 @@ component = (0, _extendComponent2.default)(component, stylesDef, optionsGetter); |
@@ -22,3 +22,3 @@ 'use strict'; | ||
if ((0, _checks.hasMethod)(connector, 'getElectrumBus')) { | ||
var bus = connector.getElectrumBus(); | ||
const bus = connector.getElectrumBus(); | ||
(0, _checks.verifyInterface)(bus, _bus2.default); | ||
@@ -25,0 +25,0 @@ return bus; |
@@ -10,27 +10,5 @@ 'use strict'; | ||
function wrap(wrappers, component) { | ||
var _iteratorNormalCompletion = true; | ||
var _didIteratorError = false; | ||
var _iteratorError = undefined; | ||
try { | ||
for (var _iterator = wrappers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { | ||
var wrapper = _step.value; | ||
component = wrapper.wrap(component); | ||
} | ||
} catch (err) { | ||
_didIteratorError = true; | ||
_iteratorError = err; | ||
} finally { | ||
try { | ||
if (!_iteratorNormalCompletion && _iterator.return) { | ||
_iterator.return(); | ||
} | ||
} finally { | ||
if (_didIteratorError) { | ||
throw _iteratorError; | ||
} | ||
} | ||
for (let wrapper of wrappers) { | ||
component = wrapper.wrap(component); | ||
} | ||
return component; | ||
@@ -37,0 +15,0 @@ } |
{ | ||
"name": "electrum", | ||
"version": "2.12.0", | ||
"version": "2.14.0", | ||
"description": "Electrum simplifies framework-agnostic declaration of React components.", | ||
@@ -34,3 +34,3 @@ "main": "lib/index.js", | ||
"electrum-store": "^1.4.0", | ||
"electrum-theme": "^1.5.0", | ||
"electrum-theme": "^1.6.0", | ||
"electrum-utils": "^1.3.0" | ||
@@ -45,2 +45,3 @@ }, | ||
"babel-preset-es2015": "^6.3.13", | ||
"babel-preset-node5": "^10.5.0", | ||
"babel-preset-react": "^6.3.13", | ||
@@ -47,0 +48,0 @@ "babel-preset-stage-0": "^6.3.13", |
@@ -39,3 +39,8 @@ 'use strict'; /*jshint latedef:false*/ | ||
} | ||
const props = Object.getOwnPropertyNames (obj.prototype); | ||
const proto = obj.prototype; | ||
// A pure function has no prototype | ||
if (!proto) { | ||
return true; | ||
} | ||
const props = Object.getOwnPropertyNames (proto); | ||
// A simple function has only a constructor | ||
@@ -42,0 +47,0 @@ return props.length === 1 && props[0] === 'constructor' && !isClass (obj); |
Sorry, the diff of this file is not supported yet
66
135856
21
2513
Updatedelectrum-theme@^1.6.0