UNPKG

@uns-kit/core

Version:

Core utilities and runtime building blocks for UNS-based realtime transformers.

58 lines 1.92 kB
import { fileURLToPath } from "url"; import { dirname, resolve, join } from "path"; import { existsSync } from "fs"; import { packageDirectorySync } from "pkg-dir"; const moduleDirectory = dirname(fileURLToPath(import.meta.url)); const packageDirectorySyncAny = packageDirectorySync; const fallbackFind = (start) => { let current = resolve(start); while (true) { if (existsSync(join(current, "package.json"))) { return current; } const parent = dirname(current); if (parent === current) { return undefined; } current = parent; } }; const resolveCandidate = (candidate) => { if (!candidate) return undefined; const directory = resolve(candidate); if (typeof packageDirectorySyncAny === "function") { try { const result = packageDirectorySyncAny({ cwd: directory }); if (typeof result === "string") { return result; } } catch { // ignore – fall back to alternate invocation style } try { const result = packageDirectorySyncAny(directory); if (typeof result === "string") { return result; } } catch { // ignore – fall back to manual search } } return fallbackFind(directory) ?? directory; }; export function resolveBasePath(options = {}) { const { start, envBasePath = process.env.UNS_BASE_PATH ?? undefined, cwd = process.cwd() } = options; const candidates = [start, envBasePath ?? undefined, cwd, moduleDirectory]; for (const candidate of candidates) { const resolved = resolveCandidate(candidate); if (resolved) { return resolved; } } return resolve(moduleDirectory, ".."); } export const basePath = resolveBasePath(); //# sourceMappingURL=base-path.js.map