UNPKG

@stylistic/stylelint-plugin

Version:
116 lines (103 loc) 2.77 kB
import { isPlainObject as _isPlainObject } from "is-plain-object" /** * Checks if the value is a boolean or a Boolean object. * @param {unknown} value * @returns {value is boolean} */ export function isBoolean (value) { return typeof value === `boolean` || value instanceof Boolean } /** * Checks if the value is a function or a Function object. * @param {unknown} value * @returns {value is Function} */ export function isFunction (value) { return typeof value === `function` || value instanceof Function } /** * Checks if the value is *nullish*. * @see https://developer.mozilla.org/en-US/docs/Glossary/Nullish * @param {unknown} value * @returns {value is null | undefined} */ export function isNullish (value) { return value === null || value === undefined } /** * Checks if the value is a number or a Number object. * @param {unknown} value * @returns {value is number} */ export function isNumber (value) { return typeof value === `number` || value instanceof Number } /** * Checks if the value is an object. * @param {unknown} value * @returns {value is object} */ export function isObject (value) { return value !== null && typeof value === `object` } /** * Checks if the value is a regular expression. * @param {unknown} value * @returns {value is RegExp} */ export function isRegExp (value) { return value instanceof RegExp } /** * Checks if the value is a string or a String object. * @param {unknown} value * @returns {value is string} */ export function isString (value) { return typeof value === `string` || value instanceof String } /** * Checks if the value is a plain object. * @param {unknown} value * @returns {value is Record<string, unknown>} */ export function isPlainObject (value) { return _isPlainObject(value) } /** * Assert that the value is truthy. * @param {unknown} value * @param {string} [message] * @returns {asserts value} */ export function assert (value, message = undefined) { if (message) { console.assert(value, message) } else { console.assert(value) } } /** * Assert that the value is a function or a Function object. * @param {unknown} value * @returns {asserts value is Function} */ export function assertFunction (value) { console.assert(isFunction(value), `"${value}" must be a function`) } /** * Assert that the value is a number or a Number object. * @param {unknown} value * @returns {asserts value is number} */ export function assertNumber (value) { console.assert(isNumber(value), `"${value}" must be a number`) } /** * Assert that the value is a string or a String object. * @param {unknown} value * @returns {asserts value is string} */ export function assertString (value) { console.assert(isString(value), `"${value}" must be a string`) }