{"version":3,"file":"check.cjs","sources":["../../src/check.ts"],"sourcesContent":["/**\n * @ Author: Hanrea\n * @ version: 2023-03-06 13:14:21\n * @ copyright: Vecmat (c) - <hi(at)vecmat.com>\n */\n\nimport lodash from \"lodash\";\nimport { IObjExt } from \"./type.js\";\n\n/**\n * Checks if fn is a Class\n *\n * @param {IObjExt} obj\n * @returns {boolean}\n */\nexport function isClass(func: IObjExt): boolean {\n    return typeof func === \"function\" && /^class\\s/.test(Function.prototype.toString.call(func));\n}\n\n/**\n * Checks if value is a string that contains only numbers\n *\n * @param {string} str\n * @returns {*}  {boolean}\n */\nexport function isNumberString(str: string): boolean {\n    const numberReg = /^((-?\\d*\\.?\\d*(?:e[+-]?\\d*(?:\\d?\\.?|\\.?\\d?)\\d*)?)|(0[0-7]+)|(0x[0-9a-f]+))$/i;\n    return lodash.isString(str) && !isEmpty(str) && numberReg.test(str);\n}\n\n/**\n * Checks if value is a standard JSON object,\n * must be a plain object or array\n *\n * @param {IObjExt} value\n * @returns {*}  {boolean}\n */\nexport function isJSONObj(value: IObjExt): boolean {\n    return lodash.isPlainObject(value) || lodash.isArray(value);\n}\n\n/**\n * Checks if value is a standard JSON string,\n * must be a string, and can be deserialized as an plain object or array\n *\n * @param {string} value\n * @returns {*}  {boolean}\n */\nexport function isJSONStr(value: string): boolean {\n    if (!lodash.isString(value)) return false;\n    try {\n        return isJSONObj(JSON.parse(value));\n    } catch (e) {\n        return false;\n    }\n}\n\n/**\n * Checks value is empty,\n * undefined, null, '', NaN, [], {} and any empty string(including spaces, tabs, formfeeds, etc.), returns true\n *\n * @param {*} value\n * @returns {*}  {boolean}\n */\nexport function isEmpty(value: any): boolean {\n    if (value === undefined || value === null || value === \"\") {\n        return true;\n    } else if (lodash.isString(value)) {\n        // \\s 匹配任何空白字符，包括空格、制表符、换页符等等。等价于 [ \\f\\n\\r\\t\\v]。\n        return value.replace(/(^\\s*)|(\\s*$)/g, \"\").length === 0;\n    } else if (lodash.isNumber(value)) {\n        return isNaN(value);\n    } else if (lodash.isArray(value)) {\n        return value.length === 0;\n    } else if (lodash.isPlainObject(value)) {\n        return Object.keys(value).length === 0;\n    }\n    return false;\n}\n\n/**\n * Checks value is empty,\n * do not consider empty objects, empty arrays, spaces, tabs, form breaks, etc.\n *\n * @param {*} value\n * @returns {*}  {boolean}\n */\nexport function isTrueEmpty(value: any): boolean {\n    if (value === undefined || value === null || value === \"\") return true;\n    if (lodash.isNumber(value)) return isNaN(value);\n    return false;\n}\n"],"names":["lodash"],"mappings":";;;;;;;;AAAA;;;;AAIG;AAKH;;;;;AAKG;AACG,SAAU,OAAO,CAAC,IAAa,EAAA;IACjC,OAAO,OAAO,IAAI,KAAK,UAAU,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;;;;;AAKG;AACG,SAAU,cAAc,CAAC,GAAW,EAAA;IACtC,MAAM,SAAS,GAAG,8EAA8E,CAAC;AACjG,IAAA,OAAOA,uBAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxE,CAAC;AAED;;;;;;AAMG;AACG,SAAU,SAAS,CAAC,KAAc,EAAA;AACpC,IAAA,OAAOA,uBAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAIA,uBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;AAMG;AACG,SAAU,SAAS,CAAC,KAAa,EAAA;AACnC,IAAA,IAAI,CAACA,uBAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC;AAC1C,IAAA,IAAI;QACA,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACvC;IAAC,OAAO,CAAC,EAAE;AACR,QAAA,OAAO,KAAK,CAAC;KAChB;AACL,CAAC;AAED;;;;;;AAMG;AACG,SAAU,OAAO,CAAC,KAAU,EAAA;AAC9B,IAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AACvD,QAAA,OAAO,IAAI,CAAC;KACf;AAAM,SAAA,IAAIA,uBAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;;AAE/B,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KAC3D;AAAM,SAAA,IAAIA,uBAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC/B,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;KACvB;AAAM,SAAA,IAAIA,uBAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC9B,QAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;KAC7B;AAAM,SAAA,IAAIA,uBAAM,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE;QACpC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;KAC1C;AACD,IAAA,OAAO,KAAK,CAAC;AACjB,CAAC;AAED;;;;;;AAMG;AACG,SAAU,WAAW,CAAC,KAAU,EAAA;IAClC,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;AAAE,QAAA,OAAO,IAAI,CAAC;AACvE,IAAA,IAAIA,uBAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,QAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;AAChD,IAAA,OAAO,KAAK,CAAC;AACjB;;;;;;;;;"}