Files
bare-operating-system/scripts/lib/repo.mjs
T
2026-08-18 16:43:40 -04:00

30 lines
708 B
JavaScript

/**
* Shared host-script helpers: repo root and small JSON/text IO.
*/
import fs from 'node:fs'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
/** Absolute path to the monorepo root (parent of `scripts/`). */
export function repoRoot(fromMetaUrl = import.meta.url) {
return path.resolve(path.dirname(fileURLToPath(fromMetaUrl)), '..', '..')
}
/**
* @param {string} p
* @param {unknown} [fallback]
*/
export function readJson(p, fallback) {
try {
return JSON.parse(fs.readFileSync(p, 'utf8'))
} catch (err) {
if (arguments.length > 1) return fallback
throw err
}
}
/** @param {string} p */
export function readText(p) {
return fs.readFileSync(p, 'utf8')
}