UNPKG

@lskjs/server

Version:

LSK server.

85 lines (68 loc) 7.01 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.hasMethod = hasMethod; exports.getInfoResult = getInfoResult; exports.getInfo = getInfo; exports["default"] = getClassInfo; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof")); var _uniq = _interopRequireDefault(require("lodash/uniq")); var _map = _interopRequireDefault(require("lodash/map")); function hasMethod(obj, name, type) { var desc = Object.getOwnPropertyDescriptor(obj, name); return !!desc && (0, _typeof2["default"])(desc.value) === type; } function getInfoResult(obj) { var methods = []; var fields = []; Object.getOwnPropertyNames(obj).forEach(function (name) { if (hasMethod(obj, name, 'function')) { methods.push(name); } else { fields.push(name); } }); return { methods: methods, fields: fields }; } function getInfo(obj) { // function getInfo(obj, stop = obj => typeof obj === 'function') { var results = []; // && !stop(obj) while (obj) { var _getInfoResult = getInfoResult(obj), staticMethods = _getInfoResult.methods, staticFields = _getInfoResult.fields; var result = { obj: obj, staticMethods: staticMethods, staticFields: staticFields }; if (obj.prototype) { var _getInfoResult2 = getInfoResult(obj.prototype), methods = _getInfoResult2.methods, fields = _getInfoResult2.fields; result.methods = methods; result.fields = fields; } results.push(result); obj = Object.getPrototypeOf(obj); } return results; } function getClassInfo(cls) { var info = getInfo(cls); var result = {}; info = info.reverse().slice(2); ['methods', 'fields', 'staticMethods', 'staticFields'].forEach(function (name) { var _ref; result[name] = (0, _uniq["default"])((_ref = []).concat.apply(_ref, (0, _toConsumableArray2["default"])((0, _map["default"])(info, name)))); }); return result; } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzL2dldENsYXNzSW5mby5qcyJdLCJuYW1lcyI6WyJoYXNNZXRob2QiLCJvYmoiLCJuYW1lIiwidHlwZSIsImRlc2MiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ2YWx1ZSIsImdldEluZm9SZXN1bHQiLCJtZXRob2RzIiwiZmllbGRzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImZvckVhY2giLCJwdXNoIiwiZ2V0SW5mbyIsInJlc3VsdHMiLCJzdGF0aWNNZXRob2RzIiwic3RhdGljRmllbGRzIiwicmVzdWx0IiwicHJvdG90eXBlIiwiZ2V0UHJvdG90eXBlT2YiLCJnZXRDbGFzc0luZm8iLCJjbHMiLCJpbmZvIiwicmV2ZXJzZSIsInNsaWNlIiwiY29uY2F0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sU0FBU0EsU0FBVCxDQUFtQkMsR0FBbkIsRUFBd0JDLElBQXhCLEVBQThCQyxJQUE5QixFQUFvQztBQUN6QyxNQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0Msd0JBQVAsQ0FBZ0NMLEdBQWhDLEVBQXFDQyxJQUFyQyxDQUFiO0FBQ0EsU0FBTyxDQUFDLENBQUNFLElBQUYsSUFBVSx5QkFBT0EsSUFBSSxDQUFDRyxLQUFaLE1BQXNCSixJQUF2QztBQUNEOztBQUVNLFNBQVNLLGFBQVQsQ0FBdUJQLEdBQXZCLEVBQTRCO0FBQ2pDLE1BQU1RLE9BQU8sR0FBRyxFQUFoQjtBQUNBLE1BQU1DLE1BQU0sR0FBRyxFQUFmO0FBQ0FMLEVBQUFBLE1BQU0sQ0FDSE0sbUJBREgsQ0FDdUJWLEdBRHZCLEVBRUdXLE9BRkgsQ0FFVyxVQUFDVixJQUFELEVBQVU7QUFDakIsUUFBSUYsU0FBUyxDQUFDQyxHQUFELEVBQU1DLElBQU4sRUFBWSxVQUFaLENBQWIsRUFBc0M7QUFDcENPLE1BQUFBLE9BQU8sQ0FBQ0ksSUFBUixDQUFhWCxJQUFiO0FBQ0QsS0FGRCxNQUVPO0FBQ0xRLE1BQUFBLE1BQU0sQ0FBQ0csSUFBUCxDQUFZWCxJQUFaO0FBQ0Q7QUFDRixHQVJIO0FBU0EsU0FBTztBQUFFTyxJQUFBQSxPQUFPLEVBQVBBLE9BQUY7QUFBV0MsSUFBQUEsTUFBTSxFQUFOQTtBQUFYLEdBQVA7QUFDRDs7QUFFTSxTQUFTSSxPQUFULENBQWlCYixHQUFqQixFQUFzQjtBQUM3QjtBQUNFLE1BQU1jLE9BQU8sR0FBRyxFQUFoQixDQUYyQixDQUczQjs7QUFDQSxTQUFPZCxHQUFQLEVBQVk7QUFBQSx5QkFDK0NPLGFBQWEsQ0FBQ1AsR0FBRCxDQUQ1RDtBQUFBLFFBQ09lLGFBRFAsa0JBQ0ZQLE9BREU7QUFBQSxRQUM4QlEsWUFEOUIsa0JBQ3NCUCxNQUR0Qjs7QUFFVixRQUFNUSxNQUFNLEdBQUc7QUFDYmpCLE1BQUFBLEdBQUcsRUFBSEEsR0FEYTtBQUViZSxNQUFBQSxhQUFhLEVBQWJBLGFBRmE7QUFHYkMsTUFBQUEsWUFBWSxFQUFaQTtBQUhhLEtBQWY7O0FBS0EsUUFBSWhCLEdBQUcsQ0FBQ2tCLFNBQVIsRUFBbUI7QUFBQSw0QkFDV1gsYUFBYSxDQUFDUCxHQUFHLENBQUNrQixTQUFMLENBRHhCO0FBQUEsVUFDVFYsT0FEUyxtQkFDVEEsT0FEUztBQUFBLFVBQ0FDLE1BREEsbUJBQ0FBLE1BREE7O0FBRWpCUSxNQUFBQSxNQUFNLENBQUNULE9BQVAsR0FBaUJBLE9BQWpCO0FBQ0FTLE1BQUFBLE1BQU0sQ0FBQ1IsTUFBUCxHQUFnQkEsTUFBaEI7QUFDRDs7QUFDREssSUFBQUEsT0FBTyxDQUFDRixJQUFSLENBQWFLLE1BQWI7QUFDQWpCLElBQUFBLEdBQUcsR0FBR0ksTUFBTSxDQUFDZSxjQUFQLENBQXNCbkIsR0FBdEIsQ0FBTjtBQUNEOztBQUNELFNBQU9jLE9BQVA7QUFDRDs7QUFFYyxTQUFTTSxZQUFULENBQXNCQyxHQUF0QixFQUEyQjtBQUN4QyxNQUFJQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsR0FBRCxDQUFsQjtBQUNBLE1BQU1KLE1BQU0sR0FBRyxFQUFmO0FBQ0FLLEVBQUFBLElBQUksR0FBR0EsSUFBSSxDQUFDQyxPQUFMLEdBQWVDLEtBQWYsQ0FBcUIsQ0FBckIsQ0FBUDtBQUNBLEdBQUMsU0FBRCxFQUFZLFFBQVosRUFBc0IsZUFBdEIsRUFBdUMsY0FBdkMsRUFBdURiLE9BQXZELENBQStELFVBQUNWLElBQUQsRUFBVTtBQUFBOztBQUN2RWdCLElBQUFBLE1BQU0sQ0FBQ2hCLElBQUQsQ0FBTixHQUFlLHNCQUFLLFlBQUd3QixNQUFILGlEQUFhLHFCQUFJSCxJQUFKLEVBQVVyQixJQUFWLENBQWIsRUFBTCxDQUFmO0FBQ0QsR0FGRDtBQUdBLFNBQU9nQixNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gvdW5pcSc7XG5pbXBvcnQgbWFwIGZyb20gJ2xvZGFzaC9tYXAnO1xuXG5leHBvcnQgZnVuY3Rpb24gaGFzTWV0aG9kKG9iaiwgbmFtZSwgdHlwZSkge1xuICBjb25zdCBkZXNjID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihvYmosIG5hbWUpO1xuICByZXR1cm4gISFkZXNjICYmIHR5cGVvZiBkZXNjLnZhbHVlID09PSB0eXBlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5mb1Jlc3VsdChvYmopIHtcbiAgY29uc3QgbWV0aG9kcyA9IFtdO1xuICBjb25zdCBmaWVsZHMgPSBbXTtcbiAgT2JqZWN0XG4gICAgLmdldE93blByb3BlcnR5TmFtZXMob2JqKVxuICAgIC5mb3JFYWNoKChuYW1lKSA9PiB7XG4gICAgICBpZiAoaGFzTWV0aG9kKG9iaiwgbmFtZSwgJ2Z1bmN0aW9uJykpIHtcbiAgICAgICAgbWV0aG9kcy5wdXNoKG5hbWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmllbGRzLnB1c2gobmFtZSk7XG4gICAgICB9XG4gICAgfSk7XG4gIHJldHVybiB7IG1ldGhvZHMsIGZpZWxkcyB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW5mbyhvYmopIHtcbi8vIGZ1bmN0aW9uIGdldEluZm8ob2JqLCBzdG9wID0gb2JqID0+IHR5cGVvZiBvYmogPT09ICdmdW5jdGlvbicpIHtcbiAgY29uc3QgcmVzdWx0cyA9IFtdO1xuICAvLyAmJiAhc3RvcChvYmopXG4gIHdoaWxlIChvYmopIHtcbiAgICBjb25zdCB7IG1ldGhvZHM6IHN0YXRpY01ldGhvZHMsIGZpZWxkczogc3RhdGljRmllbGRzIH0gPSBnZXRJbmZvUmVzdWx0KG9iaik7XG4gICAgY29uc3QgcmVzdWx0ID0ge1xuICAgICAgb2JqLFxuICAgICAgc3RhdGljTWV0aG9kcyxcbiAgICAgIHN0YXRpY0ZpZWxkcyxcbiAgICB9O1xuICAgIGlmIChvYmoucHJvdG90eXBlKSB7XG4gICAgICBjb25zdCB7IG1ldGhvZHMsIGZpZWxkcyB9ID0gZ2V0SW5mb1Jlc3VsdChvYmoucHJvdG90eXBlKTtcbiAgICAgIHJlc3VsdC5tZXRob2RzID0gbWV0aG9kcztcbiAgICAgIHJlc3VsdC5maWVsZHMgPSBmaWVsZHM7XG4gICAgfVxuICAgIHJlc3VsdHMucHVzaChyZXN1bHQpO1xuICAgIG9iaiA9IE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopO1xuICB9XG4gIHJldHVybiByZXN1bHRzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRDbGFzc0luZm8oY2xzKSB7XG4gIGxldCBpbmZvID0gZ2V0SW5mbyhjbHMpO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgaW5mbyA9IGluZm8ucmV2ZXJzZSgpLnNsaWNlKDIpO1xuICBbJ21ldGhvZHMnLCAnZmllbGRzJywgJ3N0YXRpY01ldGhvZHMnLCAnc3RhdGljRmllbGRzJ10uZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgIHJlc3VsdFtuYW1lXSA9IHVuaXEoW10uY29uY2F0KC4uLm1hcChpbmZvLCBuYW1lKSkpO1xuICB9KTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ== //# sourceMappingURL=getClassInfo.js.map