UNPKG

patha

Version:

File paths library. All you need to work with paths. Tiny drop-in replacement for 'path'. Works in Node, Browser, and Deno.

22 lines 2.05 kB
import { normalize, sep } from "path"; import escapeRegexp from "escape-string-regexp"; /** * Normalizes the path and removes the trailing slashes. * * @example * * ```js * import { normalize, normalizeTrim } from "patha" * * normalizeTrim("/foo/bar//baz/asdf/hello/../") // gives "/foo/bar/baz/asdf" * * normalize("/foo/bar//baz/asdf/hello/../") // gives "/foo/bar/baz/asdf/" * ``` * * @param path The given file path * @returns The normalized and trimmed file path */ export function normalizeTrim(path) { return normalize(path).replace(new RegExp(`${escapeRegexp(sep)}$`), ""); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplLXRyaW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvbm9ybWFsaXplLXRyaW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDckMsT0FBTyxZQUFZLE1BQU0sc0JBQXNCLENBQUE7QUFFL0M7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FBQyxJQUFZO0lBQ3hDLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDekUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG5vcm1hbGl6ZSwgc2VwIH0gZnJvbSBcInBhdGhcIlxuaW1wb3J0IGVzY2FwZVJlZ2V4cCBmcm9tIFwiZXNjYXBlLXN0cmluZy1yZWdleHBcIlxuXG4vKipcbiAqIE5vcm1hbGl6ZXMgdGhlIHBhdGggYW5kIHJlbW92ZXMgdGhlIHRyYWlsaW5nIHNsYXNoZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiBgYGBqc1xuICogaW1wb3J0IHsgbm9ybWFsaXplLCBub3JtYWxpemVUcmltIH0gZnJvbSBcInBhdGhhXCJcbiAqXG4gKiBub3JtYWxpemVUcmltKFwiL2Zvby9iYXIvL2Jhei9hc2RmL2hlbGxvLy4uL1wiKSAvLyBnaXZlcyBcIi9mb28vYmFyL2Jhei9hc2RmXCJcbiAqXG4gKiBub3JtYWxpemUoXCIvZm9vL2Jhci8vYmF6L2FzZGYvaGVsbG8vLi4vXCIpIC8vIGdpdmVzIFwiL2Zvby9iYXIvYmF6L2FzZGYvXCJcbiAqIGBgYFxuICpcbiAqIEBwYXJhbSBwYXRoIFRoZSBnaXZlbiBmaWxlIHBhdGhcbiAqIEByZXR1cm5zIFRoZSBub3JtYWxpemVkIGFuZCB0cmltbWVkIGZpbGUgcGF0aFxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplVHJpbShwYXRoOiBzdHJpbmcpIHtcbiAgcmV0dXJuIG5vcm1hbGl6ZShwYXRoKS5yZXBsYWNlKG5ldyBSZWdFeHAoYCR7ZXNjYXBlUmVnZXhwKHNlcCl9JGApLCBcIlwiKVxufVxuIl19