UNPKG

@rxx/core

Version:

React MVI micro framework.

185 lines 11.8 kB
"use strict"; /** * 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUgsbURBQStCO0FBRS9CLElBQU0sYUFBYSxHQUFHLHFCQUFxQixDQUFDO0FBQzVDLElBQU0sYUFBYSxHQUFHLFVBQUEsQ0FBQztJQUNyQixPQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTTtBQUF2RSxDQUF1RSxDQUFDO0FBRTFFLFNBQWdCLE1BQU0sQ0FBQyxHQUFXO0lBQ2hDLE9BQU8sT0FBTyxNQUFNLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUMxRCxDQUFDO0FBRkQsd0JBRUM7QUFFRCxTQUFnQixTQUFTLENBQUMsR0FBUTtJQUNoQyxPQUFPLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksQ0FBQztBQUMzQyxDQUFDO0FBRkQsOEJBRUM7QUFFRCxTQUFnQixNQUFNLENBQTZCLElBQU8sRUFBRSxNQUFTO0lBQ25FLE9BQU8scUJBQU0sSUFBWSxFQUFNLE1BQWMsQ0FBUyxDQUFDO0FBQ3pELENBQUM7QUFGRCx3QkFFQztBQUVELFNBQWdCLE1BQU0sQ0FBNkIsSUFBTyxFQUFFLE1BQVM7SUFDbkUsS0FBSyxJQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUU7UUFDdkIsSUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztLQUNsQztJQUVELE9BQU8sSUFBVyxDQUFDO0FBQ3JCLENBQUM7QUFORCx3QkFNQztBQUVELFNBQWdCLElBQUksQ0FB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