function __shellEscape (params, options) {
    if (params instanceof Escaped) {
        return params.value
    } else if (Array.isArray(params)) {
        return params.map(param => __shellEscape(param, options))
    } else if (params == null) {
        return []
    } else {
        return options.verbatim ? String(params) : shellEscape(String(params))
    }
}
function __shellEscape (params, options) {
    if (params instanceof Escaped) {
        return params.value
    } else if (Array.isArray(params)) {
        return params.map(param => __shellEscape(param, options))
    } else if (params == null) {
        return []
    } else {
        return options.verbatim ? String(params) : shellEscape(String(params))
    }
}
function __shellEscape ( params , options ) { if ( params instanceof Escaped ) { return params . value } else if ( Array . isArray ( params ) ) { return params . map ( param => __shellEscape ( param , options ) ) } else if ( params == null ) { return [ ] } else { return options . verbatim ? String ( params ) : shellEscape ( String ( params ) ) } }
/*
the (recursive) guts of _shellEscape. returns a leaf node (string)
or a possibly-empty array of arrays/leaf nodes. prunes
null and undefined by returning empty arrays
/ * the ( recursive ) guts of _shellEscape . returns a leaf node ( string ) or a possibly - empty array of arrays / leaf nodes . prunes null and undefined by returning empty arrays