Files
ospab.host/node_modules/empathic/walk.mjs
2025-09-15 18:10:26 +03:00

21 lines
535 B
JavaScript

import { dirname } from "node:path";
import { absolute } from "empathic/resolve";
/**
* Get all parent directories of {@link base}.
* Stops after {@link Options['last']} is processed.
*
* @returns An array of absolute paths of all parent directories.
*/
export function up(base, options) {
let { last, cwd } = options || {};
let tmp = absolute(base, cwd);
let root = absolute(last || "/", cwd);
let prev, arr = [];
while (prev !== root) {
arr.push(tmp);
tmp = dirname(prev = tmp);
if (tmp === prev) break;
}
return arr;
}