23 lines
509 B
JavaScript
23 lines
509 B
JavaScript
|
|
import { AbstractType, Item } from '../internals.js' // eslint-disable-line
|
|
|
|
/**
|
|
* Check if `parent` is a parent of `child`.
|
|
*
|
|
* @param {AbstractType<any>} parent
|
|
* @param {Item|null} child
|
|
* @return {Boolean} Whether `parent` is a parent of `child`.
|
|
*
|
|
* @private
|
|
* @function
|
|
*/
|
|
export const isParentOf = (parent, child) => {
|
|
while (child !== null) {
|
|
if (child.parent === parent) {
|
|
return true
|
|
}
|
|
child = /** @type {AbstractType<any>} */ (child.parent)._item
|
|
}
|
|
return false
|
|
}
|