index.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import fs from "fs";
  2. import { join } from "path";
  3. import dayjs from "dayjs";
  4. // 首字母大写
  5. export function firstUpperCase(value: string): string {
  6. return value.replace(/\b(\w)(\w*)/g, function ($0, $1, $2) {
  7. return $1.toUpperCase() + $2;
  8. });
  9. }
  10. // 横杠转驼峰
  11. export function toCamel(str: string): string {
  12. return str.replace(/([^-])(?:-+([^-]))/g, function ($0, $1, $2) {
  13. return $1 + $2.toUpperCase();
  14. });
  15. }
  16. // 创建目录
  17. export function createDir(path: string) {
  18. if (!fs.existsSync(path)) fs.mkdirSync(path);
  19. }
  20. // 读取文件
  21. export function readFile(name: string) {
  22. try {
  23. return fs.readFileSync(name, "utf8");
  24. } catch (e) {}
  25. return "";
  26. }
  27. // 解析body
  28. export function parseJson(req: any): Promise<any> {
  29. return new Promise((resolve) => {
  30. let d = "";
  31. req.on("data", function (chunk: Buffer) {
  32. d += chunk;
  33. });
  34. req.on("end", function () {
  35. try {
  36. resolve(JSON.parse(d));
  37. } catch {
  38. resolve({});
  39. }
  40. });
  41. });
  42. }
  43. // 深度创建目录
  44. export function mkdirs(path: string) {
  45. const arr = path.split("/");
  46. let p = "";
  47. arr.forEach((e) => {
  48. const t = join(p, e);
  49. try {
  50. fs.statSync(t);
  51. } catch (err) {
  52. try {
  53. fs.mkdirSync(t);
  54. } catch (error) {
  55. console.error(error);
  56. }
  57. }
  58. p = t;
  59. });
  60. return p;
  61. }
  62. export function error(message: string) {
  63. console.log("\x1B[31m%s\x1B[0m", `${dayjs().format("HH:mm:ss")} ${message || ""}`);
  64. }