File size: 1,117 Bytes
780c9fe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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"))) {
    // It can be "corrected"
    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,
    });
  }
}