r19
Version:
Simple remote procedure calls in TypeScript
34 lines (33 loc) • 1.16 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const _proceduresFromInstance = (proceduresInstance, config = {}, path = []) => {
const omit = config.omit ?? [];
const res = {};
if (proceduresInstance) {
const proto = Object.getPrototypeOf(proceduresInstance);
const properties = [
...Object.getOwnPropertyNames(proceduresInstance),
...proto ? Object.getOwnPropertyNames(proto) : []
];
for (const key of properties) {
const value = proceduresInstance[key];
if (key === "constructor" || omit.includes([...path, key].join("."))) {
continue;
}
if (typeof value === "function") {
res[key] = value.bind(proceduresInstance);
} else if (typeof value === "object") {
res[key] = _proceduresFromInstance(value, config, [
...path,
key
]);
}
}
}
return res;
};
const proceduresFromInstance = (proceduresInstance, config = {}) => {
return _proceduresFromInstance(proceduresInstance, config);
};
exports.proceduresFromInstance = proceduresFromInstance;
//# sourceMappingURL=proceduresFromInstance.cjs.map