UNPKG

@efficientcss/stylelint-config-ecss

Version:

Linting rules for EfficientCSS

129 lines (114 loc) 2.83 kB
import isPlainObject from "is-plain-object"; /** * Checks if the value is a boolean or a Boolean object. * @param {unknown} value * @returns {value is boolean} */ 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} */ 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} */ function isNullish(value) { return value == null; } /** * Checks if the value is a number or a Number object. * @param {unknown} value * @returns {value is number} */ function isNumber(value) { return typeof value === 'number' || value instanceof Number; } /** * Checks if the value is an object. * @param {unknown} value * @returns {value is object} */ function isObject(value) { return value !== null && typeof value === 'object'; } /** * Checks if the value is a regular expression. * @param {unknown} value * @returns {value is RegExp} */ 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} */ function isString(value) { return typeof value === 'string' || value instanceof String; } /** * Assert that the value is truthy. * @param {unknown} value * @param {string} [message] * @returns {asserts value} */ function assert(value, message = undefined) { if (message) { // eslint-disable-next-line no-console console.assert(value, message); } else { // eslint-disable-next-line no-console console.assert(value); } } /** * Assert that the value is a function or a Function object. * @param {unknown} value * @returns {asserts value is Function} */ function assertFunction(value) { // eslint-disable-next-line no-console 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} */ function assertNumber(value) { // eslint-disable-next-line no-console 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} */ function assertString(value) { // eslint-disable-next-line no-console console.assert(isString(value), `"${value}" must be a string`); } export default { isBoolean, isFunction, isNullish, isNumber, isObject, isRegExp, isString, isPlainObject, assert, assertFunction, assertNumber, assertString, };