git-subtree-dir: estore git-subtree-mainline: 746868d720b9be1003a2f783b7a12d526d8eea60 git-subtree-split: e34dfc397c94025670baa2b73b482c01f3033a6a
20 lines
579 B
TypeScript
20 lines
579 B
TypeScript
import { readFileSync, existsSync } from 'fs'
|
|
import path from 'path'
|
|
import { atomicWriteJSON } from './file-utils'
|
|
import type { OccasionsConfig } from './occasions'
|
|
|
|
const OCCASIONS_PATH = path.join(process.cwd(), 'data', 'occasions.json')
|
|
|
|
export function getOccasionsConfig(): OccasionsConfig {
|
|
if (!existsSync(OCCASIONS_PATH)) return {}
|
|
try {
|
|
return JSON.parse(readFileSync(OCCASIONS_PATH, 'utf-8')) as OccasionsConfig
|
|
} catch {
|
|
return {}
|
|
}
|
|
}
|
|
|
|
export function saveOccasionsConfig(config: OccasionsConfig): void {
|
|
atomicWriteJSON(OCCASIONS_PATH, config)
|
|
}
|