npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@baic/yolk-miniapp

v1.0.45

Published

## 使用

Downloads

157

Readme

@baic/yolk-miniapp

Taro之上的微信小程序封装,包含基础Config配置、表单、Request、Util

使用

yarn add @baic/yolk-miniapp

API

Config

内置Taro的Config配置,扩展了针对Css Modules的Typescript支持,并简化部分Taro配置。
// config/index.ts
import config from '@baic/yolk-miniapp/lib/config';

export default (merge) => {
  return merge({}, config(merge, {
    // 自定义Taro的Config
  }));
};

yolk

| 参数 | 说明 | 类型 | 默认值 | | :----: | :------: | :----: | :----: | | sassVarsResources | 加入全局引用sass变量文件源 | string[] | - |

Form

使用antd.Form扩展Taro的表单能力(注:由于antd体积过大,打包过大会被微信规则限制,这里内部进行了优化,使用者不应在项目中直接使用antd)。

useForm()

同antd.Form的useForm,并增加createFormItem方法,使得表单双向绑定适用于Taro。并扩展了一部分常用的rules。
import * as React from 'react';
import { View } from '@tarojs/components';
import { AtForm, AtButton } from 'taro-ui';
import { Form } from '@baic/yolk-miniapp';
import {
  Input,
} from '@baic/yolk-miniapp-ui';
export default () => {
  const [form, formProps] = Form.useForm();
  const { createFormItem, validateFields } = form;
  const onClick = async () => {
    const values = await validateFields();
    console.log(values);
  }
  return <View>
    <Form form={form} {...formProps}>
      <AtForm>
        {createFormItem({
          name: 'name',
          rules: 'required',
        })(<Input />)}
      </AtForm>
    </Form>
    <AtButton onClick={onClick}>获取输入</AtButton>
  </View>
}

validator

为表单rules扩展的常用验证
export type ValidatorKeys =
  | 'required' // 必填
  | 'mobile'  // 手机号
  | 'idcard'  // 身份证
  | 'cn'  // 英文
  | 'en'  // 中文
  | 'email' // 邮箱
  | 'int' // 整型
  | 'float' // 小数
  | 'number'  // 数字
  | 'url' // 链接
  | 'trim'  // 前后空格
  | 'noSpaces'  // 全文空格
  | 'len' // 指定长度
  | 'maxLen'  // 最大长度
  | 'minLen'  // 最小长度
  | 'max' // 小于
  | 'min' // 大于
  | 'maxEqual'  // 小于等于
  | 'minEqual'  // 大于等于
  | 'checked' // 选中
  | 'maxDecimalDigits'  // 小数位数小于
  | 'minDecimalDigits'  // 小数位数大于
  | 'maxEqualDecimalDigits' // 小数位数小于等于
  | 'minEqualDecimalDigits' // 小数位数大于等于
  | 'ip';

Request

基于Taro.request构建的请求对象,这里只列举扩展参数

| 参数 | 说明 | 类型 | 默认值 | | :----: | :------: | :----: | :----: | | baseUrl | 基础Url | string | - | | logger | 实时日志 | boolean | - | | suffix | 默认后缀名,如果url内部包含不添加 | string | - | | randomStringName | 随机数参数名 | string | _ | | shallowTrim | 参数浅层次去掉前后空格 | boolean | true | | deepTrim | 参数深层次去掉前后空格 | boolean | false | | onStart | 请求前调用,返回请求参数 | function | - | | onEnd | 请求完成调用 | function | - | | onFail | 请求失败调用 | function | - | | onError | 请求发生错误调用,返回response对象 | function | - | | onInterceptorCatch | 判断返回结果符合的Promise | function | - | | transformResult | 转换返回response.data | function | - | | loading | 是否开启默认Loading | boolean | true | | header | 扩展为可异步函数返回header | object | function | - |

Request.get(url, data, option)

static方式的默认get方法

Request.post(url, data, option)

static方式的默认post方法

useRequest

获取上下文初始化的request实例

request.get(url, data, option)

request.post(url, data, option)

request.data(defaultValue: any).get(url, data, option)

设定默认值,并获取transformResult转换后的data

request.data(defaultValue: any).post(url, data, option)

设定默认值,并获取transformResult转换后的data
import * as React from 'react';
import { useRequest } from '@baic/yolk-miniapp';
import { View } from '@tarojs/components';
export default () => {
  const [request] = useRequest();
  // request.get();
  // request.post();
  // request.data().get();
  // request.data().post();
  return <View/>
}

Util

getRandomString(maxLength):String

说明:生成随机字符串

| 参数 | 说明 | 类型 | 默认值 | | :-------: | :--------: | :----: | :----: | | maxLength | 字符串长度 | number | 6 |

