UNPKG

sdg

Version:

pomelo ts

81 lines 5.91 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.listEs6ClassMethods = exports.getClassName = exports.defineGetter = exports.readDir = void 0; const tslib_1 = require("tslib"); const fs_1 = tslib_1.__importDefault(require("fs")); const path_1 = tslib_1.__importDefault(require("path")); const readDir = (dir, fn) => { let arr = []; fs_1.default.readdirSync(dir).map(d => { const filename = path_1.default.resolve(dir, d); const stat = fs_1.default.statSync(filename); if (stat.isFile()) { fn && fn(filename); arr.push(filename); } else { arr = arr.concat(exports.readDir(filename, fn)); } }); return arr; }; exports.readDir = readDir; const defineGetter = (obj, key, val) => { Object.defineProperty(obj, key, { get: function () { return val; } }); }; exports.defineGetter = defineGetter; const getClassName = (c) => { if (c && c.constructor && c.constructor.toString()) { if (c.constructor.name) return c.constructor.name; let str = c.constructor.toString(); let arr; if (str.charAt(0) == '[') { arr = str.match(/\w+\s∗(\w+)/); } else { arr = str.match(/function\s*(\w+)/); } if (arr && arr.length == 2) { return arr[1]; } } return ''; }; exports.getClassName = getClassName; /** * 列出ES6的一个Class实例上的所有方法,但不包括父类的 * @param objInstance */ function listEs6ClassMethods(objInstance) { if (objInstance.prototype && objInstance.prototype.constructor === objInstance) { let names = []; let methodNames = Object.getOwnPropertyNames(objInstance.prototype); for (let name of methodNames) { let method = objInstance.prototype[name]; // Supposedly you'd like to skip constructor if (!(method instanceof Function) || name === 'constructor') continue; names.push(name); } return names; } else { let names = []; let methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(objInstance)).concat(Object.getOwnPropertyNames(objInstance)); for (let name of methodNames) { let method = objInstance[name]; // Supposedly you'd like to skip constructor if (!(method instanceof Function) || name === 'constructor') continue; names.push(name); } return names; } } exports.listEs6ClassMethods = listEs6ClassMethods; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC90b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsb0RBQW9CO0FBQ3BCLHdEQUF3QjtBQUVqQixNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFhLEVBQVksRUFBRTtJQUM5RCxJQUFJLEdBQUcsR0FBYSxFQUFFLENBQUM7SUFFdkIsWUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7UUFDMUIsTUFBTSxRQUFRLEdBQUcsY0FBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLEdBQUcsWUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuQyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNqQixFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEI7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLGVBQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFmVyxRQUFBLE9BQU8sV0FlbEI7QUFFSyxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQUUsR0FBUSxFQUFRLEVBQUU7SUFDdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFO1FBQzlCLEdBQUcsRUFBRTtZQUNILE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQU5XLFFBQUEsWUFBWSxnQkFNdkI7QUFFSyxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsRUFBVSxFQUFFO0lBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUNsRCxJQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSTtZQUFFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7UUFFakQsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuQyxJQUFJLEdBQUcsQ0FBQztRQUNSLElBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLEVBQUU7WUFDdkIsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNMLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7U0FDckM7UUFDRCxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUMxQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNmO0tBQ0Y7SUFFRCxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUMsQ0FBQztBQWpCVyxRQUFBLFlBQVksZ0JBaUJ2QjtBQUVGOzs7R0FHRztBQUNILFNBQWdCLG1CQUFtQixDQUFDLFdBQW1DO0lBQ3JFLElBQUksV0FBVyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLFdBQVcsS0FBSyxXQUFXLEVBQUU7UUFDOUUsSUFBSSxLQUFLLEdBQWEsRUFBRSxDQUFDO1FBQ3pCLElBQUksV0FBVyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsS0FBSyxJQUFJLElBQUksSUFBSSxXQUFXLEVBQUU7WUFDNUIsSUFBSSxNQUFNLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6Qyw0Q0FBNEM7WUFDNUMsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLFFBQVEsQ0FBQyxJQUFJLElBQUksS0FBSyxhQUFhO2dCQUFFLFNBQVM7WUFDdEUsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNsQjtRQUNELE9BQU8sS0FBSyxDQUFDO0tBQ2Q7U0FBTTtRQUNMLElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNqSSxLQUFLLElBQUksSUFBSSxJQUFJLFdBQVcsRUFBRTtZQUM1QixJQUFJLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsNENBQTRDO1lBQzVDLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxRQUFRLENBQUMsSUFBSSxJQUFJLEtBQUssYUFBYTtnQkFBRSxTQUFTO1lBQ3RFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEI7UUFDRCxPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQztBQXRCRCxrREFzQkMifQ==