UNPKG

r19

Version:

Simple remote procedure calls in TypeScript

34 lines (33 loc) 1.05 kB
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); }; export { proceduresFromInstance }; //# sourceMappingURL=proceduresFromInstance.js.map