Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including richang.js with all npm packages installed. Try it out:

var richangJs = require("richang.js")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

richang.js v4.5.5

richang js code.

Richang.js

npm GitHub package version npm npm Coverage Status Build Status license

//      ___                       ___           ___           ___           ___           ___
//     /\  \                     /\__\         /\  \         /\  \         /\  \         /\__\
//    /::\  \       ___         /:/  /         \:\  \       /::\  \        \:\  \       /:/ _/_
//   /:/\:\__\     /\__\       /:/  /           \:\  \     /:/\:\  \        \:\  \     /:/ /\  \
//  /:/ /:/  /    /:/__/      /:/  /  ___   ___ /::\  \   /:/ /::\  \   _____\:\  \   /:/ /::\  \
// /:/_/:/__/___ /::\  \     /:/__/  /\__\ /\  /:/\:\__\ /:/_/:/\:\__\ /::::::::\__\ /:/__\/\:\__\
// \:\/:::::/  / \/\:\  \__  \:\  \ /:/  / \:\/:/  \/__/ \:\/:/  \/__/ \:\~~\~~\/__/ \:\  \ /:/  /
//  \::/~~/~~~~   ~~\:\/\__\  \:\  /:/  /   \::/__/       \::/__/       \:\  \        \:\  /:/  /
//   \:\~~\          \::/  /   \:\/:/  /     \:\  \        \:\  \        \:\  \        \:\/:/  /
//    \:\__\         /:/  /     \::/  /       \:\__\        \:\__\        \:\__\        \::/  /
//     \/__/         \/__/       \/__/         \/__/         \/__/         \/__/         \/__/
//
//
//                日常
//        +-------------------+
//        |   Richang  JSEX   |
//        +-------------------+

Install

npm i -S richang.js

不使用 Node 相关模块

// ES6 modules
import Richang from "richang.js"

// Node.js (CJS) modules
var Richang =  require ("richang.js")

// 载入纯 ES6 modules
import Richang from "richang.js/dist/RichangEs.js"

// 捆绑了所有 node_modules 依赖
import Richang from "richang.js/dist/RichangEs.bundle.js"

使用 Node 相关模块

// 依赖在 node_modules 中
var Richang =  require ("richang.js/dist/RichangNode.js")

// 捆绑了所有 node_modules 依赖(bable 目标 Node 1.2 的模块, transform-runtime)
var Richang =  require ("richang.js/dist/RichangNode.bundle.js")

// 如果项目没有使用 babel, 可能需要单独使用 babel-polyfill
require("babel-polyfill")
var Richang =  require ("richang.js/dist/RichangNode.bundle.js")

如果遇到 ReferenceError: regeneratorRuntime is not defined ,需要安装 npm i -S babel-polyfill ,并且在引入 Richang.js 前先引入 babel-polyfill

Members

Time : Object

时间日期操作相关模块

byteToHex

Convert array of 16 byte values to UUID string format of the form: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Tool : Object

通用工具相关模块

NodeFile : Object

文件操作相关模块

NodeDebug : Object

Node 调试相关模块

NodeImage : Object

Node 图片相关模块

NodeTool : Object

Node 通用工具

ConsoleCON : Object

控制台相关功能模块

ObjectOBJ : Object

对象操作相关操作

StringSTR : Object

字符串相关功能模块

Rect : Object

矩形处理相关模块

TypeTYP : Object

类型相关模块

AarryArr : Object

数组相关功能模块

Calc : Object

计算相关功能模块

FileFIL : Object

文件操作相关模块

Cache : Object

缓存相关

Time : Object

时间日期操作相关模块

Kind: global variable

Time.genTimestamp([raw])

生成时间戳(当前时间的 32 进制)

Kind: static method of Time

ParamTypeDescription
[raw]Object获取原始格式,比如 1521602474428

Time.parseTimestamp(timestamp) ⇒ Date

解析一个时间戳返回 date

Kind: static method of Time

Param
timestamp

byteToHex

Convert array of 16 byte values to UUID string format of the form: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Kind: global variable

