build.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. import fs from "fs";
  2. import { Holiday } from "../src";
  3. import dayjs from "../src/utils/dayjs";
  4. import {
  5. holidays as compressedHolidays,
  6. workdays as compressedWorkdays,
  7. inLieuDays as compressedInLieuDays,
  8. } from "../src/holidays/constants";
  9. const getOriginal = (dates: Record<string, number[]>) => {
  10. const dateMap: Map<string, Holiday> = new Map();
  11. Object.keys(dates).forEach((key) => {
  12. const days = dates[key];
  13. days.forEach((n) => {
  14. dateMap.set(
  15. dayjs("2000-01-01").add(n, "day").format("YYYY-MM-DD"),
  16. Holiday[key as keyof typeof Holiday]
  17. );
  18. });
  19. });
  20. return Object.fromEntries(dateMap);
  21. };
  22. const holidays = getOriginal(compressedHolidays);
  23. const workdays = getOriginal(compressedWorkdays);
  24. const inLieuDays = getOriginal(compressedInLieuDays);
  25. const tsContent = JSON.stringify({ holidays, workdays, inLieuDays });
  26. // 保存到 ./dist/chinese-days.json 文件
  27. fs.writeFile("./dist/chinese-days.json", tsContent, (err) => {
  28. if (err) throw err;
  29. console.log("The json file has been saved!");
  30. });