UNPKG

foop

Version:

interfaces that describe their intentions.

40 lines (37 loc) 3.45 kB
var length = require('../util/length') var isObj = require('./obj') var isFunction = require('./function') var isNumber = require('./number') /** * @desc isBuffer, global Buffer * @since 5.0.0-beta.1 * * @memberOf is * @param {Buffer | *} x value to check if Buffer * @return {boolean} x is Buffer * * If you need to support Safari 5-7 (8-10 yr-old browser), * * @see https://nodejs.org/api/util.html#util_util_isbuffer_object * @see https://github.com/feross/is-buffer * * @example * * isBuffer({}) //=> false * isBuffer(new Buffer('eh')) //=> true * */ module.exports = function isBuffer(x) { if (!x || isObj(x) || length(x)) { return false } else if (!isFunction(x.copy) || isFunction(x.slice)) { return false } else if (length(x) > 0 && isNumber(x[0])) { return false } else { return true } } // another way to write it // module.exports = function isBuffer(val) { // var c = val.constructor // return c && // typeof c.isBuffer === 'function' && // c.isBuffer(val) // } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVmZmVyLmpzIiwic291cmNlcyI6WyJidWZmZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbGVuZ3RoID0gcmVxdWlyZSgnLi4vdXRpbC9sZW5ndGgnKVxuY29uc3QgaXNPYmogPSByZXF1aXJlKCcuL29iaicpXG5jb25zdCBpc0Z1bmN0aW9uID0gcmVxdWlyZSgnLi9mdW5jdGlvbicpXG5jb25zdCBpc051bWJlciA9IHJlcXVpcmUoJy4vbnVtYmVyJylcblxuLyoqXG4gKiBAZGVzYyBpc0J1ZmZlciwgZ2xvYmFsIEJ1ZmZlclxuICogQHNpbmNlIDUuMC4wLWJldGEuMVxuICpcbiAqIEBtZW1iZXJPZiBpc1xuICogQHBhcmFtIHtCdWZmZXIgfCAqfSB4IHZhbHVlIHRvIGNoZWNrIGlmIEJ1ZmZlclxuICogQHJldHVybiB7Ym9vbGVhbn0geCBpcyBCdWZmZXJcbiAqXG4gKiBJZiB5b3UgbmVlZCB0byBzdXBwb3J0IFNhZmFyaSA1LTcgKDgtMTAgeXItb2xkIGJyb3dzZXIpLFxuICogXG4gKiBAc2VlIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvdXRpbC5odG1sI3V0aWxfdXRpbF9pc2J1ZmZlcl9vYmplY3RcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2Zlcm9zcy9pcy1idWZmZXJcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgIGlzQnVmZmVyKHt9KSAvLz0+IGZhbHNlXG4gKiAgICBpc0J1ZmZlcihuZXcgQnVmZmVyKCdlaCcpKSAvLz0+IHRydWVcbiAqXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNCdWZmZXIoeCkge1xuICBpZiAoIXggfHwgaXNPYmooeCkgfHwgbGVuZ3RoKHgpKSByZXR1cm4gZmFsc2VcbiAgZWxzZSBpZiAoIWlzRnVuY3Rpb24oeC5jb3B5KSB8fCBpc0Z1bmN0aW9uKHguc2xpY2UpKSByZXR1cm4gZmFsc2VcbiAgZWxzZSBpZiAobGVuZ3RoKHgpID4gMCAmJiBpc051bWJlcih4WzBdKSkgcmV0dXJuIGZhbHNlXG4gIGVsc2UgcmV0dXJuIHRydWVcbn1cblxuLy8gYW5vdGhlciB3YXkgdG8gd3JpdGUgaXRcbi8vIG1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gaXNCdWZmZXIodmFsKSB7XG4vLyAgIHZhciBjID0gdmFsLmNvbnN0cnVjdG9yXG4vLyAgIHJldHVybiBjICYmXG4vLyAgICAgdHlwZW9mIGMuaXNCdWZmZXIgPT09ICdmdW5jdGlvbicgJiZcbi8vICAgICBjLmlzQnVmZmVyKHZhbClcbi8vIH1cbiJdLCJuYW1lcyI6WyJjb25zdCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0FBQ3hDQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7QUFDOUJBLEdBQUssQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN4Q0EsR0FBSyxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQnBDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsU0FBUyxRQUFRLENBQUMsQ0FBQyxFQUFFO0VBQ3BDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFBLE9BQU8sS0FBSyxFQUFBO09BQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBQSxPQUFPLEtBQUssRUFBQTtPQUM1RCxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUEsT0FBTyxLQUFLLEVBQUE7T0FDakQsRUFBQSxPQUFPLElBQUksRUFBQTtDQUNqQjs7Ozs7Ozs7OyJ9