| 'use strict'; | 
|   | 
| /** | 
|  * Module dependencies | 
|  */ | 
|   | 
| exports.extend = require('extend-shallow'); | 
| exports.SourceMap = require('source-map'); | 
| exports.sourceMapResolve = require('source-map-resolve'); | 
|   | 
| /** | 
|  * Convert backslash in the given string to forward slashes | 
|  */ | 
|   | 
| exports.unixify = function(fp) { | 
|   return fp.split(/\\+/).join('/'); | 
| }; | 
|   | 
| /** | 
|  * Return true if `val` is a non-empty string | 
|  * | 
|  * @param {String} `str` | 
|  * @return {Boolean} | 
|  */ | 
|   | 
| exports.isString = function(str) { | 
|   return str && typeof str === 'string'; | 
| }; | 
|   | 
| /** | 
|  * Cast `val` to an array | 
|  * @return {Array} | 
|  */ | 
|   | 
| exports.arrayify = function(val) { | 
|   if (typeof val === 'string') return [val]; | 
|   return val ? (Array.isArray(val) ? val : [val]) : []; | 
| }; | 
|   | 
| /** | 
|  * Get the last `n` element from the given `array` | 
|  * @param {Array} `array` | 
|  * @return {*} | 
|  */ | 
|   | 
| exports.last = function(arr, n) { | 
|   return arr[arr.length - (n || 1)]; | 
| }; |