UNPKG

@antv/data-wizard

Version:
163 lines (162 loc) 4.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.flatten = exports.isParentChild = exports.assert = exports.range = exports.unique = exports.isBasicType = exports.isArray = exports.isObject = exports.isBoolean = exports.isDate = exports.isFloat = exports.isInteger = exports.isDigit = exports.isNumber = exports.isString = exports.isNull = void 0; var tslib_1 = require("tslib"); var is_date_1 = require("../analyzer/is-date"); var isNull = function (value) { return value === null || value === undefined || value === '' || Number.isNaN(value) || value === 'null'; }; exports.isNull = isNull; var isString = function (value) { return typeof value === 'string'; }; exports.isString = isString; var isNumber = function (value) { return typeof value === 'number' && !Number.isNaN(value); }; exports.isNumber = isNumber; /** * Checks if value is an digit * @param value * @returns */ var isDigit = function (value) { var hasDot = false; var tempValue = value; if (/^[+-]/.test(tempValue)) { tempValue = tempValue.slice(1); } for (var i = 0; i < tempValue.length; i += 1) { var char = tempValue[i]; if (char === '.') { if (hasDot === false) { hasDot = true; } else { return false; } } if (char !== '.' && !/[0-9]/.test(char)) { return false; } } return tempValue.trim() !== ''; }; exports.isDigit = isDigit; var isInteger = function (value, convertString) { if (typeof value === 'number') return Number.isInteger(value); if (convertString && exports.isString(value) && exports.isDigit(value)) return !value.includes('.'); return false; }; exports.isInteger = isInteger; var isFloat = function (value, convertString) { if (typeof value === 'number') return !Number.isNaN(value) && !Number.isInteger(value); if (convertString && exports.isString(value) && exports.isDigit(value)) return value.includes('.'); return false; }; exports.isFloat = isFloat; var isDate = function (value, convertString) { if (value && Object.getPrototypeOf(value) === Date.prototype) return true; if (convertString && exports.isString(value)) return is_date_1.isDateString(value); return false; }; exports.isDate = isDate; var isBoolean = function (value, convertStringAndNumber) { return convertStringAndNumber ? [ [true, false], [0, 1], ['true', 'false'], ['Yes', 'No'], ['True', 'False'], ['0', '1'], ['是', '否'], ].some(function (list) { return value.every(function (item) { return list.includes(item); }); }) : typeof value === 'boolean'; }; exports.isBoolean = isBoolean; var isObject = function (value) { return value && Object.getPrototypeOf(value) === Object.prototype; }; exports.isObject = isObject; var isArray = function (value) { return Array.isArray(value); }; exports.isArray = isArray; var isBasicType = function (value) { return !exports.isArray(value) && !exports.isObject(value); }; exports.isBasicType = isBasicType; var unique = function (array) { return Array.from(new Set(array)); }; exports.unique = unique; /** * Generate an array from 0 to number. * @param number */ var range = function (number) { return tslib_1.__spreadArray([], tslib_1.__read(Array(number).keys())); }; exports.range = range; /** * assert * @param condition * @param errorMessage */ var assert = function (condition, errorMessage) { if (!condition) throw new Error(errorMessage); }; exports.assert = assert; /** * Judge parent-child relationship. A child has only one parent, but a parent can have more children. * @param parent * @param child */ var isParentChild = function (parent, child) { if (!exports.isArray(parent) || parent.length === 0 || !exports.isArray(child) || child.length === 0 || parent.length !== child.length) return false; var record = {}; for (var i = 0; i < child.length; i += 1) { var c = child[i]; var p = parent[i]; if (!record[c]) { record[c] = p; } else if (record[c] !== p) { return false; } } return true; }; exports.isParentChild = isParentChild; /** * Return the flattened result of the array. * @param array - The array to process */ function flatten(array) { var res = []; for (var i = 0; i < array.length; i += 1) { if (exports.isArray(array[i])) { res = res.concat(flatten(array[i])); } else { res.push(array[i]); } } return res; } exports.flatten = flatten;