Tool : Object

通用工具相关模块

Kind: global variable

Tool.genUUID_v4() ⇒ string

生成一个随机的 UUID genUUID_v4() => 'f8061fba-842b-4cc5-9872-9348e2e06916'

Kind: static method of Tool

Tool.genUUID_v5(name, [namespace]) ⇒ *

根据一个名字和命名空间生成一个 UUID,这个 UUID 与名称+命名空间有一一对应,不随机 (与标准不同,这里命名空间可不用 UUID 而是任何字符串,我们会用默认 UUID 和给命名空间生成一个 UUID) genUUID_v5("Gasoft_Mobiusbug.exe","BGLL") => '2cb20c42-026f-5d56-b33f-008e354ac8d3'

Kind: static method of Tool

ParamTypeDescription
namestring名称
[namespace]string命名空间,

Tool.genSHA1(str) ⇒ *

用 sha1 生成一个字符串 genSHA1("nullice") => 51918a176c8e2b0af211a94c5478c58a54f239cd

Kind: static method of Tool

ParamType
strstring

Tool.formatUUID(str) ⇒ string

把36位字符串转换成带横杠 UUID 的格式 formatUUID("e9411a6f1a2e22dd2244b78ee491c616") => "e9411a6f1a2e22dd2244b78ee491c616"

Kind: static method of Tool

ParamType
strstring

Tool.checkUUID(uuid) ⇒ number

检查一个字符串是 UUID 的版本或者是否是 UUID,返回 UUID 的版本,如果为 0 则说明不是 UUID

Kind: static method of Tool

ParamTypeDescription
uuidstringuuid

Tool.roll(max, min)

生成一个随机整数

Kind: static method of Tool

ParamTypeDescription
maxnumber最大值
minnumber最小值

Tool.rollString(length, [dict]) ⇒ string

生成一个随机字符串

Kind: static method of Tool

ParamTypeDescription
lengthnumber随机字符串长度
[dict]string随机字符字典,默认为 a—Z0-9

NodeFile : Object

文件操作相关模块

Kind: global variable

NodeFile.getTempDirManager(name) ⇒ *

生成一个临时文件夹管理器,会在系统临时目录中创建一个指定名字的临时文件夹,和一个实例临时文件夹 可以用得到的 TempDirManager,申请临时文件名,和销毁临时文件夹 var tepmDM = getTempDirManager("siphonink") tepmDM.genTempFilePath(subDir) - 申请一个临时文件路径,可用提供一个子文件夹名 tepmDM.destroy() - 销毁临时目录 tepmDM.clear(day) - 清除 day 天前的实例临时文件夹

Kind: static method of NodeFile

Param
name

NodeDebug : Object

Node 调试相关模块

Kind: global variable

NodeDebug.logRed(text)

在终端打出红色 log

Kind: static method of NodeDebug

Param
text

NodeDebug.cRed(text) ⇒ string | *

把文本标记为红色

Kind: static method of NodeDebug

Param
text

NodeDebug.logBlue(text)

在终端打出蓝色 log

Kind: static method of NodeDebug

Param
text

NodeDebug.cBlue(text) ⇒ * | string

把文本标记为蓝色

Kind: static method of NodeDebug

Param
text

NodeDebug.logGreen(text)

在终端打出绿色 log

Kind: static method of NodeDebug

Param
text

NodeDebug.cGreen(text) ⇒ string | *

把文本标记为绿色

Kind: static method of NodeDebug

Param
text

NodeDebug.logGray(text)

在终端打出灰色 log

Kind: static method of NodeDebug

Param
text

NodeDebug.cGray(text) ⇒ string | *

把文本标记为灰色

Kind: static method of NodeDebug

Param
text

NodeDebug.logYellow(text)

在终端打出黄色 log

Kind: static method of NodeDebug

Param
text

NodeDebug.cYellow(text) ⇒ string | *

把文本标记为黄色

Kind: static method of NodeDebug

Param
text

NodeDebug.logLableRed(text)

