@howlove/format-apis
TypeScript icon, indicating that this package has built-in type declarations

0.0.13 • Public • Published

使用 demo

import formatApis, { getRequestList, RequestSendConfig } from "format-apis";

const apis = {
	cc: {
		/** @todo getRequestList 的注释不会放出来 */
		...getRequestList(
			["add", "commit", ["getUserListPage", "list"], "audit"],
			"/admin/okr-taskgroup/",
			{
				async: true,
				spaceTimer: 1500,
			}
		),
		/** 这里是ee的调用注释 */
		ee: "/path/do/something/ee",
		/** 这里是ff的调用注释 */
		ff: {
			url: "/path/do/something/ff",
			method: "post",
			/** 默认数据 */
			defaultData: {
				username: "k",
			},
			/** 自定义header */
			headers: {
				"Content-Type": "application/json",
			},
			/** 是否异步 */
			async: true,
			/** 异步检查间隔,默认1秒 */
			spaceTimer: 1,
		},
	},
} as const;

interface ReturnResult<T> {
  success: boolean;
  data: T;
  msg: string;
}
const api = formatApis<ReturnResult<unknown>, typeof apis>(apis, {
	request: function (url: string, config: RequestSendConfig, axiosConfig: object) {
		const { method, data, headers = {} } = config;
		const requestFun = async (params = {}) => {
			/// 这里写你的函数主体,get/post等等
			return { params, method, data, headers, url, axiosConfig };
		};
		return requestFun();
	},
	postKey: ["send", "create", "update", "delete"],
});
api.cc.add();
api.cc.ff();
api.cc.ee();

更新备注

0.0.3 ---------- 2023-12-15 17:48:42
更新内容: 将 postKey 转为正则进行匹配,就可以传*

0.0.4 ---------- 2023-12-15 22:05:42
getRequestList 数组优化,可以传递['getUserList','list'],在调用时 *.list,但是接口尾部内容是 /getUserList 0.0.6 ---------- 2024/1/30 17:56:04
更新内容: 去掉了checkAsync,感觉用不到,增加第三个参数requestConfig
0.0.12 ---------- 3/26/2025, 3:34:16 PM
更新内容: 增加了方法返回值类型说明

Readme

Keywords

none

Package Sidebar

Install

npm i @howlove/format-apis

Weekly Downloads

13

Version

0.0.13

License

MIT

Unpacked Size

16.2 kB

Total Files

6

Last publish

Collaborators

  • liukai
  • ll36