utils.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Context } from "koa";
  2. import fs from 'fs/promises';
  3. import path from 'path';
  4. import { IAPP_CONFIG } from "./interfaces";
  5. import { createHash } from 'crypto';
  6. export async function sendSuccessResponse(ctx: Context, payload: any) {
  7. ctx.body = {
  8. success: true,
  9. data: payload
  10. }
  11. }
  12. export async function sendPureResponse(ctx: Context, payload: any) {
  13. ctx.body = payload
  14. }
  15. export async function sendFailResponse(ctx: Context, payload: any) {
  16. ctx.body = {
  17. success: false,
  18. message: payload
  19. }
  20. ctx.status = 500
  21. }
  22. // export async function createDBConnection () {
  23. // const store = useGlobalStore();
  24. // const config = store.getConfig();
  25. // const connection = await createConnection(config.database.mysql);
  26. // return connection;
  27. // }
  28. /**
  29. * 获取应用的配置,这个后续可能是用过一个远程的异步服务获取,目前先从本地文件加载.
  30. */
  31. export async function getAppConfig (): Promise<IAPP_CONFIG> {
  32. const filePath = path.resolve(__dirname, '../app-config.json');
  33. const dataBuffer = await fs.readFile(filePath);
  34. const data = JSON.parse(dataBuffer.toString()) as IAPP_CONFIG;
  35. return data;
  36. }
  37. export function passwordHash (password: string) {
  38. const hash = createHash('sha256');
  39. hash.update(password + ':entropy')
  40. return hash.digest('hex');
  41. }