# bees-utils **Repository Path**: public-cli/bees-utils ## Basic Information - **Project Name**: bees-utils - **Description**: 函数工具包 - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-12-13 - **Last Updated**: 2024-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 函数工具包 #### 数据模型 Model #### API | 参数 | 说明 | 类别 | 默认值 | | ------------ | -------- | --------------------------------------------------------------------- | ------------------------- | | initialState | 状态 | InitialState = {} & T | { } | | reducer | 管理状态 | (state: InitialState, payload: InitialState) => InitialState | (state, payload) => ({ }) | | dispatch | 派发函数 | (values: Partial>) => void | () => {} | | assign | 布置函数 | (dispatch: Dispatch) => void | (dispatch) => dispatch | #### 示例 ```js import React, { useReducer } from 'react'; import Model from '@bees/model'; class Models extends Model { // 状态 initialState = { count: 1, }; // 增加 add = (count = 0) => { this.dispatch({ count: count + 1, }); }; } const $models = new Models(); export default () => { const [state, dispatch] = useReducer($models.reducer, $models.initialState); $models.assign(dispatch); const { count } = state; return ; }; ``` #### 请求 Request #### Request Static | 参数 | 说明 | 类别 | 默认值 | | ----------- | --------------------------------------- | ----------------------------- | ----------------------- | | maps | Response 映射表,解析接口参数,作用全局 | object | { code, data, message } | | whitelist | 白名单,获取被捕获的错误,作用全局 | array | [] | | codelist | code 映射表,特殊 code 处理,作用全局 | object | {} | | Request | 自定义请求函数 | => | StaticResponse | | Response | 自定义响应函数 | => ARC | StaticRequest | | Middlewares | 中间件 | (ARC) => > | - | #### new Request(Params) | 参数 | 说明 | 类别 | 默认值 | | --------- | ------------------------------------------------- | --------------------------- | ----------------------- | | axios | axios 参数 | object | {} | | maps | Response 映射表,解析接口参数,作用单例 | object | { code, data, message } | | whiteList | 白名单,获取被捕获的错误,作用单例,和全局共存 | array | [] | | codeList | code 映射表,特殊 code 处理,作用单例,和全局共存 | object | {} | #### Request Instantiate `Http` | 参数 | 说明 | 类别 | 默认值 | | --------------------- | ------------------------------------- | --------------------------- | ----------------------- | | maps | 字段映射 | object | { code, data, message } | | whitelist | 白名单,获取被捕获的错误,作用全局 | array | [] | | codelist | code 映射表,特殊 code 处理,作用全局 | object | {} | | requestMiddlewares | 请求中间件 | RequestInterceptor[] | {} | | responseMiddlewares | 响应中间件 | ResponseInterceptor[] | {} | | ...AxiosRequestConfig | | | | ###### Middlewares {} | 参数 | 说明 | 类别 | 默认值 | | ------------- | ---------- | ------------------------------------------------ | ------ | | Encrypt | 加密 | (key: string, iv: string) => RequestInterceptor | - | | Decrypt | 解密 | (key: string, iv: string) => ResponseInterceptor | - | | SetToken | 设置 Token | RequestInterceptor | - | | Debounce | 防抖 | RequestInterceptor | - | | HandleError | 处理错误 | ResponseInterceptor | - | | HandleSuccess | 处理成功 | ResponseInterceptor | - | #### 示例 ```js import utils from '@bees/utils'; const KEY = '0123456789abcdef'; const IV = 'fedcba9876543210'; const Request = utils.Request; Request.maps = { code: 'code', data: 'data', message: 'msg' }; Request.whitelist = ['/api/list']; Request.codelist = { 200: '成功!', 401: (response) => alert('失败!'), }; const fetch = new Request({ baseURL: '/api', withCredentials: true, headers: { token: 'mockToken' }, maps: {}, whitelist: [], codelist: {}, requestMiddlewares: [Request.Middlewares.Encrypt(KEY, IV)], responseMiddlewares: [Request.Middlewares.Decrypt(KEY, IV)], }); fetch.Http('/user/info', { method: 'get', params: {} }); ```