UNPKG

react-native-cloud-store

Version:
55 lines (50 loc) 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PathUtils = void 0; /** * A helper class for path manipulation */ class PathUtils { static subPath(from, to) { from = suffixIf(prefixIf(from, '/'), '/'); to = suffixIf(prefixIf(to, '/'), '/'); if (!to.startsWith(from)) { throw new Error(`${from} not a sub path to ${to}`); } return prefixIf(rmSuffixIf(to.slice(from.length), '/'), '/'); } static join(...segments) { return segments.reduce((acc, cur) => { return acc + rmSuffixIf(prefixIf(cur, '/'), '/'); }, ''); } /** * Change ".xx.icloud" to "xx" */ static iCloudRemoveDotExt(path) { return path.replace(/(.*?)(\.(.*?)\.icloud)$/, '$1$3'); } /** * Get path extension(no leading dot) * @param path */ static ext(path) { return path.split('.').pop(); } } exports.PathUtils = PathUtils; function prefixIf(path, prefix) { return path.startsWith(prefix) ? path : prefix + path; } function suffixIf(path, suffix) { return path.endsWith(suffix) ? path : path + suffix; } // function rmPrefixIf(path: string, prefix: string) { // return path.startsWith(prefix) ? path.slice(prefix.length) : path; // } function rmSuffixIf(path, suffix) { return path.endsWith(suffix) ? path.slice(0, -suffix.length) : path; } //# sourceMappingURL=path.js.map