agsamantha/node_modules/tough-cookie/dist/cookie/permutePath.js
2024-10-02 15:15:21 -05:00

32 lines
873 B
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.permutePath = permutePath;
/**
* Generates the permutation of all possible values that {@link pathMatch} the `path` parameter.
* The array is in longest-to-shortest order. Useful when building custom {@link Store} implementations.
*
* @example
* ```
* permutePath('/foo/bar/')
* // ['/foo/bar/', '/foo/bar', '/foo', '/']
* ```
*
* @param path - the path to generate permutations for
* @public
*/
function permutePath(path) {
if (path === '/') {
return ['/'];
}
const permutations = [path];
while (path.length > 1) {
const lindex = path.lastIndexOf('/');
if (lindex === 0) {
break;
}
path = path.slice(0, lindex);
permutations.push(path);
}
permutations.push('/');
return permutations;
}