newsnow/scripts/source.ts

28 lines
932 B
TypeScript

import { writeFileSync } from "node:fs"
import { join } from "node:path"
import { pinyin } from "@napi-rs/pinyin"
import { consola } from "consola"
import { projectDir } from "../shared/dir"
import { genSources } from "../shared/pre-sources"
const sources = genSources()
try {
const pinyinMap = Object.fromEntries(Object.entries(sources)
.filter(([, v]) => !v.redirect)
.map(([k, v]) => {
return [k, pinyin(v.title ? `${v.name}-${v.title}` : v.name).join("")]
}))
writeFileSync(join(projectDir, "./shared/pinyin.json"), JSON.stringify(pinyinMap, undefined, 2))
consola.info("Generated pinyin.json")
} catch {
consola.error("Failed to generate pinyin.json")
}
try {
writeFileSync(join(projectDir, "./shared/sources.json"), JSON.stringify(Object.fromEntries(Object.entries(sources)), undefined, 2))
consola.info("Generated sources.json")
} catch {
consola.error("Failed to generate sources.json")
}