sdg
Version:
pomelo ts
81 lines • 5.91 kB
JavaScript
;
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==