es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
29 lines (24 loc) • 749 B
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const keysIn = require('../object/keysIn.js');
function toPlainObject(value) {
const plainObject = {};
const valueKeys = keysIn.keysIn(value);
for (let i = 0; i < valueKeys.length; i++) {
const key = valueKeys[i];
const objValue = value[key];
if (key === '__proto__') {
Object.defineProperty(plainObject, key, {
configurable: true,
enumerable: true,
value: objValue,
writable: true,
});
}
else {
plainObject[key] = objValue;
}
}
return plainObject;
}
exports.toPlainObject = toPlainObject;