UNPKG

@sidekick-coder/db

Version:

Cli Tool to manipulate data from diferent sources

56 lines (53 loc) 1.27 kB
'use strict'; // src/core/filesystem/createPathFake.ts function createPathFake() { function parts(...args) { const result = args.map((a) => a.replace(/\/\//g, "/")).map((a) => a.split("/")).flat().filter((a) => a !== "").filter(Boolean); return result; } function resolve(...args) { const normalized = parts(...args).reduce((acc, segment) => { if (segment === "." || segment === ".") { return acc; } if (segment === "..") { acc.pop(); return acc; } acc.push(segment); return acc; }, []).join("/"); let result = normalized; if (!result.startsWith("/")) { result = "/" + normalized; } return result; } function join(...args) { return parts(...args).join("/"); } function dirname(args) { if (args === "/") { return "/"; } const partsArray = parts(args); if (partsArray.length < 1) { return "/"; } let result = partsArray.slice(0, -1).join("/"); if (!result.startsWith("/")) { result = "/" + result; } return result; } function basename(args) { return parts(args).slice(-1)[0]; } return { resolve, join, dirname, basename }; } exports.createPathFake = createPathFake;