mirror of
https://github.com/pezkuwichain/pezkuwi-common.git
synced 2026-10-31 06:29:48 +00:00
- Package namespace: @polkadot/* -> @pezkuwi/* - Repository: polkadot-js/common -> pezkuwichain/pezkuwi-common - Author: Pezkuwi Team <team@pezkuwichain.io> Core packages: - @pezkuwi/util (utilities) - @pezkuwi/util-crypto (crypto primitives) - @pezkuwi/keyring (account management) - @pezkuwi/networks (chain metadata) - @pezkuwi/hw-ledger (Ledger hardware wallet) - @pezkuwi/x-* (10 polyfill packages) Total: 14 packages Upstream: polkadot-js/common v14.0.1
30 lines
944 B
TypeScript
30 lines
944 B
TypeScript
// Copyright 2017-2025 @polkadot/util authors & contributors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
import type { Class } from '../types.js';
|
|
|
|
import { isClass } from './class.js';
|
|
|
|
/**
|
|
* @name isChildClass
|
|
* @summary Tests if the child extends the parent Class
|
|
* @description
|
|
* Checks to see if the child Class extends the parent Class
|
|
* @example
|
|
* <BR>
|
|
*
|
|
* ```javascript
|
|
* import { isChildClass } from '@pezkuwi/util';
|
|
*
|
|
* console.log('isChildClass', isChildClass(BN, BN); // => true
|
|
* console.log('isChildClass', isChildClass(BN, Uint8Array); // => false
|
|
* ```
|
|
*/
|
|
export function isChildClass <P extends Class> (Parent: P, Child?: unknown): Child is P {
|
|
// https://stackoverflow.com/questions/30993434/check-if-a-constructor-inherits-another-in-es6/30993664
|
|
return isClass(Child) && isClass(Parent)
|
|
// eslint-disable-next-line no-prototype-builtins
|
|
? Parent === Child || Parent.isPrototypeOf(Child)
|
|
: false;
|
|
}
|