shared.ts
⎇
Raw
1import path from "node:path";
2import type { FfprobeData } from "./utils";
3
4export const coverRegex = process.env.COVER_REGEX || /(C|c)over.(png|jpg)$/;
5export const musicRoot = process.env.MUSIC_ROOT || "";
6if (musicRoot === "") {
7 console.error("Please define the environment variable MUSIC_ROOT");
8 process.exit(1);
9}
10
11if (!path.isAbsolute(musicRoot)) {
12 console.error(`Music root ${musicRoot} is not absolute`);
13 process.exit(1);
14}
15
16export const mediaTypes = ["audio", "video"];
17export const allowedTypes = [...mediaTypes, "image"];
18
19export const fileTypeCache = new Map<string, string>();
20export const probeCache = new Map<string, FfprobeData>();
21
22export class PathInfo {
23 constructor(public mimeType: string) { }
24}
25
26export class ServerError {
27 constructor(
28 public status: number,
29 public error: string,
30 ) { }
31}
32