text: /*!
   * shallow-clone <https://github.com/jonschlinkert/shallow-clone>
   *
   * Copyright (c) 2015-2017, Jon Schlinkert.
   * Released under the MIT License.
   */
  
  'use strict';
  
  var isObject = require('is-extendable');
  var mixin = require('mixin-object');
  var typeOf = require('kind-of');
  
  /**
   * Shallow copy an object, array or primitive.
   *
   * @param  {any} `val`
   * @return {any}
   */
  
  function clone(val) {
    var type = typeOf(val);
    if (clone.hasOwnProperty(type)) {
      return clone[type](val);
    }
    return val;
  }
  
  clone.array = function cloneArray(arr) {
    return arr.slice();
  };
  
  clone.date = function cloneDate(date) {
    return new Date(+date);
  };
  
  clone.object = function cloneObject(obj) {
    if (isObject(obj)) {
      return mixin({}, obj);
    } else {
      return obj;
    }
  };
  
  clone.regexp = function cloneRegExp(re) {
    var flags = '';
    flags += re.multiline ? 'm' : '';
    flags += re.global ? 'g' : '';
    flags += re.ignorecase ? 'i' : '';
    return new RegExp(re.source, flags);
  };
  
  /**
   * Expose `clone`
   */
  
  module.exports = clone;
  