41 lines
1 KiB
TypeScript
41 lines
1 KiB
TypeScript
import { existsSync } from "node:fs"
|
|
import { join } from "node:path"
|
|
|
|
const KNOWN_WORKSPACE_MANUALS_ROOT =
|
|
"/Users/matthewcall/Documents/VS Code Projects/Rocky Mountain Vending/manuals-data"
|
|
|
|
function resolveManualsDataRoot() {
|
|
const candidates = [
|
|
process.env.MANUALS_DATA_ROOT,
|
|
join(process.cwd(), "..", "manuals-data"),
|
|
KNOWN_WORKSPACE_MANUALS_ROOT,
|
|
].filter(Boolean) as string[]
|
|
|
|
for (const candidate of candidates) {
|
|
if (existsSync(candidate)) {
|
|
return candidate
|
|
}
|
|
}
|
|
|
|
return join(process.cwd(), "..", "manuals-data")
|
|
}
|
|
|
|
export function getManualsDataRoot() {
|
|
return resolveManualsDataRoot()
|
|
}
|
|
|
|
export function getManualsFilesRoot() {
|
|
return join(resolveManualsDataRoot(), "manuals")
|
|
}
|
|
|
|
export function getManualsThumbnailsRoot() {
|
|
return join(resolveManualsDataRoot(), "thumbnails")
|
|
}
|
|
|
|
export function getManualsMetadataRoot() {
|
|
return join(resolveManualsDataRoot(), "data")
|
|
}
|
|
|
|
export function getManualsManufacturerInfoRoot() {
|
|
return join(resolveManualsDataRoot(), "manufacturer-info")
|
|
}
|