| import { join, dirname } from "path"; | |
| import { fileURLToPath } from "url"; | |
| const __dirname = dirname(fileURLToPath(import.meta.url)); | |
| const DEFAULT_DATA_DIR = join(__dirname, "..", "data"); | |
| let _dataDir: string | undefined; | |
| /** Override DATA_DIR for testing. Pass undefined to reset to default. */ | |
| export function setDataDir(dir: string | undefined) { | |
| _dataDir = dir; | |
| } | |
| export function getDataDir(): string { | |
| return _dataDir ?? process.env.DATA_DIR ?? DEFAULT_DATA_DIR; | |
| } | |
| /** @deprecated Use getDataDir() instead */ | |
| export const DATA_DIR = DEFAULT_DATA_DIR; | |
| export function sanitizeName(name: string): string { | |
| return name.replace(/[^a-zA-Z0-9_-]/g, "_"); | |
| } | |
| export function docPath(name: string): string { | |
| return join(getDataDir(), `${sanitizeName(name)}.yjs`); | |
| } | |