UNPKG

fluidstate

Version:

Library for fine-grained reactivity state management

42 lines (41 loc) 1.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isObject = exports.getDescriptor = exports.getAllGetterKeys = void 0; const isObject = value => { return value && typeof value === "object"; }; exports.isObject = isObject; const getDescriptor = (inertObject, p) => { let object = inertObject; let descriptor = object && object !== Object.prototype && Reflect.getOwnPropertyDescriptor(object, p); while (object && object !== Object.prototype && !descriptor) { object = Reflect.getPrototypeOf(object) ?? undefined; descriptor = object && Reflect.getOwnPropertyDescriptor(object, p); } return object && object !== Object.prototype && descriptor ? { object, descriptor } : { object: undefined, descriptor: undefined }; }; exports.getDescriptor = getDescriptor; const getAllGetterKeys = inertObject => { let object = inertObject; const getterKeys = new Set(); while (object && object !== Object.prototype) { const keys = Reflect.ownKeys(object); for (const key of keys) { if (Reflect.getOwnPropertyDescriptor(object, key).get) { getterKeys.add(key); } } object = Reflect.getPrototypeOf(object); } return getterKeys; }; exports.getAllGetterKeys = getAllGetterKeys; //# sourceMappingURL=reactive-utils.js.map