UNPKG

@techmely/utils

Version:

Collection of helpful JavaScript / TypeScript utils

138 lines (133 loc) 3.6 kB
/*! * @techmely/utils * Copyright(c) 2021-2024 Techmely <techmely.creation@gmail.com> * MIT Licensed */ import { platform } from "./chunk-5IEGYJY4.mjs"; import { toBoolean } from "./chunk-5EZFB54B.mjs"; import { envs, nodeENV } from "./chunk-3RC6KXF4.mjs"; // src/is.ts function isNotNull(v) { return v !== null; } function isArray(val) { return val && Array.isArray(val); } function isPrimitive(value) { if (value === null) { return true; } return !["array", "function", "object"].includes(typeof value); } var isDef = (val) => typeof val !== "undefined"; var isUndef = (val) => !isDef(val); var isBoolean = (val) => typeof val === "boolean"; var isFunction = (val) => typeof val === "function"; var isNumber = (val) => toString.call(val) === "[object Number]"; var isString = (val) => typeof val === "string"; var isObject = (val) => toString.call(val) === "[object Object]"; var isMap = (val) => toString.call(val) === "[object Map]"; var isSet = (val) => toString.call(val) === "[object Set]"; var isDate = (val) => toString.call(val) === "[object Date]"; var isSymbol = (val) => typeof val === "symbol"; var isPromise = (val) => { return isObject(val) && isFunction(val.then) && isFunction(val.catch); }; var isFalsy = (val) => isNotNull(val) && isDef(val) && isNotEmpty(val); var isStream = (val) => val !== null && typeof val === "object" && typeof val.pipe === "function"; var isBrowser = typeof window !== "undefined"; var isEmptyArr = (array) => array?.length === 0; function isEmpty(val) { if (!val) { return true; } if (isArray(val)) { return isEmptyArr(val); } if (isString(val)) { return val.trim().length === 0; } if (val instanceof Map || val instanceof Set) { return val.size === 0; } if (isObject(val)) { return Object.keys(val).length === 0; } return false; } function isNotEmpty(val) { return !isEmpty(val); } function isNotEmpties(...args) { if (args.length > 1) { return args.reduce((a, b) => a && isNotEmpty(b), true); } return false; } function isEmpties(...args) { if (args.length > 1) { return args.reduce((a, b) => a && isEmpty(b), true); } return false; } function isPngImage(buffer) { if (!buffer || buffer.length < 8) { return false; } return buffer[0] === 137 && buffer[1] === 80 && buffer[2] === 78 && buffer[3] === 71 && buffer[4] === 13 && buffer[5] === 10 && buffer[6] === 26 && buffer[7] === 10; } var isBase64 = /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)?$/; var isAndroid = isBrowser ? /(android)/i.test(navigator.userAgent) : false; var match = isBrowser ? window.matchMedia || window.msMatchMedia : void 0; var isMobile = isBrowser ? match?.("(pointer:coarse)")?.matches : false; var isCrawler = isBrowser && (!("onscroll" in window) || /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent)); var isCI = toBoolean(envs.CI); var isNodeTest = nodeENV === "test" || toBoolean(envs.TEST); var isNodeProd = nodeENV === "production"; var isNodeDev = nodeENV === "dev" || nodeENV === "development"; var isWindows = /^win/i.test(platform); var isLinux = /^linux/i.test(platform); var isMacOS = /^darwin/i.test(platform); export { isNotNull, isArray, isPrimitive, isDef, isUndef, isBoolean, isFunction, isNumber, isString, isObject, isMap, isSet, isDate, isSymbol, isPromise, isFalsy, isStream, isBrowser, isEmpty, isNotEmpty, isNotEmpties, isEmpties, isPngImage, isBase64, isAndroid, isMobile, isCrawler, isCI, isNodeTest, isNodeProd, isNodeDev, isWindows, isLinux, isMacOS };