foop
Version:
interfaces that describe their intentions.
50 lines (44 loc) • 2.84 kB
JavaScript
var toObj = require('./toObj')
/**
* Converts `value` to a plain object flattening inherited enumerable string
* keyed properties of `value` to own properties of the plain object.
* @since 5.0.0-beta.5
* @memberOf cast
*
* @name toPlainObj
* @alias toPlainObj
* @alias castPlainObj
*
*
* @param {*} value The value to convert.
* @return {Object} Returns the converted plain object.
*
* @fork 3.0.0
* @category Lang
*
* @example
*
* function Foo() {
* this.b = 2
* }
*
* Foo.prototype.c = 3
*
* assign({ 'a': 1 }, new Foo)
* //=> { 'a': 1, 'b': 2 }
*
* assign({ 'a': 1 }, toPlainObject(new Foo))
* //=> { 'a': 1, 'b': 2, 'c': 3 }
*
*/
function toPlainObject(value) {
value = toObj(value)
var result = {}
// eslint-disable-next-line
for (var key in value) {
result[key] = value[value]
}
return result
}
module.exports = toPlainObject
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QbGFpbk9iai5qcyIsInNvdXJjZXMiOlsidG9QbGFpbk9iai5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB0b09iaiA9IHJlcXVpcmUoJy4vdG9PYmonKVxuXG4vKipcbiAqIENvbnZlcnRzIGB2YWx1ZWAgdG8gYSBwbGFpbiBvYmplY3QgZmxhdHRlbmluZyBpbmhlcml0ZWQgZW51bWVyYWJsZSBzdHJpbmdcbiAqIGtleWVkIHByb3BlcnRpZXMgb2YgYHZhbHVlYCB0byBvd24gcHJvcGVydGllcyBvZiB0aGUgcGxhaW4gb2JqZWN0LlxuICogQHNpbmNlIDUuMC4wLWJldGEuNVxuICogQG1lbWJlck9mIGNhc3RcbiAqXG4gKiBAbmFtZSB0b1BsYWluT2JqXG4gKiBAYWxpYXMgdG9QbGFpbk9ialxuICogQGFsaWFzIGNhc3RQbGFpbk9ialxuICpcbiAqXG4gKiBAcGFyYW0geyp9IHZhbHVlIFRoZSB2YWx1ZSB0byBjb252ZXJ0LlxuICogQHJldHVybiB7T2JqZWN0fSBSZXR1cm5zIHRoZSBjb252ZXJ0ZWQgcGxhaW4gb2JqZWN0LlxuICpcbiAqIEBmb3JrIDMuMC4wXG4gKiBAY2F0ZWdvcnkgTGFuZ1xuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICBmdW5jdGlvbiBGb28oKSB7XG4gKiAgICAgdGhpcy5iID0gMlxuICogICB9XG4gKlxuICogICBGb28ucHJvdG90eXBlLmMgPSAzXG4gKlxuICogICBhc3NpZ24oeyAnYSc6IDEgfSwgbmV3IEZvbylcbiAqICAgLy89PiB7ICdhJzogMSwgJ2InOiAyIH1cbiAqXG4gKiAgIGFzc2lnbih7ICdhJzogMSB9LCB0b1BsYWluT2JqZWN0KG5ldyBGb28pKVxuICogICAvLz0+IHsgJ2EnOiAxLCAnYic6IDIsICdjJzogMyB9XG4gKlxuICovXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gIHZhbHVlID0gdG9PYmoodmFsdWUpXG5cbiAgY29uc3QgcmVzdWx0ID0ge31cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICByZXN1bHRba2V5XSA9IHZhbHVlW3ZhbHVlXVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHRvUGxhaW5PYmplY3RcbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWtDaEMsU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFO0VBQzVCLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDOztFQUVwQkEsR0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFOzs7RUFHakIsS0FBS0EsR0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLEVBQUU7SUFDdkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7R0FDM0I7O0VBRUQsT0FBTyxNQUFNO0NBQ2Q7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxhQUFhOyJ9