UNPKG

framework4js

Version:

Framework-for-js is a better Javascript's framework

192 lines (183 loc) 5.44 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _qs = _interopRequireDefault(require("qs")); /** * Class Lib * import Underscore || Lodash is so big... */ var Lib = /*#__PURE__*/function () { function Lib() { (0, _classCallCheck2["default"])(this, Lib); } (0, _createClass2["default"])(Lib, null, [{ key: "typeOf", value: /** * typeOf 类型 * @param {*} value */ function typeOf(value) { return (0, _typeof2["default"])(value); } /** * getTag 处理类型 * @param {*} value */ }, { key: "getTag", value: function getTag(value) { return Object.prototype.toString.call(value); } /** * Method isFunction * @param {*} value * @returns */ }, { key: "isFunction", value: function isFunction(value) { return Lib.typeOf(value) === 'function' && Lib.getTag(value) === '[object Function]'; } /** * isString 是否字符串 * @param {String} value */ }, { key: "isString", value: function isString(value) { return Lib.typeOf(value) === 'string' || Lib.typeOf(value) === 'object' && value != null && !Array.isArray(value) && Lib.getTag(value) === '[object String]'; } /** * isObject 是否对象 * @param {Object} value */ }, { key: "isObject", value: function isObject(value) { return Lib.getTag(value) === '[object Object]'; } /** * isObject 是否Undefined * @param {*} value * @return boolean */ }, { key: "isUndefined", value: function isUndefined(value) { return Lib.getTag(value) === '[object Undefined]' || value === undefined; } /** * isClass 是否类 * @param {*} value * @return boolean */ }, { key: "isClass", value: function isClass(value) { // isFunction if (!Lib.isFunction(value)) { return false; } // Function toString var str = value.toString(); // async function or arrow function if (value.prototype === undefined) return false; // generator function or malformed definition if (value.prototype.constructor !== value) return false; // ES6 class if (str.slice(0, 5) === 'class') return true; // has own prototype properties if (Object.getOwnPropertyNames(value.prototype).length >= 2) return true; // anonymous function if (/^function\s+\(|^function\s+anonymous\(/.test(str)) return false; // Other return false; } /** * 字符串去除首尾字符 * @param str 字符串 * @param char 字符 * @param type 类型 */ }, { key: "strTrim", value: function strTrim(str, _char, type) { if (_char) { if (type === 'L') { return str.replace(new RegExp('^\\' + _char + '+', 'g'), ''); } else if (type === 'R') { return str.replace(new RegExp('\\' + _char + '+$', 'g'), ''); } return str.replace(new RegExp('^\\' + _char + '+|\\' + _char + '+$', 'g'), ''); } return str.replace(/^\s+|\s+$/g, ''); } // /** // * Method isClass // * @param {*} obj // * @returns // */ // static isClass(obj) { // if (!Lib.isFunction(obj)) { // return false; // } // // // function toString // let str = obj.toString(); // // // async function or arrow function // if (obj.prototype === undefined) return false; // // generator function or malformed definition // if (obj.prototype.constructor !== obj) return false; // // ES6 class // if (str.slice(0, 5) == "class") return true; // // has own prototype properties // if (Object.getOwnPropertyNames(obj.prototype).length >= 2) return true; // // anonymous function // if (/^function\s+\(|^function\s+anonymous\(/.test(str)) return false; // // ES5 class without `this` in the body and the name's first character // // upper-cased. // if (strict && /^function\s+[A-Z]/.test(str)) return true; // // has `this` in the body // if (/\b\(this\b|\bthis[\.\[]\b/.test(str)) { // // not strict or ES5 class generated by babel // if (!strict || /classCallCheck\(this/.test(str)) return true; // return /^function\sdefault_\d+\s*\(/.test(str); // } // // return false; // } }, { key: "qs", value: function qs(data) { if (Lib.isObject(data)) { return Lib.qsStringify(data); } } }, { key: "qsStringify", value: function qsStringify(obj) { if (!Lib.isObject(obj)) { return obj; } return _qs["default"].stringify(obj); } }, { key: "qsParse", value: function qsParse(str) { if (typeof str != 'string') { return str; } return _qs["default"].parse(str); } }]); return Lib; }(); exports["default"] = Lib;