UNPKG

foop

Version:

interfaces that describe their intentions.

40 lines (38 loc) 2.81 kB
var isNil = require('../is/nullOrUndefined') /** * cast to object, instead of throwing (like in the spec), returns {} if nill * @since 5.0.0-beta.6 * @memberOf cast * * @name toObj * @alias toObject * * @param {*} x cast to object * @return {Object} Object(x) || {} * * {@link http://ecma-international.org/ecma-262/7.0/#sec-toobject emca-toobject} * {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L637 underscore-to-object} * @see {@link underscore-to-object} * @see {@link emca-toobject} * * @example * * toObj(null) //=> {} * * @example * * var obj = {eh: true} * var objected = toObj(obj) * obj === objected //=> true * */ module.exports = function toObj(x) { // @NOTE this is spec, but IMO, better to return false, or empty obj // if (x === null || x === undefined) { // throw new TypeError('Null or undefined passed to ToObject') // } // if (isNil(x)) return {} // else return Object(x) return Object(x) } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9PYmouanMiLCJzb3VyY2VzIjpbInRvT2JqLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzTmlsID0gcmVxdWlyZSgnLi4vaXMvbnVsbE9yVW5kZWZpbmVkJylcblxuLyoqXG4gKiBjYXN0IHRvIG9iamVjdCwgaW5zdGVhZCBvZiB0aHJvd2luZyAobGlrZSBpbiB0aGUgc3BlYyksIHJldHVybnMge30gaWYgbmlsbFxuICogQHNpbmNlIDUuMC4wLWJldGEuNlxuICogQG1lbWJlck9mIGNhc3RcbiAqXG4gKiBAbmFtZSB0b09ialxuICogQGFsaWFzIHRvT2JqZWN0XG4gKlxuICogQHBhcmFtICB7Kn0geCBjYXN0IHRvIG9iamVjdFxuICogQHJldHVybiB7T2JqZWN0fSBPYmplY3QoeCkgfHwge31cbiAqXG4gKiB7QGxpbmsgaHR0cDovL2VjbWEtaW50ZXJuYXRpb25hbC5vcmcvZWNtYS0yNjIvNy4wLyNzZWMtdG9vYmplY3QgZW1jYS10b29iamVjdH1cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vamFzaGtlbmFzL3VuZGVyc2NvcmUvYmxvYi9tYXN0ZXIvdW5kZXJzY29yZS5qcyNMNjM3IHVuZGVyc2NvcmUtdG8tb2JqZWN0fVxuICogQHNlZSB7QGxpbmsgdW5kZXJzY29yZS10by1vYmplY3R9XG4gKiBAc2VlIHtAbGluayBlbWNhLXRvb2JqZWN0fVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgdG9PYmoobnVsbCkgLy89PiB7fVxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogICAgdmFyIG9iaiA9IHtlaDogdHJ1ZX1cbiAqICAgIHZhciBvYmplY3RlZCA9IHRvT2JqKG9iailcbiAqICAgIG9iaiA9PT0gb2JqZWN0ZWQgLy89PiB0cnVlXG4gKlxuICovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIHRvT2JqKHgpIHtcbiAgLy8gQE5PVEUgdGhpcyBpcyBzcGVjLCBidXQgSU1PLCBiZXR0ZXIgdG8gcmV0dXJuIGZhbHNlLCBvciBlbXB0eSBvYmpcbiAgLy8gaWYgKHggPT09IG51bGwgfHwgeCA9PT0gdW5kZWZpbmVkKSB7XG4gIC8vICAgdGhyb3cgbmV3IFR5cGVFcnJvcignTnVsbCBvciB1bmRlZmluZWQgcGFzc2VkIHRvIFRvT2JqZWN0JylcbiAgLy8gfVxuICAvLyBpZiAoaXNOaWwoeCkpIHJldHVybiB7fVxuICAvLyBlbHNlIHJldHVybiBPYmplY3QoeClcbiAgcmV0dXJuIE9iamVjdCh4KVxufVxuIl0sIm5hbWVzIjpbImNvbnN0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkI5QyxNQUFNLENBQUMsT0FBTyxHQUFHLFNBQVMsS0FBSyxDQUFDLENBQUMsRUFBRTs7Ozs7OztFQU9qQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUM7Q0FDakI7In0=