// Copyright 2017-2026 @pezkuwi/util authors & contributors // SPDX-License-Identifier: Apache-2.0 import { isFunction } from './function.js'; import { isObject } from './object.js'; export function isOn (...fns: (keyof T)[]): (value?: unknown) => value is T { return (value?: unknown): value is T => (isObject(value) || isFunction(value)) && fns.every((f) => isFunction((value as T)[f])); } export function isOnFunction (...fns: (keyof T)[]): (value?: unknown) => value is T { return (value?: unknown): value is T => isFunction(value) && fns.every((f) => isFunction((value as T)[f])); } export function isOnObject (...fns: (keyof T)[]): (value?: unknown) => value is T { return (value?: unknown): value is T => isObject(value) && fns.every((f) => isFunction((value as T)[f])); }