@rxx/core
Version:
React MVI micro framework.
185 lines • 11.8 kB
JavaScript
;
/**
* The MIT License (MIT)
* Copyright (c) Taketoshi Aono
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* @fileoverview
* @author Taketoshi Aono
*/
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var React = tslib_1.__importStar(require("react"));
var OBJECT_REGEXP = /\[object ([^\]]+)\]/;
var toStringClass = function (o) {
return o ? Object.prototype.toString.call(o).match(OBJECT_REGEXP)[1] : 'null';
};
function symbol(val) {
return typeof Symbol === 'function' ? Symbol(val) : val;
}
exports.symbol = symbol;
function isDefined(obj) {
return obj !== undefined && obj !== null;
}
exports.isDefined = isDefined;
function assign(base, append) {
return tslib_1.__assign({}, base, append);
}
exports.assign = assign;
function extend(base, append) {
for (var key in append) {
base[key] = append[key];
}
return base;
}
exports.extend = extend;
function omit(obj, name) {
var ret = {};
var omits = typeof name === 'string' ? [name] : name;
for (var key in obj) {
if (omits.indexOf(key) === -1) {
ret[key] = obj[key];
}
}
return ret;
}
exports.omit = omit;
function forIn(obj, cb) {
for (var key in obj || {}) {
cb(obj[key], key, obj);
}
}
exports.forIn = forIn;
function isObject(obj) {
return toStringClass(obj) === 'Object';
}
exports.isObject = isObject;
exports.STATE_ENTITY = '__RMVI_STATE_ENTITY__';
function isSimpleObject(obj) {
return isObject(obj) && (obj.constructor === Object && !obj[exports.STATE_ENTITY]);
}
exports.isSimpleObject = isSimpleObject;
function isArray(obj) {
return toStringClass(obj) === 'Array';
}
exports.isArray = isArray;
function isRegExp(obj) {
return toStringClass(obj) === 'RegExp';
}
exports.isRegExp = isRegExp;
function filter(obj, cb) {
if (isArray(obj)) {
return obj.filter(cb);
}
var ret = [];
for (var key in obj || {}) {
if (cb(obj[key], key, obj)) {
ret.push(obj[key]);
}
}
return ret;
}
exports.filter = filter;
function map(obj, cb) {
if (isArray(obj)) {
return obj.map(cb);
}
var ret = [];
for (var key in obj || {}) {
ret.push(cb(obj[key], key, obj));
}
return ret;
}
exports.map = map;
function some(obj, cb) {
if (isArray(obj)) {
return obj.some(cb);
}
else if (isObject(obj)) {
for (var key in obj || {}) {
if (cb(obj[key], key, obj)) {
return true;
}
}
}
return false;
}
exports.some = some;
function every(obj, cb) {
if (isArray(obj)) {
return obj.every(cb);
}
else if (isObject(obj)) {
for (var key in obj || {}) {
if (!cb(obj[key], key, obj)) {
return false;
}
}
}
return true;
}
exports.every = every;
function mapValues(obj, cb) {
var ret = {};
for (var key in obj || {}) {
ret[key] = cb(obj[key], key, obj);
}
return ret;
}
exports.mapValues = mapValues;
function clone(target) {
if (isObject(target)) {
return tslib_1.__assign({}, target);
}
else if (isArray(target)) {
return target.slice();
}
return target;
}
exports.clone = clone;
function mergeDeep(target, source) {
if (target === source) {
return target;
}
var isTargetReactElement = React.isValidElement(target);
var isSourceReactElement = React.isValidElement(source);
if (isTargetReactElement || isSourceReactElement) {
return source;
}
if (isSimpleObject(target) && isSimpleObject(source)) {
var ret_1 = tslib_1.__assign({}, target);
Object.keys(source).forEach(function (key) {
if (isSimpleObject(source[key])) {
if (!(key in ret_1)) {
ret_1[key] = {};
}
ret_1[key] = mergeDeep(ret_1[key], source[key]);
}
else {
ret_1[key] = source[key];
}
});
return ret_1;
}
return source;
}
exports.mergeDeep = mergeDeep;
var IDGenerator = /** @class */ (function () {
function IDGenerator() {
}
IDGenerator.genNextId = function () {
return this.id++;
};
IDGenerator.id = 0;
return IDGenerator;
}());
exports.IDGenerator = IDGenerator;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsbURBQStCO0FBRS9CLElBQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQzVDLElBQU0sYUFBYSxHQUFHLFVBQUEsQ0FBQztJQUNyQixPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtBQUF2RSxDQUF1RSxDQUFDO0FBRTFFLFNBQWdCLE1BQU0sQ0FBQyxHQUFXO0lBQ2hDLE9BQU8sT0FBTyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUMxRCxDQUFDO0FBRkQsd0JBRUM7QUFFRCxTQUFnQixTQUFTLENBQUMsR0FBUTtJQUNoQyxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixNQUFNLENBQTZCLElBQU8sRUFBRSxNQUFTO0lBQ25FLE9BQU8scUJBQU0sSUFBWSxFQUFNLE1BQWMsQ0FBUyxDQUFDO0FBQ3pELENBQUM7QUFGRCx3QkFFQztBQUVELFNBQWdCLE1BQU0sQ0FBNkIsSUFBTyxFQUFFLE1BQVM7SUFDbkUsS0FBSyxJQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFDdkIsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNsQztJQUVELE9BQU8sSUFBVyxDQUFDO0FBQ3JCLENBQUM7QUFORCx3QkFNQztBQUVELFNBQWdCLElBQUksQ0FBQyxHQUFRLEVBQUUsSUFBdUI7SUFDcEQsSUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2YsSUFBTSxLQUFLLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDdkQsS0FBSyxJQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUU7UUFDckIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDckI7S0FDRjtJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQVZELG9CQVVDO0FBRUQsU0FBZ0IsS0FBSyxDQUNuQixHQUFNLEVBQ04sRUFBdUQ7SUFFdkQsS0FBSyxJQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO1FBQzNCLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQztBQVBELHNCQU9DO0FBRUQsU0FBZ0IsUUFBUSxDQUN0QixHQUFZO0lBRVosT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxDQUFDO0FBQ3pDLENBQUM7QUFKRCw0QkFJQztBQUVZLFFBQUEsWUFBWSxHQUFHLHVCQUF1QixDQUFDO0FBRXBELFNBQWdCLGNBQWMsQ0FBQyxHQUFRO0lBQ3JDLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsb0JBQVksQ0FBQyxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0IsT0FBTyxDQUFDLEdBQVE7SUFDOUIsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLEtBQUssT0FBTyxDQUFDO0FBQ3hDLENBQUM7QUFGRCwwQkFFQztBQUVELFNBQWdCLFFBQVEsQ0FBQyxHQUFRO0lBQy9CLE9BQU8sYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsQ0FBQztBQUN6QyxDQUFDO0FBRkQsNEJBRUM7QUFVRCxTQUFnQixNQUFNLENBQ3BCLEdBQVksRUFDWixFQUEwRDtJQUUxRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBUyxDQUFRLENBQUM7S0FDckM7SUFDRCxJQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxJQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO1FBQzNCLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7WUFDMUIsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNwQjtLQUNGO0lBRUQsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBZkQsd0JBZUM7QUFVRCxTQUFnQixHQUFHLENBQ2pCLEdBQVksRUFDWixFQUFzRDtJQUV0RCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNoQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBUyxDQUFRLENBQUM7S0FDbEM7SUFDRCxJQUFNLEdBQUcsR0FBUSxFQUFFLENBQUM7SUFDcEIsS0FBSyxJQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO1FBQzNCLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztLQUNsQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWJELGtCQWFDO0FBRUQsU0FBZ0IsSUFBSSxDQUNsQixHQUFNLEVBQ04sRUFBa0U7SUFFbEUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDaEIsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQVMsQ0FBQyxDQUFDO0tBQzVCO1NBQU0sSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDeEIsS0FBSyxJQUFNLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxFQUFFO1lBQzNCLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUU7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtLQUNGO0lBRUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDO0FBZkQsb0JBZUM7QUFFRCxTQUFnQixLQUFLLENBQ25CLEdBQU0sRUFDTixFQUFrRTtJQUVsRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNoQixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBUyxDQUFDLENBQUM7S0FDN0I7U0FBTSxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUN4QixLQUFLLElBQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDM0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixPQUFPLEtBQUssQ0FBQzthQUNkO1NBQ0Y7S0FDRjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQWZELHNCQWVDO0FBRUQsU0FBZ0IsU0FBUyxDQUN2QixHQUFNLEVBQ04sRUFBaUQ7SUFFakQsSUFBTSxHQUFHLEdBQVEsRUFBRSxDQUFDO0lBQ3BCLEtBQUssSUFBTSxHQUFHLElBQUksR0FBRyxJQUFJLEVBQUUsRUFBRTtRQUMzQixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDbkM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFWRCw4QkFVQztBQUVELFNBQWdCLEtBQUssQ0FBSSxNQUFTO0lBQ2hDLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3BCLDRCQUFhLE1BQWMsRUFBRztLQUMvQjtTQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzFCLE9BQVEsTUFBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0tBQ2hDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVJELHNCQVFDO0FBRUQsU0FBZ0IsU0FBUyxDQUFPLE1BQVMsRUFBRSxNQUFTO0lBQ2xELElBQUssTUFBYyxLQUFNLE1BQWMsRUFBRTtRQUN2QyxPQUFPLE1BQWEsQ0FBQztLQUN0QjtJQUNELElBQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRCxJQUFNLG9CQUFvQixHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsSUFBSSxvQkFBb0IsSUFBSSxvQkFBb0IsRUFBRTtRQUNoRCxPQUFPLE1BQWEsQ0FBQztLQUN0QjtJQUVELElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUNwRCxJQUFNLEtBQUcsd0JBQVMsTUFBYyxDQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHO1lBQzdCLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO2dCQUMvQixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksS0FBRyxDQUFDLEVBQUU7b0JBQ2pCLEtBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7aUJBQ2Y7Z0JBQ0QsS0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsS0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxLQUFHLENBQUM7S0FDWjtJQUVELE9BQU8sTUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUEzQkQsOEJBMkJDO0FBRUQ7SUFBQTtJQUtBLENBQUM7SUFIZSxxQkFBUyxHQUF2QjtRQUNFLE9BQU8sSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFIYyxjQUFFLEdBQUcsQ0FBQyxDQUFDO0lBSXhCLGtCQUFDO0NBQUEsQUFMRCxJQUtDO0FBTFksa0NBQVcifQ==