UNPKG

@antv/data-wizard

Version:
144 lines (143 loc) 4.04 kB
import { __read, __spreadArray } from "tslib"; import { isDateString } from '../analyzer/is-date'; export var isNull = function (value) { return value === null || value === undefined || value === '' || Number.isNaN(value) || value === 'null'; }; export var isString = function (value) { return typeof value === 'string'; }; export var isNumber = function (value) { return typeof value === 'number' && !Number.isNaN(value); }; /** * Checks if value is an digit * @param value * @returns */ export 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() !== ''; }; export var isInteger = function (value, convertString) { if (typeof value === 'number') return Number.isInteger(value); if (convertString && isString(value) && isDigit(value)) return !value.includes('.'); return false; }; export var isFloat = function (value, convertString) { if (typeof value === 'number') return !Number.isNaN(value) && !Number.isInteger(value); if (convertString && isString(value) && isDigit(value)) return value.includes('.'); return false; }; export var isDate = function (value, convertString) { if (value && Object.getPrototypeOf(value) === Date.prototype) return true; if (convertString && isString(value)) return isDateString(value); return false; }; export 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'; }; export var isObject = function (value) { return value && Object.getPrototypeOf(value) === Object.prototype; }; export var isArray = function (value) { return Array.isArray(value); }; export var isBasicType = function (value) { return !isArray(value) && !isObject(value); }; export var unique = function (array) { return Array.from(new Set(array)); }; /** * Generate an array from 0 to number. * @param number */ export var range = function (number) { return __spreadArray([], __read(Array(number).keys())); }; /** * assert * @param condition * @param errorMessage */ export var assert = function (condition, errorMessage) { if (!condition) throw new Error(errorMessage); }; /** * Judge parent-child relationship. A child has only one parent, but a parent can have more children. * @param parent * @param child */ export var isParentChild = function (parent, child) { if (!isArray(parent) || parent.length === 0 || !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; }; /** * Return the flattened result of the array. * @param array - The array to process */ export function flatten(array) { var res = []; for (var i = 0; i < array.length; i += 1) { if (isArray(array[i])) { res = res.concat(flatten(array[i])); } else { res.push(array[i]); } } return res; }