# cake-futil

> 简单说明：

Latest version **1.0.11** (published 2021-07-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install cake-futil
pnpm add cake-futil
yarn add cake-futil
bun add cake-futil
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.11 |
| Published | 2021-07-19 |
| First published | 2020-07-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 33.3 KB |
| Known vulnerabilities | 0 (+25 in 1 direct dependencies) |
| Install scripts | no |
| Maintainers | yzy_lin |

## Links

- npm: https://www.npmjs.com/package/cake-futil
- npm.io page: https://npm.io/package/cake-futil

## Dependencies (2)

- [axios](https://npm.io/package/axios.md) ^0.19.2
- [typescript](https://npm.io/package/typescript.md) ^3.9.6

## Recent versions

- 1.0.11 (latest) — 2021-07-19
- 1.0.10 — 2021-07-19
- 1.0.9 — 2021-07-19
- 1.0.8 — 2021-07-19
- 1.0.7 — 2021-07-19
- 1.0.6 — 2021-07-19
- 1.0.5 — 2021-07-19
- 1.0.4 — 2021-07-19
- 1.0.3 — 2020-07-20
- 1.0.1 — 2020-07-17
- 1.0.0 — 2020-07-17

## README

## 蛋糕英语 前端Util

简单说明：

* 下面的区分是按照lib里面的源文件名进行分类
* 导出的interface可以简单的看出具体的内容

## env
```
import { UA } from 'cake-futil'

// UA的包含内容
export interface UAType {
  isDev: boolean     // 是否是本地开发
  isDebug: boolean   // 是否处于debug模式
  isAndroid: boolean    // 是否是安卓
  isSafari: boolean     // 是否是Safari
  isIos: boolean        // 是否是IOS
  isWeiXin: boolean     // 是否是微信
  isMobile: boolean     // 是否是手机
  isBCZ: boolean        // 是否是百词斩APP 
  isCake: boolean       // 是否是蛋糕APP
}
```

## helper

#### copy.ts
```
import { copyClipboard } from 'cake-futil'

// 复制到剪切板
export function copyClipboard(text: string, callback?: (resulut: boolean) => void): void
```

#### func.ts
```
import { throttle, debounce } from 'cake-futil'

// 函数节流
export function throttle(fn: Function, interval: number = 300): Function

// 函数防抖
export function debounce(fn: Function, interval = 300): Function
```
#### is.ts

```
import { 
  isPlainObject,
  isQuoteType,
  isString,
  isNumber,
  isArray,
  isObject
} from 'cake-futil'

// 是否是简单对象
export function isPlainObject(obj: any): boolean

// 是否是引用类型（数组或对象）
export function isQuoteType(input: any): boolean 

export function isString(input: any): boolean // 是否是string

export function isNumber(input: any): boolean // 是否是number

export function isObject(input: any): boolean // 是否是object

export function isArray(input: any): boolean // 是否是array
```

#### hash.ts
```
import { hash } from 'cake-futil'

/**
 * @name hash
 * @param min 最小位数
 * @param max 最大位数
 * @description 生成一个随机字符串，传入一个参数生成固定位数的字符串
 * @description 传入两个参数，生成位于两者之间位数的字符串
 */
export function hash(min: number, max?: number): string
```

## loading
```
import { Loading } from 'cake-futil'

/**
 * @description 生成loading的构造函数
 * @param { color, size, bg } size为loading大小，color为loading的颜色，bg为loading的背景色
 * @returns void
 */

// 此处展示的参数为默认值参数，请酌情修改
const config = {
  size: 1, 
  color: '#e66c5f'
  bg: 'transparent'
}

const loading = new Loading(config)

// 使用api 列表
loading.stAPILd   // 设置一个loading
loading.rmAPIld   // 去除loading
```

## request
```
import { Request } from 'cake-futil'

/**
 * @name Request
 * @description request构造函数
 * @description 集成自axios，参数可参考axios的官方文档
 * @param config axios构造配置
 * @param interceptorsConfig axios的拦截器配置
 */
const apiConfig: Partial<AxiosRequestConfig> = {
  timeout: 5000,
  withCredentials: true,
  headers: {}
}

const defaultInterceptors = {
  // 请求的resolve拦截器
  reqResolver: (param: AxiosRequestConfig) => ({
    ...param
  }),

  // 请求的reject拦截器
  reqRejecter: (err: AllType) => Promise.reject(err),

  // 返回的resolve拦截器
  resReslover: (value: AxiosResponse<AllType>) => value.data,

  // 返回的reject拦截器
  resRejecter: (err: AllType) => Promise.reject(err)
}

// 构造函数的参数可以不传，默认为上述值
epxort const request = new Request()
// 也可以自己override
export const request = new Request(custom1, custom2)
```

## toast
```
import { Toast } from 'cake-futil'


 /**
   * @name info
   * @description 消息提示
   * @param txt 消息提示内容
   * @param time 消息提示持续时间，默认1s
   */
Toast.info(txt: string, time = 1000)

-------------------------------------------------------

/**
  * @name loading提示
  * @description 弹出一个loading
  * @param txt loading的内容
  * @param wrapStyle loading的container样式
  * @returns void
  */
Toast.loading(txt: string = '正在加载中', wrapStyle={})

-------------------------------------------------------

/**
   * @name rmloading
   * @description 去掉弹出loading，与loading方法配套使用
   * @returns void
   */
Toast.rmloading() // 去除加载提示
```

## url

```
import { 
  getQuery,
  makeSearch,
  makeObject
} from 'cake-futil'

/**
 * @name getQuery
 * @description 查询url参数
 * @param name 想要查询的参数名
 * @param url 选填，从哪个url中查询
 * @returns 返回查询到的结果，如果没查到，返回null
 * @author zaiyong
 */
export function getQuery(name: string, url: string = window.location.search.substr(1)): string | null

/**
 * @name makeSearchByObject
 * @description 根据对象生成url参数
 * @param obj 必需，简单对象
 * @param url 要拼接的url，生成search后自动拼接到url上
 * @returns 返回生成的search字符串
 * @author zaiyong
 */
export function makeSearchByObject(obj: PlainObject, url: string = ''): string 


/**
 * @name makeObjectBySearch
 * @description 根据url参数，生成对象
 * @param search 字符串，url参数
 * @returns 返回生成的对象
 * @author zaiyong
 */
export function makeObjectBySearch(search: string = window.location.search.substr(1)): PlainObject
```


## location

```
/**
 * @name locationWithDelay
 * @description 延迟跳转url，多用于send log和页面跳转配合，不然log有时可能会丢失
 * @param url  跳转的路径
 * @param delay 跳转的延迟，默认250ms
 */
export const locationWithDelay = (url: string, delay: number = 250): void

/**
 * @name locationWithSearch
 * @description 跳转页面，并且携带当前页面参数
 * @param pathname 跳转的路径
 * @param extraParams 除了本身的路由，还需要额外携带的参数，为简单对象
 */
export const locationWithSearch = (pathname: string, extraParams: PlainObject = {})
```

---
_Source: https://npm.io/package/cake-futil · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
