Skip to content

常量

介绍

@vmf-kit/constants 提供了项目中常用的常量定义,帮助统一管理和维护各类常量值。

安装

bash
npm install @vmf-kit/constants

使用方式

ts
import { STATUS_CODES, HTTP_METHODS } from "@vmf-kit/constants";

常量分类

状态码

ts
// 系统状态码
export const STATUS_CODES = {
  SUCCESS: 200,
  CREATED: 201,
  BAD_REQUEST: 400,
  UNAUTHORIZED: 401,
  FORBIDDEN: 403,
  NOT_FOUND: 404,
  INTERNAL_ERROR: 500,
} as const;

// HTTP 请求方法
export const HTTP_METHODS = {
  GET: "GET",
  POST: "POST",
  PUT: "PUT",
  DELETE: "DELETE",
  PATCH: "PATCH",
} as const;

时间常量

ts
// 时间单位(毫秒)
export const TIME_UNITS = {
  SECOND: 1000,
  MINUTE: 60 * 1000,
  HOUR: 60 * 60 * 1000,
  DAY: 24 * 60 * 60 * 1000,
  WEEK: 7 * 24 * 60 * 60 * 1000,
} as const;

// 日期格式
export const DATE_FORMATS = {
  DATE: "YYYY-MM-DD",
  TIME: "HH:mm:ss",
  DATETIME: "YYYY-MM-DD HH:mm:ss",
} as const;

正则表达式

ts
// 常用正则表达式
export const REGEX = {
  EMAIL: /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,
  PHONE: /^1[3-9]\d{9}$/,
  URL: /^https?:\/\/[\w\-]+(\.[\w\-]+)+[/#?]?.*$/,
} as const;

文件相关

ts
// 文件大小单位(字节)
export const FILE_SIZE_UNITS = {
  KB: 1024,
  MB: 1024 * 1024,
  GB: 1024 * 1024 * 1024,
} as const;

// 文件类型
export const FILE_TYPES = {
  IMAGE: ["jpg", "jpeg", "png", "gif"],
  DOCUMENT: ["doc", "docx", "pdf", "txt"],
  EXCEL: ["xls", "xlsx"],
} as const;

界面配置

ts
// 分页配置
export const PAGINATION = {
  PAGE_SIZES: [10, 20, 50, 100],
  DEFAULT_PAGE_SIZE: 10,
  DEFAULT_CURRENT: 1,
} as const;

// 主题色
export const THEME_COLORS = {
  PRIMARY: "#1890ff",
  SUCCESS: "#52c41a",
  WARNING: "#faad14",
  ERROR: "#f5222d",
} as const;

使用示例

状态码判断

ts
import { STATUS_CODES } from "@vmf-kit/constants";

function handleResponse(code: number) {
  if (code === STATUS_CODES.SUCCESS) {
    console.log("请求成功");
  } else if (code === STATUS_CODES.UNAUTHORIZED) {
    console.log("未授权");
  }
}

时间计算

ts
import { TIME_UNITS } from "@vmf-kit/constants";

// 计算 5 分钟后的时间
const fiveMinutesLater = Date.now() + 5 * TIME_UNITS.MINUTE;

文件大小格式化

ts
import { FILE_SIZE_UNITS } from "@vmf-kit/constants";

function formatFileSize(bytes: number) {
  if (bytes < FILE_SIZE_UNITS.KB) {
    return `${bytes}B`;
  }
  if (bytes < FILE_SIZE_UNITS.MB) {
    return `${(bytes / FILE_SIZE_UNITS.KB).toFixed(2)}KB`;
  }
  return `${(bytes / FILE_SIZE_UNITS.MB).toFixed(2)}MB`;
}

API 参考

每类常量的详细说明,请参考对应的文档:

  • [状态码]
  • [时间常量]
  • [正则表达式]
  • [文件相关]
  • [界面配置]

Released under the MIT License.