isEmpty(object):Boolean

说明:判断类型

| 参数 | 说明 | 类型 | 默认值 | | :----: | :------: | :----: | :----: | | object | 判断对象 | object | - |

getByteLength(string):Number

说明:获取字符串真实长度

| 参数 | 说明 | 类型 | 默认值 | | :----: | :----: | :----: | :----: | | string | 字符串 | string | - |

random(min, max):Number

说明:获取区间随机数

| 参数 | 说明 | 类型 | 默认值 | | :--: | :----: | :----: | :----: | | min | 最小值 | number | - | | max | 最大值 | number | - |

blank(object):String

说明:为空返回Util.blankPlaceholder

| 参数 | 说明 | 类型 | 默认值 | | :----: | :------: | :----: | :----: | | object | 判断对象 | object | - |

isIdCard(object):Boolean

说明:判断是否是合法的身份证号码

| 参数 | 说明 | 类型 | 默认值 | | :----: | :------: | :----: | :----: | | object | 判断对象 | object | - |

Math.add(...number):Number

说明:加法

| 参数 | 说明 | 类型 | 默认值 | | :----: | :------: | :----: | :----: | | number | 数字 | number | - |

Math.sub(...number):Number

说明:加法

| 参数 | 说明 | 类型 | 默认值 | | :----: | :--: | :----: | :----: | | number | 数字 | number | - |

Math.mul(...number):Number

说明:减法

| 参数 | 说明 | 类型 | 默认值 | | :----: | :--: | :----: | :----: | | number | 数字 | number | - |

Math.div(...number):Number

说明:乘法

| 参数 | 说明 | 类型 | 默认值 | | :----: | :--: | :----: | :----: | | number | 数字 | number | - |

Date.format(time, formater):String

说明:时间格式化

| 参数 | 说明 | 类型 | 默认值 | | :------: | :----------------------------------------------------------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - | | formater | 格式化格式,包含Date.NY(NYR,SFM,NYRSFM,NYRSF,NYR000,NYREND) | string | - |

Date.ny(time):String

说明:Date.format(time, Date.NY);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Date.nyr(time):String

说明:Date.format(time, Date.NYR);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Date.sfm(time):String

说明:Date.format(time, Date.SFM);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Date.nyrsfm(time):String

说明:Date.format(time, Date.NYRSFM);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Date.nyrsf(time):String

说明:Date.format(time, Date.NYRSF);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Date.nyr000(time):String

说明:Date.format(time, Date.NYR000);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Date.nyrend(time):String

说明:Date.format(time, Date.NYREND);

| 参数 | 说明 | 类型 | 默认值 | | :--: | :--------: | :------------: | :----: | | time | 格式化时间 | Date or moment | - |

Number.format(number, decimals,thousands):String

说明:数字格式化

| 参数 | 说明 | 类型 | 默认值 | | :-------: | :----------: | :----: | :----: | | number | 格式化数字 | number | 0 | | decimals | 保留小数位数 | number | 2 | | thousands | 千分位符号 | string | , |

Money.format(number, decimals,thousands):String

说明:Number.format

| 参数 | 说明 | 类型 | 默认值 | | :-------: | :----------: | :----: | :----: | | number | 格式化数字 | number | 0 | | decimals | 保留小数位数 | number | 2 | | thousands | 千分位符号 | string | , |

Money.thousands(number, decimals,thousands):String

说明:Number.format

| 参数 | 说明 | 类型 | 默认值 | | :-------: | :----------: | :----: | :----: | | number | 格式化数字 | number | 0 | | decimals | 保留小数位数 | number | 2 | | thousands | 千分位符号 | string | , |

Money.y2w(number, decimals):String

说明:元转万

| 参数 | 说明 | 类型 | 默认值 | | :------: | :----------: | :----: | :----: | | number | 格式化数字 | number | 0 | | decimals | 保留小数位数 | number | 2 |

Money.f2y(number, decimals):String

说明:分转元

| 参数 | 说明 | 类型 | 默认值 | | :------: | :----------: | :----: | :----: | | number | 格式化数字 | number | 0 | | decimals | 保留小数位数 | number | 2 |

Provider

yolk-miniapp的初始化上下文
import * as React from 'react';
import { Provider, Request } from '@baic/yolk-miniapp';

export default () => {
  return <Provider request={new Request()}/>
};

Hooks

一些hooks工具

Hooks.useDidShow(callback: () => void | Promise): void;

扩展Taro的useDidShow,确保第一次不执行

Hooks.useFastClickCallback(callback: FastClickCallback, autoRelease?: boolean): ClickCallback;

点击事件的useCallback,防止执行过程连续点击

Logger

小程序日志,会反应到实时日志中