@polkadot/util
Version:
A collection of useful utilities for @polkadot
27 lines (26 loc) • 915 B
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.isChildClass = isChildClass;
const class_js_1 = require("./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 '@polkadot/util';
*
* console.log('isChildClass', isChildClass(BN, BN); // => true
* console.log('isChildClass', isChildClass(BN, Uint8Array); // => false
* ```
*/
function isChildClass(Parent, Child) {
// https://stackoverflow.com/questions/30993434/check-if-a-constructor-inherits-another-in-es6/30993664
return (0, class_js_1.isClass)(Child) && (0, class_js_1.isClass)(Parent)
// eslint-disable-next-line no-prototype-builtins
? Parent === Child || Parent.isPrototypeOf(Child)
: false;
}
;