|
|
import { existsSync, realpathSync } from "node:fs"; |
|
|
import { basename, join, resolve } from "node:path"; |
|
|
|
|
|
export function createRegExpFromExtensions(...extensions) { |
|
|
return new RegExp(`\\.(${extensions.join("|")})$`, "i"); |
|
|
} |
|
|
|
|
|
export function correctPathFromEnv(envVarName) { |
|
|
let pathName = process.env[envVarName]; |
|
|
if (!pathName) { |
|
|
return; |
|
|
} |
|
|
pathName = realpathSync(pathName); |
|
|
return pathName; |
|
|
} |
|
|
|
|
|
export function correctContentPathFromEnv(envVarName) { |
|
|
let pathName = correctPathFromEnv(envVarName); |
|
|
if (!pathName) { |
|
|
return; |
|
|
} |
|
|
if (basename(pathName) !== "files" && existsSync(join(pathName, "files"))) { |
|
|
|
|
|
pathName = join(pathName, "files"); |
|
|
console.warn( |
|
|
`Corrected the ${envVarName} environment variable to ${pathName}`, |
|
|
); |
|
|
} else if (!existsSync(pathName)) { |
|
|
throw new Error(`${resolve(pathName)} does not exist`); |
|
|
} |
|
|
return pathName; |
|
|
} |
|
|
|
|
|
export function parseEnvValue(value) { |
|
|
try { |
|
|
return JSON.parse(value); |
|
|
} catch (e) { |
|
|
throw new Error(`Error parsing value '${value}' in .env file: `, { |
|
|
cause: e, |
|
|
}); |
|
|
} |
|
|
} |
|
|
|