在终端打出红色标签 log

Kind: static method of NodeDebug

Param
text

NodeDebug.logLableYellow(text)

在终端打出黄色标签 log

Kind: static method of NodeDebug

Param
text

NodeDebug.logLableCyan(text)

在终端打出蓝绿色标签 log

Kind: static method of NodeDebug

Param
text

NodeDebug.logLableGreen(text)

在终端打出绿色标签 log

Kind: static method of NodeDebug

Param
text

NodeDebug.logLableWhite(text)

在终端打出白色色标签 log

Kind: static method of NodeDebug

Param
text

NodeImage : Object

Node 图片相关模块

Kind: global variable

NodeImage.ARGB_BufferToPngFileBuffer

Kind: static class of NodeImage

new ARGB_BufferToPngFileBuffer(argbBuffer, channelCount, wh)

把 ARGB 格式的像素 buffer 转化为可直接写入文件的 PNG buffer

ParamTypeDescription
argbBufferbufferargb
channelCountnumber通道数量 1-4
whobject高宽 {w, h}

NodeImage.getPngData ⇒ Promise.<Buffer>

获取 PNG 图片文件的像素数据 Buffer

Kind: static property of NodeImage

ParamTypeDescription
databufferPNG 文件的 buffer

NodeTool : Object

Node 通用工具

Kind: global variable

NodeTool.getMD5(inData) ⇒ * | PromiseLike.<ArrayBuffer>

获取数据的 MD5 值 getMD5("白色的空曲奇在发热") => 3b81233f69cc6dbf83899148b888f0db

Kind: static method of NodeTool

ParamTypeDescription
inDatabuffer | string输入的数据

NodeTool.getSHA256(inData) ⇒ * | PromiseLike.<ArrayBuffer>

获取数据的 getSHA256 值 getSHA256("白色的空曲奇在发热") => 5be124e39cb90f3144fba1a798ab3a8472c24a44c0f9efc305f76c1e34de848f

Kind: static method of NodeTool

ParamTypeDescription
inDatabuffer | string输入的数据

NodeTool.arrayBuffertoBuffer(arrayBuffer) ⇒ Buffer

ArrayBuffer to Buffer

Kind: static method of NodeTool

ParamType
arrayBufferarrayBuffer

ConsoleCON : Object

控制台相关功能模块

Kind: global variable

ConsoleCON.CSS_POST

控制台颜色 用法: console.log("%c test", CSS_POST)

Kind: static property of ConsoleCON

ObjectOBJ : Object

对象操作相关操作

Kind: global variable

ObjectOBJ.isEmptyObject(obj) ⇒ boolean

对象是否为空

Kind: static method of ObjectOBJ

Param
obj

ObjectOBJ.objectCopyToObject(ob1, ob2, func_allowCopy, func_rename, func_valueFiter, func_for)

复制对象。可控制要复制的属性,复制后的属性名,处理新属性值

Kind: static method of ObjectOBJ

ParamDescription
ob1源对象
ob2目标对象
func_allowCopy判断是否允许复制的函数,返回真允许复制 func_allowCopy(属性名,属性值)。可空
func_rename重命名复制到目标对象上的属性名, 返回新属性名 func_rename(属性名,属性值)。可空
func_valueFiter处理复制到目标对象上的属性值,返回处理后的属性值 func_rename(属性名,属性值)。可空
func_for每次循环执行的函数 func_for(ob1,ob2,x)。可空

ObjectOBJ.setObjectValueByNames(object, names, value)

根据属性名路径列表(names)对对象属性赋值

Kind: static method of ObjectOBJ

ParamDescription
object对象
names属性名路径列表,如 [position,enableAssigns,y]
value

ObjectOBJ.deleteObjectValueByNames(object, names)

根据属性名路径列表(names)对对象属性删除

Kind: static method of ObjectOBJ

ParamDescription
object对象
names属性名路径列表,如 [position,enableAssigns,y]

ObjectOBJ.treeFind(objectArr, match, childrenKey, findAll, depthFirst) ⇒ array | null

