mirror of
https://github.com/pezkuwichain/pezkuwi-common.git
synced 2026-10-29 21:59:48 +00:00
The header rule takes the current year as the end of the range, as upstream's does; 581 sources still ended at 2025, which failed lint. Lint never ran to completion here, so this went unseen. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
24 lines
826 B
TypeScript
24 lines
826 B
TypeScript
// 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 <T> (...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 <T> (...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 <T> (...fns: (keyof T)[]): (value?: unknown) => value is T {
|
|
return (value?: unknown): value is T =>
|
|
isObject(value) &&
|
|
fns.every((f) => isFunction((value as T)[f]));
|
|
}
|