UNPKG

@typestrong/ts-mockito

Version:
32 lines 1.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ObjectPropertyCodeRetriever = void 0; var ObjectPropertyCodeRetriever = (function () { function ObjectPropertyCodeRetriever() { } ObjectPropertyCodeRetriever.getObject = function (object) { if (object.constructor.name === 'Object') return ''; var props = Object.getOwnPropertyNames(object); return "\n const ".concat(object.constructor.name, " = {\n ").concat(props.flatMap(function (prop) { var descriptor = Object.getOwnPropertyDescriptor(object, prop); if ((descriptor === null || descriptor === void 0 ? void 0 : descriptor.get) || (descriptor === null || descriptor === void 0 ? void 0 : descriptor.set)) { return [ (descriptor === null || descriptor === void 0 ? void 0 : descriptor.get) ? descriptor === null || descriptor === void 0 ? void 0 : descriptor.get.toString() : '', (descriptor === null || descriptor === void 0 ? void 0 : descriptor.set) ? descriptor === null || descriptor === void 0 ? void 0 : descriptor.set.toString() : '', ]; } else if (typeof object[prop] === 'function') { var fnStr = String(object[prop]); fnStr = fnStr.replace(/\[native code]/, ''); var gx = new RegExp("^(async)?\\s{0,}\\*?".concat(prop)); var isMethod = gx.test(fnStr); return "\n ".concat(isMethod ? fnStr : "\"".concat(prop, "\": ").concat(fnStr), "\n "); } return ''; }).filter(Boolean).join(',\n'), "\n }\n "); }; return ObjectPropertyCodeRetriever; }()); exports.ObjectPropertyCodeRetriever = ObjectPropertyCodeRetriever; //# sourceMappingURL=ObjectPropertyCodeRetriever.js.map