// Copyright 2017-2025 @polkadot/util authors & contributors
// SPDX-License-Identifier: Apache-2.0

// eslint-disable-next-line @typescript-eslint/no-explicit-any
type ObjectIndexed = Record<string, any>;

/**
 * @name isObject
 * @summary Tests for an `object`.
 * @description
 * Checks to see if the input value is a JavaScript object.
 * @example
 * <BR>
 *
 * ```javascript
 * import { isObject } from '@pezkuwi/util';
 *
 * isObject({}); // => true
 * isObject('something'); // => false
 * ```
 */
export function isObject <T extends ObjectIndexed = ObjectIndexed> (value?: unknown): value is T {
  return !!value && typeof value === 'object';
}
