UNPKG

delphirtl

Version:
23 lines 2.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getAllMethods = void 0; // Retrieves all the methods and properties of a class / instance const getAllMethods = (obj) => { let props = []; do { const l = Object.getOwnPropertyNames(obj) .concat(Object.getOwnPropertySymbols(obj).map(s => s.toString())) // .sort() .filter((p, i, arr) => typeof obj[p] === 'function' && // only the methods p !== 'constructor' && // not the constructor (i == 0 || p !== arr[i - 1]) && // not overriding in this prototype props.indexOf(p) === -1 // not overridden in a child ); props = props.concat(l); } while ((obj = Object.getPrototypeOf(obj)) && // walk-up the prototype chain Object.getPrototypeOf(obj) // not the Object's prototype methods (hasOwnProperty, etc...) ); return props; }; exports.getAllMethods = getAllMethods; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmbGVjdHV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JlZmxlY3R1dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpRUFBaUU7QUFDakUsTUFBTSxhQUFhLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRTtJQUMvQixJQUFJLEtBQUssR0FBUSxFQUFFLENBQUE7SUFDbkIsR0FBRyxDQUFDO1FBQ0EsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQzthQUNwQyxNQUFNLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLFVBQVU7YUFDVCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQ2xCLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLFVBQVUsSUFBSyxtQkFBbUI7WUFDcEQsQ0FBQyxLQUFLLGFBQWEsSUFBYyxzQkFBc0I7WUFDdkQsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUssbUNBQW1DO1lBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQVUsNEJBQTRCO1NBQ2hFLENBQUE7UUFDTCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzQixDQUFDLFFBRUcsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFNLDhCQUE4QjtRQUN0RSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFjLDhEQUE4RDtNQUN6RztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQTtBQUdHLHNDQUFhIn0=