Skip to content

Commit 9440a07

Browse files
committed
[build] 0.7.0
support custom preset config and update load method as in [https://github.com/Chimeejs/chimee/issues/55](https://github.com/Chimeejs/chimee/issues/55)
1 parent c944b0d commit 9440a07

File tree

9 files changed

+466
-211
lines changed

9 files changed

+466
-211
lines changed

bundle-size/common.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

bundle-size/es.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

bundle-size/min.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

bundle-size/umd.html

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

lib/index.browser.js

Lines changed: 242 additions & 153 deletions
Large diffs are not rendered by default.

lib/index.js

Lines changed: 109 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
/**
3-
* chimee v0.6.4
3+
* chimee v0.7.0
44
* (c) 2017 toxic-johann
55
* Released under MIT
66
*/
@@ -17,9 +17,9 @@ var _createClass = _interopDefault(require('babel-runtime/helpers/createClass'))
1717
var _possibleConstructorReturn = _interopDefault(require('babel-runtime/helpers/possibleConstructorReturn'));
1818
var _get = _interopDefault(require('babel-runtime/helpers/get'));
1919
var _inherits = _interopDefault(require('babel-runtime/helpers/inherits'));
20+
var _toConsumableArray = _interopDefault(require('babel-runtime/helpers/toConsumableArray'));
2021
var _slicedToArray = _interopDefault(require('babel-runtime/helpers/slicedToArray'));
2122
var _Object$entries = _interopDefault(require('babel-runtime/core-js/object/entries'));
22-
var _toConsumableArray = _interopDefault(require('babel-runtime/helpers/toConsumableArray'));
2323
var _Object$assign = _interopDefault(require('babel-runtime/core-js/object/assign'));
2424
var _Promise = _interopDefault(require('babel-runtime/core-js/promise'));
2525
var _typeof = _interopDefault(require('babel-runtime/helpers/typeof'));
@@ -759,7 +759,10 @@ var VideoConfig = (_dec$5 = toxicDecorators.initBoolean(), _dec2$3 = toxicDecora
759759
return str.toLocaleLowerCase();
760760
}), _class$5 = function () {
761761

762-
// 会逐渐被遗弃
762+
// 此处 box 只能置空,因为 kernel 会自动根据你的安装 kernel 和相关地址作智能判断。
763+
// 曾经 bug 详见 https://github.com/Chimeejs/chimee-kernel/issues/1
764+
765+
// kernels 不在 videoConfig 上设置默认值,防止判断出错
763766
function VideoConfig(dispatcher, config) {
764767
_classCallCheck(this, VideoConfig);
765768

@@ -776,6 +779,7 @@ var VideoConfig = (_dec$5 = toxicDecorators.initBoolean(), _dec2$3 = toxicDecora
776779
_initDefineProp$1(this, 'box', _descriptor5, this);
777780

778781
this.preset = {};
782+
this.presetConfig = {};
779783
this.autoload = true;
780784
this.autoplay = false;
781785
this.controls = false;
@@ -816,10 +820,7 @@ var VideoConfig = (_dec$5 = toxicDecorators.initBoolean(), _dec2$3 = toxicDecora
816820
chimeeHelper.deepAssign(this, config);
817821
}
818822

819-
// 此处 box 只能置空,因为 kernel 会自动根据你的安装 kernel 和相关地址作智能判断。
820-
// 曾经 bug 详见 https://github.com/Chimeejs/chimee-kernel/issues/1
821-
822-
// kernels 不在 videoConfig 上设置默认值,防止判断出错
823+
// 转为供 kernel 使用的内部参数
823824

824825

825826
_createClass(VideoConfig, [{
@@ -864,7 +865,7 @@ var VideoConfig = (_dec$5 = toxicDecorators.initBoolean(), _dec2$3 = toxicDecora
864865
}), _descriptor6 = _applyDecoratedDescriptor$4(_class$5.prototype, '_kernelProperty', [toxicDecorators.frozen], {
865866
enumerable: true,
866867
initializer: function initializer() {
867-
return ['isLive', 'box', 'preset', 'kernels'];
868+
return ['isLive', 'box', 'preset', 'kernels', 'presetConfig'];
868869
}
869870
}), _descriptor7 = _applyDecoratedDescriptor$4(_class$5.prototype, '_realDomAttr', [toxicDecorators.frozen], {
870871
enumerable: true,
@@ -1438,7 +1439,7 @@ var Plugin = (_dec$3 = toxicDecorators.autobindClass(), _dec$3(_class$3 = functi
14381439
var _this = _possibleConstructorReturn(this, (Plugin.__proto__ || _Object$getPrototypeOf(Plugin)).call(this));
14391440

14401441
_this.destroyed = false;
1441-
_this.VERSION = '0.6.4';
1442+
_this.VERSION = '0.7.0';
14421443
_this.__operable = true;
14431444
_this.__level = 0;
14441445

@@ -2698,8 +2699,8 @@ var Dispatcher = (_dec$1 = toxicDecorators.before(convertNameIntoId), _dec2 = to
26982699
}, {
26992700
key: 'destroy',
27002701
value: function destroy() {
2701-
for (var key in this.plugins) {
2702-
this.unuse(key);
2702+
for (var _key in this.plugins) {
2703+
this.unuse(_key);
27032704
}
27042705
this.bus.destroy();
27052706
delete this.bus;
@@ -2804,15 +2805,97 @@ var Dispatcher = (_dec$1 = toxicDecorators.before(convertNameIntoId), _dec2 = to
28042805
/* istanbul ignore else */
28052806

28062807
if (process.env.NODE_ENV !== 'production' && chimeeHelper.isEmpty(kernels) && !chimeeHelper.isEmpty(preset)) chimeeHelper.Log.warn('preset will be deprecated in next major version, please use kernels instead.');
2807-
var newPreset = chimeeHelper.isArray(kernels) ? kernels.reduce(function (kernels, key) {
2808-
if (!chimeeHelper.isFunction(kernelsSet[key])) {
2809-
chimeeHelper.Log.warn('You have not installed kernel for ' + key + '.');
2808+
var presetConfig = {};
2809+
var newPreset = {};
2810+
if (chimeeHelper.isArray(kernels)) {
2811+
// SKC means SingleKernelConfig
2812+
newPreset = kernels.reduce(function (kernels, keyOrSKC) {
2813+
// if it is a string key, it means the kernel has been pre installed.
2814+
if (chimeeHelper.isString(keyOrSKC)) {
2815+
var kernelFn = kernelsSet[keyOrSKC];
2816+
if (!chimeeHelper.isFunction(kernelFn)) {
2817+
chimeeHelper.Log.warn('You have not installed kernel for ' + keyOrSKC + '.');
2818+
return kernels;
2819+
}
2820+
kernels[keyOrSKC] = kernelFn;
2821+
return kernels;
2822+
}
2823+
// if it is a SingleKernelConfig, it means user may pass in some config here
2824+
// so we need to extract the handler
2825+
// get the name of the handler
2826+
// and collect the config for the handler
2827+
if (chimeeHelper.isObject(keyOrSKC)) {
2828+
var name = keyOrSKC.name,
2829+
handler = keyOrSKC.handler;
2830+
// if the handler is a pure string, it means the kernel has been pre installed
2831+
2832+
if (chimeeHelper.isString(handler)) {
2833+
var _kernelFn = kernelsSet[handler];
2834+
if (!chimeeHelper.isFunction(_kernelFn)) {
2835+
chimeeHelper.Log.warn('You have not installed kernel for ' + handler + '.');
2836+
return kernels;
2837+
}
2838+
kernels[handler] = _kernelFn;
2839+
presetConfig[handler] = keyOrSKC;
2840+
return kernels;
2841+
}
2842+
// if the handler is a function, it means that the user pass in the kernel directly
2843+
// if the provide name, we use it as kernel name
2844+
// if they do not provide name, we just use the function's name
2845+
if (chimeeHelper.isFunction(handler)) {
2846+
var kernelName = name || handler.name;
2847+
kernels[kernelName] = handler;
2848+
presetConfig[kernelName] = keyOrSKC;
2849+
return kernels;
2850+
}
2851+
chimeeHelper.Log.warn('When you pass in an SingleKernelConfig in Array, you must clarify it\'s handler, we only support handler in string or function but not ' + (typeof handler === 'undefined' ? 'undefined' : _typeof(handler)));
2852+
return kernels;
2853+
}
2854+
chimeeHelper.Log.warn('If you pass in kernels as array, you must pass in kernels in string or function, but not ' + (typeof keyOrSKC === 'undefined' ? 'undefined' : _typeof(keyOrSKC)));
28102855
return kernels;
2811-
}
2812-
kernels[key] = kernelsSet[key];
2813-
return kernels;
2814-
}, {}) : chimeeHelper.isObject(kernels) ? kernels : {};
2856+
}, {});
2857+
}
2858+
2859+
if (chimeeHelper.isObject(kernels)) {
2860+
// SKC means SingleKernelConfig
2861+
_Object$entries(kernels).forEach(function (_ref2) {
2862+
var _ref3 = _slicedToArray(_ref2, 2),
2863+
key = _ref3[0],
2864+
fnOrSKC = _ref3[1];
2865+
2866+
// if it's a function, means we need to do nothing
2867+
if (chimeeHelper.isFunction(fnOrSKC)) {
2868+
newPreset[key] = fnOrSKC;
2869+
return;
2870+
}
2871+
if (chimeeHelper.isObject(fnOrSKC)) {
2872+
var handler = fnOrSKC.handler;
2873+
// if handler is an string, it means user has pre install it
2874+
2875+
if (chimeeHelper.isString(handler)) {
2876+
var kernelFn = kernelsSet[handler];
2877+
if (!chimeeHelper.isFunction(kernelFn)) {
2878+
chimeeHelper.Log.warn('You have not installed kernel for ' + handler + '.');
2879+
return;
2880+
}
2881+
newPreset[key] = kernelFn;
2882+
presetConfig[key] = fnOrSKC;
2883+
return;
2884+
}
2885+
if (chimeeHelper.isFunction(handler)) {
2886+
newPreset[key] = handler;
2887+
presetConfig[key] = fnOrSKC;
2888+
return;
2889+
}
2890+
chimeeHelper.Log.warn('When you pass in an SingleKernelConfig in Object, you must clarify it\'s handler, we only support handler in string or function but not ' + (typeof handler === 'undefined' ? 'undefined' : _typeof(handler)));
2891+
return;
2892+
}
2893+
chimeeHelper.Log.warn('If you pass in kernels as object, you must pass in kernels in string or function, but not ' + (typeof fnOrSKC === 'undefined' ? 'undefined' : _typeof(fnOrSKC)));
2894+
return kernels;
2895+
});
2896+
}
28152897
config.preset = _Object$assign(newPreset, preset);
2898+
config.presetConfig = presetConfig;
28162899
var kernel = new Kernel(video, config);
28172900
return kernel;
28182901
}
@@ -2828,8 +2911,8 @@ var Dispatcher = (_dec$1 = toxicDecorators.before(convertNameIntoId), _dec2 = to
28282911
var _fn = function _fn() {
28292912
var _bus;
28302913

2831-
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
2832-
args[_key] = arguments[_key];
2914+
for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
2915+
args[_key2] = arguments[_key2];
28332916
}
28342917

28352918
return (_bus = _this6.bus).triggerSync.apply(_bus, [key].concat(_toConsumableArray(args)));
@@ -2892,13 +2975,13 @@ var Dispatcher = (_dec$1 = toxicDecorators.before(convertNameIntoId), _dec2 = to
28922975
key: 'installKernel',
28932976
value: function installKernel(key, value) {
28942977
var tasks = chimeeHelper.isObject(key) ? _Object$entries(key) : [[key, value]];
2895-
tasks.forEach(function (_ref2) {
2896-
var _ref3 = _slicedToArray(_ref2, 2),
2897-
key = _ref3[0],
2898-
value = _ref3[1];
2978+
tasks.forEach(function (_ref4) {
2979+
var _ref5 = _slicedToArray(_ref4, 2),
2980+
key = _ref5[0],
2981+
value = _ref5[1];
28992982

29002983
if (!chimeeHelper.isFunction(value)) throw new Error('The kernel you install on ' + key + ' must be a Function, but not ' + (typeof value === 'undefined' ? 'undefined' : _typeof(value)));
2901-
if (chimeeHelper.isFunction(kernelsSet[key])) chimeeHelper.Log.warn('You have alrady install a kenrle on ' + key + ', and now we will replace it');
2984+
if (chimeeHelper.isFunction(kernelsSet[key])) chimeeHelper.Log.warn('You have alrady install a kernel on ' + key + ', and now we will replace it');
29022985
kernelsSet[key] = value;
29032986
});
29042987
}
@@ -3150,7 +3233,7 @@ var Chimee = (_dec = toxicDecorators.autobindClass(), _dec(_class = (_class2 = (
31503233
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'version', [toxicDecorators.frozen], {
31513234
enumerable: true,
31523235
initializer: function initializer() {
3153-
return '0.6.4';
3236+
return '0.7.0';
31543237
}
31553238
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, 'config', [toxicDecorators.frozen], {
31563239
enumerable: true,

lib/index.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)