Files
what-to-eat/scripts/gen-fixtures.ts
T

19 lines
998 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 生成 packages/data/fixtures/recommend.json:Web 和 iOS 共用的推荐用例
*
* 菜谱数据、别名或推荐逻辑变化后运行 pnpm fixtures,并在 PR 里看结果的变化是否符合预期。
*/
import fs from 'node:fs'
import { recipeCsvFile } from '../packages/cook/src/utils/config'
import { parseRecipeCsv } from '../packages/cook/src/utils/csv'
import { buildFixtures } from './lib/fixtures'
export const fixturesFile = new URL('../packages/data/fixtures/recommend.json', import.meta.url)
const recipes = parseRecipeCsv(fs.readFileSync(recipeCsvFile, 'utf-8'))
// 每条结果占一行,文件小一些,diff 也好读
const json = JSON.stringify(buildFixtures(recipes), (_key, value) =>
value && typeof value === 'object' && 'id' in value && 'missing' in value ? JSON.stringify(value) : value, 2)
fs.writeFileSync(fixturesFile, `${json.replace(/"(\{\\"id.*?\})"/g, (_, line: string) => JSON.parse(`"${line}"`))}\n`)
console.log(`Wrote ${fixturesFile.pathname}`)