1.2.2 • Published 5 years ago

jx-cores v1.2.2

Weekly downloads
-
License
ISC
Repository
-
Last release
5 years ago
  • 无前缀:public
  • _ 开头:protected
  • __ 开头:private

断言

import {Assert} from 'jx-cores';

Assert.instanceOf(inst, expectedInst, msg);
Assert.instanceOneOf(inst, expectedInsts, msg);

Assert.oneOf(value, expectedValues, msg);

Assert.equal(inst, expectedInst, msg);
Assert.objectEqual(inst, expectedInst, msg);

Assert.hasFunction(valueName, inst, msg);
Assert.hasProperty(valueName, inst, msg);
Assert.hasProperties(valueNames, inst, msg);

Assert.greaterThan(expected, value, msg);
Assert.greaterThanOrEqual(expected, value, msg);
Assert.lessThan(expected, value, msg);
Assert.lessThanOrEqual(expected, value, msg);

Assert.integer(value, msg);
Assert.number(value, msg);
Assert.string(value, msg);
Assert.boolean(value, msg);
Assert.true(value, msg);
Assert.false(value, msg);
Assert.object(value, msg);
Assert.array(value, msg);
Assert.function(value, msg);

降维 Promise.then().catch() => err, res

告别回调函数

async function asyncFunctionWithThrow() {
  const [err, user] = await to(UserModel.findById(1));

  if (!user) throw new Error('User not found');
 }

Cookie

小程序不可用

枚举

import {BizEnum, BizEnumGroug} from 'jx-cores';

const SexEnum = {
  MALE: BizEnum.$(0, '男'),
  FEMALE: BizEnum.$(1, '女')
};
const SexEnumGroup = BizEnumGroug.$(SexEnum);

var type = res.type;
var sex = SexEnumGroup.valueOf(type);

if (sex) {
  console.log('sex = ', sex.msg);

  if (SexEnum.MALE.equal(type)) {
    // 处理男性情况
  } else if (SexEnum.FEMALE.equal(type)) {
    // 处理女性情况
  }
}

错误

import {BizError} from 'jx-cores';

var error1 = new BizError(); // { err: -3.14, msg: "未定义错误", name: "未知业务"}
error1.named("体验权限").err(1001).msg("您没有体验权限,请联系管理员获取");

error1.is("无体验权限错误") // true
error1.is(1001) // true
error.is(1000) // false

BizError.Failure(1002, "请求超时,请稍后再试", "网络"); 
// { err: 1002, msg: "请求超时,请稍后再试", name: "网络" }

BizError.Failure(2001, "支付密码错误,请输入正确的密码", "支付"); 
// { err: 2001, msg: "支付密码错误,请输入正确的密码", name: "支付"}

事件

import {Event} from 'jx-cores';
var eventor = new Event()

eventor.on('on.some.thing.happen', function () {
  // do something
});

eventor.emit('on.some.thing.happen')

eventor.once('on.some.thing.happen.and.expire', function () {
  // do it once
});

eventor.emit('on.some.thing.happen.and.expire')
eventor.emit('on.some.thing.happen.and.expire')


var handler = function (){}
var handler1 = function (){}

eventor.on('on.another.thing.happen', handler);
eventor.on('on.another.thing.happen', handler1);
eventor.off('on.another.thing.happen', handler);
eventor.offAll('on.another.thing.happen');
eventor.count('on.another.thing.happen'); // 0

Ajax

小程序不可用

日志

基本功能

重要组件

组件名称对应类名功能描述
日志器Logger提供了应用程序可一直使用的接口
处理器Handler将logger创建的日志记录发送到合适的目的输出
过滤器Filter提供了更细粒度的控制工具来决定输出哪条日志记录,丢弃哪条日志记录
格式器Formatter决定日志记录的最终输出格式

使用说明

Logger.help() // 获取帮助文档

{
  "获取日志对象": "Logger.getLogger('测试')",
  "测试时间": [
    "logger.time('aaa');",
    "logger.timeEnd('aaa');"
  ],
  "表格打印": "logger.table([{a:1},{b:1}]);",
  "图片打印": "logger.image("http://pic16.nipic.com/20110926/6333052_165902361105_2.jpg")",
  "日志打印": [
    "logger.log(', d', ', a', ', b');",
    "logger.info(', d', ', a', ', b');",
    "logger.warn(', d', ', a', ', b');",
    "logger.error(', d', ', a', ', b');"
  ],
  "日志导出": [
    "var logs = logger.flush(2);",
    "console.log(logs);"
  ],
  "日志过滤": [
    "logger.setFilter(new LoggerFilter({",
    "  filter: (lvl, outputs) => {",
    "    if (lvl === Logger.Level.WARN) return true;",
    "    return false;",
    "  }",
    "}));"
  ],
  "日志处理": [
    "logger.setHandler(new LoggerHandler({",
    "  handle: (lvl)=> {",
    "    console.log(`收到日志: ${lvl}`)",
    "  }",
    "}));"
  ],
  "日志格式化": [
    "logger.setFormatter(new LoggerFormatter({",
    "  format: (lvl, outputs) => {",
    "    return `已达标, ${outputs}`;",
    "  }",
    "}))"
  ],
  "格式化输出(不支持object)": [
    "%s, 字符串",
    "%d/%i, 整数",
    "%f, 浮点数",
    "%o/%O, Object对象",
    "%c, css样式"
  ]
}

Session

小程序不可用

信号

import {Signal} from 'jx-cores';

var moduleIntializedSignal = new Signal();

var handler = function (){}
var handler1 = function (){}

moduleIntializedSignal.on(handler)
moduleIntializedSignal.once(handler1)
moduleIntializedSignal.off(handler1)
moduleIntializedSignal.offAll() // 注销所有监听者

moduleIntializedSignal.send({ xxx: {} })

moduleIntializedSignal.on(function (data) {
  // 依然能收到数据
  // do some thing
})

moduleIntializedSignal.dispose(); // 信号结束

Storage

小程序不可用

1.2.2

5 years ago

1.2.0

5 years ago

1.1.32

5 years ago

1.1.30

5 years ago

1.1.28

5 years ago

1.1.26

5 years ago

1.1.24

5 years ago

1.1.22

5 years ago

1.1.20

5 years ago

1.1.18

5 years ago

1.1.16

5 years ago

1.1.14

5 years ago

1.1.12

5 years ago

1.1.10

5 years ago

1.1.8

5 years ago

1.1.6

5 years ago

1.1.4

5 years ago

1.1.2

5 years ago

1.1.0

5 years ago

1.0.1

5 years ago

0.7.0

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.8

5 years ago

0.3.6

5 years ago

0.3.4

5 years ago

0.3.2

5 years ago

0.3.0

5 years ago

0.2.0

5 years ago