@storm-stack/types
Version:
⚡ The storm-stack monorepo contains utility applications, tools, and various libraries to create modern and scalable web applications.
21 lines (20 loc) • 766 B
JavaScript
import { isPlainObject } from "./is-plain-object.mjs";
const isClassRegex = /^class\s|^function\s+[A-Z]/;
const isConventionalClassRegex = /^function\s+[A-Z]/;
const isNativeClassRegex = /^class\s/;
export function isNativeClass(value) {
return typeof value === "function" && isNativeClassRegex.test(value.toString());
}
export function isConventionalClass(value) {
return typeof value === "function" && isConventionalClassRegex.test(value.toString());
}
export function isClass(value) {
return typeof value === "function" && isClassRegex.test(value.toString());
}
export const isObject = (value) => {
try {
return typeof value === "object" || Boolean(value) && value?.constructor === Object || isPlainObject(value);
} catch {
return false;
}
};