在由对象数组组成的树中查找对象。如果查找全部结果会以数组返回,否则直接返回找到的对象。 tree = [ {id: 1, children: [{id: 4}]}, {id: 2}, ] findTree (tree, 4, "children", false, false) => {id: 4}

Kind: static method of ObjectOBJ

ParamTypeDescription
objectArrArray.<object>对象数组组成的树
matchfunction匹配器 - 如果是字符串则是匹配对象下的 id 键,也可提供一个匹配函数,匹配函数通过参数接收遍历到的对象,返回是否匹配的 boolen (ob)={retrun ob.name=="xxx">}
childrenKeystring子树键名 - 通过这个名字在对象中找子树
findAllboolean是否查找全部
depthFirstboolean深度优先 - 默认是广度优先

ObjectOBJ.treeEach(objectArr, eachFunc, childrenKey, depthFirst) ⇒ Object

在由对象数组组成的树中遍历处理树的每个节点。 处理函数: eachFunc(单个对象, 遍历深度, 当层深度节点计数, 总节点计数, 当前子树, 当前子树位置) 在 eachFunc 中 return true 可以提前终止遍历。 当前子树[当前子树位置+1] 可获取下一个节点。 返回树的信息: { struct:[4,2,5], // 每层节点数 deep:3, // 树深度 total: 11 // 总节点数 }

Kind: static method of ObjectOBJ

ParamTypeDescription
objectArrArray.<object>对象数组组成的树
eachFuncfunction处理函数
childrenKeystring子树键名 - 通过这个名字在对象中找子树
depthFirstboolean深度优先 - 默认是广度优先

ObjectOBJ.pathEach(object, eachFunc, [checkCycle])

遍历对象每一个元素,可以获取对象键名组成的 path (["c","d","e"]) 处理函数: eachFunc(当前元素, 当前 path, 当层深度 ) pathEach( { b:111, c:{d:{e:222}} })

Kind: static method of ObjectOBJ

ParamTypeDescription
objectobject
eachFuncfunction处理函数
[checkCycle]boolean | function是否检查循环引用,为 true 会跳过循环引用,还可以提供一个函数 checkCycleCallback(target, path, cyclePath) 来处理一些事

StringSTR : Object

字符串相关功能模块

Kind: global variable

StringSTR.left(str, offset) ⇒ *

取字符串左边 *依赖 stringSTR.right()

Kind: static method of StringSTR

ParamTypeDescription
strString原文
offsetNumber偏移值

StringSTR.right(str, offset) ⇒ *

取字符串右边。 *依赖 stringSTR.left()

Kind: static method of StringSTR

ParamTypeDescription
strString原文
offsetNumber偏移值

StringSTR.insert(str, start, offset, inStr) ⇒ *

插入文本到指定位置

Kind: static method of StringSTR

ParamTypeDescription
strString原文
startNumber开始位置
offsetNumber偏移值
inStrString要插入的文本

Rect : Object

矩形处理相关模块

Kind: global variable

Rect.rltb2xywh(boundsInfo) ⇒ Object

坐标转换 把 {right, left, top, bottom} 转化为 {x, y , w, h}

Kind: static method of Rect

Param
boundsInfo

Rect.xywh2rltb(boundsInfo) ⇒ Object

坐标转换 把 {x, y , w, h} 转化为 {right, left, top, bottom}

Kind: static method of Rect

Param
boundsInfo

Rect.paddingXywh(xywh, padding) ⇒ Object

给 xywh 添加内边距 paddingXywh(xywh, 5) paddingXywh(xywh, [3,4,5,10])

Kind: static method of Rect

Param
xywh
padding

Rect.getXywhsRange(xywhs) ⇒ Object

计算多个 xywh 矩形的边界 getXywhsRange([xywh])

Kind: static method of Rect

Param
xywhs

Rect.moveXywhs(xywhs, xy)

整体移动多个 xywh 到某点,保留原 xywhs 相对位置。 会改变 xywhs 里每个 xywh 对象的 x,y 值。

Kind: static method of Rect

Param
xywhs
xy

Rect.xywhHasCover(xywhA, xywhB) ⇒ boolean

2 个 xywh 是否有重叠

Kind: static method of Rect

Param
xywhA
xywhB

TypeTYP : Object

类型相关模块

Kind: global variable

TypeTYP.getType(value) ⇒ *

得到指定值的数据类型。返回数据类型名称字符串,如 "boolean","object","string" 。

Kind: static method of TypeTYP

Param
value

AarryArr : Object

数组相关功能模块

Kind: global variable

AarryArr.symDifference(a, b) ⇒ Array

对称差。(不支持对象数组) a:[1,2,3] b:[1,2,4] a△b => [3,4]

Kind: static method of AarryArr

ParamType
aArray
bArray

AarryArr.symDifference_ObjectArray(a, b, key) ⇒ Array

对称差。对象数组。 a:[{key:1}, {key:2}] b:[{key:2}, {key:3}] a△b => [{key:1},{key:3}]

Kind: static method of AarryArr

ParamDescription
a
b
key对象关键属性

AarryArr.difference(a, b) ⇒ Array

差集。(不支持对象数组) a:[1,2,3] b:[1,2,4] a-b => [3]

Kind: static method of AarryArr

ParamType
aArray
bArray

AarryArr.union(a, b) ⇒ Array

并集。(不支持对象数组) a:[1,2,3] b:[1,2,4] a∪b => [1,2,3,4]

Kind: static method of AarryArr

ParamType
aArray
bArray

AarryArr.intersection() ⇒ Array

交集。(不支持对象数组) a:[1,2,3] b:[1,2,4] a∩b => [1,2]

Kind: static method of AarryArr

AarryArr.remove(arr, removeRule, isMutator) ⇒ *

从数组中移除元素,默认是非变异的。

Kind: static method of AarryArr

ParamTypeDescription
arrArray
removeRulefunction可以给定值或者一个判断函数 function(x){ return x>3;}
isMutatorBoolean变异模式,为真会改变原数组

AarryArr.hasMember(arr, memberValue, equalFunc) ⇒ boolean

数组是否拥有指定成员 arr:["A","B","C"] => hasMember(arr, "C") => true

Kind: static method of AarryArr

ParamTypeDescription
arrArray
memberValue指定成员值
equalFunc比较函数,boolean equalFunc( arr[i], memberValue)。可空。

AarryArr.getByKey(objectArr, key, keyValue, equalRule) ⇒ *

对象数组查找 从对象数组中提取出一个对象,根据对象的一个属性值。 arr: [{name:a},{name:b}] getByKey(arr,"name","b") => return {name:b}

Kind: static method of AarryArr

ParamTypeDescription
objectArrArray.<Object>对象数组
keyString关键属性
keyValue欲提取的关键属性值
equalRule值比较函数,可空

AarryArr.deleteByKey(objectArr, key, keyValue, equalRule) ⇒ *

对象数组删除 从对象数组中找到出一个对象元素,并删除这个元素。 arr: [{name:a},{name:b}] deleteByKey(arr,"name","b") => arr: [{name:a}]

Kind: static method of AarryArr

ParamTypeDescription
objectArrArray.<Object>对象数组
keyString关键属性
keyValue欲提取的关键属性值
equalRule值比较函数,可空

AarryArr.sortObjectArray(arr, key, bigFront)

排序对象数组

Kind: static method of AarryArr

ParamTypeDescription
arr数组
keya:12对象排序的键值,如 [, {a:33}] , key 为 "a" 则以 a 排序
bigFront大值在前

Calc : Object

计算相关功能模块

Kind: global variable

FileFIL : Object

文件操作相关模块

Kind: global variable

FileFIL.filterFileName(name, fix) ⇒ *

去除一个字符串中不符合成为文件名的字符

Kind: static method of FileFIL

ParamDescription
name
fix非法字符替代

Cache : Object

缓存相关

Kind: global variable

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free