// ___ ___ ___ ___ ___ ___
// /\ \ /\__\ /\ \ /\ \ /\ \ /\__\
// /::\ \ ___ /:/ / \:\ \ /::\ \ \:\ \ /:/ _/_
// /:/\:\__\ /\__\ /:/ / \:\ \ /:/\:\ \ \:\ \ /:/ /\ \
// /:/ /:/ / /:/__/ /:/ / ___ ___ /::\ \ /:/ /::\ \ _____\:\ \ /:/ /::\ \
// /:/_/:/__/___ /::\ \ /:/__/ /\__\ /\ /:/\:\__\ /:/_/:/\:\__\ /::::::::\__\ /:/__\/\:\__\
// \:\/:::::/ / \/\:\ \__ \:\ \ /:/ / \:\/:/ \/__/ \:\/:/ \/__/ \:\~~\~~\/__/ \:\ \ /:/ /
// \::/~~/~~~~ ~~\:\/\__\ \:\ /:/ / \::/__/ \::/__/ \:\ \ \:\ /:/ /
// \:\~~\ \::/ / \:\/:/ / \:\ \ \:\ \ \:\ \ \:\/:/ /
// \:\__\ /:/ / \::/ / \:\__\ \:\__\ \:\__\ \::/ /
// \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ \/__/
//
//
// 日常
// +-------------------+
// | Richang JSEX |
// +-------------------+
npm i -S richang.js
// 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_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
- 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
缓存相关
时间日期操作相关模块
Kind: global variable
- Time :
Object
生成时间戳(当前时间的 32 进制)
Kind: static method of Time
Param | Type | Description |
---|---|---|
[raw] | Object |
获取原始格式,比如 1521602474428 |
解析一个时间戳返回 date
Kind: static method of Time
Param |
---|
timestamp |
Convert array of 16 byte values to UUID string format of the form: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
通用工具相关模块
Kind: global variable
- Tool :
Object
- .genUUID_v4() ⇒
string
- .genUUID_v5(name, [namespace]) ⇒
*
- .genSHA1(str) ⇒
*
- .formatUUID(str) ⇒
string
- .checkUUID(uuid) ⇒
number
- .roll(max, min)
- .rollString(length, [dict]) ⇒
string
- .genUUID_v4() ⇒
生成一个随机的 UUID
genUUID_v4() => 'f8061fba-842b-4cc5-9872-9348e2e06916'
Kind: static method of Tool
根据一个名字和命名空间生成一个 UUID,这个 UUID 与名称+命名空间有一一对应,不随机 (与标准不同,这里命名空间可不用 UUID 而是任何字符串,我们会用默认 UUID 和给命名空间生成一个 UUID)
genUUID_v5("Gasoft_Mobiusbug.exe","BGLL") => '2cb20c42-026f-5d56-b33f-008e354ac8d3'
Kind: static method of Tool
Param | Type | Description |
---|---|---|
name | string |
名称 |
[namespace] | string |
命名空间, |
用 sha1 生成一个字符串
genSHA1("nullice") => 51918a176c8e2b0af211a94c5478c58a54f239cd
Kind: static method of Tool
Param | Type |
---|---|
str | string |
把36位字符串转换成带横杠 UUID 的格式
formatUUID("e9411a6f1a2e22dd2244b78ee491c616") => "e9411a6f1a2e22dd2244b78ee491c616"
Kind: static method of Tool
Param | Type |
---|---|
str | string |
检查一个字符串是 UUID 的版本或者是否是 UUID,返回 UUID 的版本,如果为 0 则说明不是 UUID
Kind: static method of Tool
Param | Type | Description |
---|---|---|
uuid | string |
uuid |
生成一个随机整数
Kind: static method of Tool
Param | Type | Description |
---|---|---|
max | number |
最大值 |
min | number |
最小值 |
生成一个随机字符串
Kind: static method of Tool
Param | Type | Description |
---|---|---|
length | number |
随机字符串长度 |
[dict] | string |
随机字符字典,默认为 a—Z0-9 |
文件操作相关模块
生成一个临时文件夹管理器,会在系统临时目录中创建一个指定名字的临时文件夹,和一个实例临时文件夹 可以用得到的 TempDirManager,申请临时文件名,和销毁临时文件夹
var tepmDM = getTempDirManager("siphonink") tepmDM.genTempFilePath(subDir) - 申请一个临时文件路径,可用提供一个子文件夹名 tepmDM.destroy() - 销毁临时目录 tepmDM.clear(day) - 清除 day 天前的实例临时文件夹
Kind: static method of NodeFile
Param |
---|
name |
Node 调试相关模块
Kind: global variable
- NodeDebug :
Object
- .logRed(text)
- .cRed(text) ⇒
string
|*
- .logBlue(text)
- .cBlue(text) ⇒
*
|string
- .logGreen(text)
- .cGreen(text) ⇒
string
|*
- .logGray(text)
- .cGray(text) ⇒
string
|*
- .logYellow(text)
- .cYellow(text) ⇒
string
|*
- .logLableRed(text)
- .logLableYellow(text)
- .logLableCyan(text)
- .logLableGreen(text)
- .logLableWhite(text)
在终端打出红色 log
Kind: static method of NodeDebug
Param |
---|
text |
把文本标记为红色
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出蓝色 log
Kind: static method of NodeDebug
Param |
---|
text |
把文本标记为蓝色
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出绿色 log
Kind: static method of NodeDebug
Param |
---|
text |
把文本标记为绿色
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出灰色 log
Kind: static method of NodeDebug
Param |
---|
text |
把文本标记为灰色
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出黄色 log
Kind: static method of NodeDebug
Param |
---|
text |
把文本标记为黄色
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出红色标签 log
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出黄色标签 log
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出蓝绿色标签 log
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出绿色标签 log
Kind: static method of NodeDebug
Param |
---|
text |
在终端打出白色色标签 log
Kind: static method of NodeDebug
Param |
---|
text |
Node 图片相关模块
Kind: global variable
- NodeImage :
Object
Kind: static class of NodeImage
把 ARGB 格式的像素 buffer 转化为可直接写入文件的 PNG buffer
Param | Type | Description |
---|---|---|
argbBuffer | buffer |
argb |
channelCount | number |
通道数量 1-4 |
wh | object |
高宽 {w, h} |
获取 PNG 图片文件的像素数据 Buffer
Kind: static property of NodeImage
Param | Type | Description |
---|---|---|
data | buffer |
PNG 文件的 buffer |
Node 通用工具
Kind: global variable
- NodeTool :
Object
- .getMD5(inData) ⇒
*
|PromiseLike.<ArrayBuffer>
- .getSHA256(inData) ⇒
*
|PromiseLike.<ArrayBuffer>
- .arrayBuffertoBuffer(arrayBuffer) ⇒
Buffer
- .getMD5(inData) ⇒
获取数据的 MD5 值
getMD5("白色的空曲奇在发热") => 3b81233f69cc6dbf83899148b888f0db
Kind: static method of NodeTool
Param | Type | Description |
---|---|---|
inData | buffer | string |
输入的数据 |
获取数据的 getSHA256 值
getSHA256("白色的空曲奇在发热") => 5be124e39cb90f3144fba1a798ab3a8472c24a44c0f9efc305f76c1e34de848f
Kind: static method of NodeTool
Param | Type | Description |
---|---|---|
inData | buffer | string |
输入的数据 |
ArrayBuffer to Buffer
Kind: static method of NodeTool
Param | Type |
---|---|
arrayBuffer | arrayBuffer |
控制台相关功能模块
控制台颜色
用法: console.log("%c test", CSS_POST)
Kind: static property of ConsoleCON
对象操作相关操作
Kind: global variable
- ObjectOBJ :
Object
- .isEmptyObject(obj) ⇒
boolean
- .objectCopyToObject(ob1, ob2, func_allowCopy, func_rename, func_valueFiter, func_for)
- .setObjectValueByNames(object, names, value)
- .deleteObjectValueByNames(object, names)
- .treeFind(objectArr, match, childrenKey, findAll, depthFirst) ⇒
array
|null
- .treeEach(objectArr, eachFunc, childrenKey, depthFirst) ⇒
Object
- .pathEach(object, eachFunc, [checkCycle])
- .isEmptyObject(obj) ⇒
对象是否为空
Kind: static method of ObjectOBJ
Param |
---|
obj |
复制对象。可控制要复制的属性,复制后的属性名,处理新属性值
Kind: static method of ObjectOBJ
Param | Description |
---|---|
ob1 | 源对象 |
ob2 | 目标对象 |
func_allowCopy | 判断是否允许复制的函数,返回真允许复制 func_allowCopy(属性名,属性值)。可空 |
func_rename | 重命名复制到目标对象上的属性名, 返回新属性名 func_rename(属性名,属性值)。可空 |
func_valueFiter | 处理复制到目标对象上的属性值,返回处理后的属性值 func_rename(属性名,属性值)。可空 |
func_for | 每次循环执行的函数 func_for(ob1,ob2,x)。可空 |
根据属性名路径列表(names)对对象属性赋值
Kind: static method of ObjectOBJ
Param | Description |
---|---|
object | 对象 |
names | 属性名路径列表,如 [position,enableAssigns,y] |
value | 值 |
根据属性名路径列表(names)对对象属性删除
Kind: static method of ObjectOBJ
Param | Description |
---|---|
object | 对象 |
names | 属性名路径列表,如 [position,enableAssigns,y] |
在由对象数组组成的树中查找对象。如果查找全部结果会以数组返回,否则直接返回找到的对象。
tree = [ {id: 1, children: [{id: 4}]}, {id: 2}, ] findTree (tree, 4, "children", false, false) => {id: 4}
Kind: static method of ObjectOBJ
Param | Type | Description |
---|---|---|
objectArr | Array.<object> |
对象数组组成的树 |
match | function |
匹配器 - 如果是字符串则是匹配对象下的 id 键,也可提供一个匹配函数,匹配函数通过参数接收遍历到的对象,返回是否匹配的 boolen (ob)={retrun ob.name=="xxx">} |
childrenKey | string |
子树键名 - 通过这个名字在对象中找子树 |
findAll | boolean |
是否查找全部 |
depthFirst | boolean |
深度优先 - 默认是广度优先 |
在由对象数组组成的树中遍历处理树的每个节点。
处理函数: eachFunc(单个对象, 遍历深度, 当层深度节点计数, 总节点计数, 当前子树, 当前子树位置) 在 eachFunc 中 return true 可以提前终止遍历。 当前子树[当前子树位置+1] 可获取下一个节点。 返回树的信息: { struct:[4,2,5], // 每层节点数 deep:3, // 树深度 total: 11 // 总节点数 }
Kind: static method of ObjectOBJ
Param | Type | Description |
---|---|---|
objectArr | Array.<object> |
对象数组组成的树 |
eachFunc | function |
处理函数 |
childrenKey | string |
子树键名 - 通过这个名字在对象中找子树 |
depthFirst | boolean |
深度优先 - 默认是广度优先 |
遍历对象每一个元素,可以获取对象键名组成的 path (["c","d","e"])
处理函数: eachFunc(当前元素, 当前 path, 当层深度 )
pathEach( { b:111, c:{d:{e:222}} })
Kind: static method of ObjectOBJ
Param | Type | Description |
---|---|---|
object | object |
|
eachFunc | function |
处理函数 |
[checkCycle] | boolean | function |
是否检查循环引用,为 true 会跳过循环引用,还可以提供一个函数 checkCycleCallback(target, path, cyclePath) 来处理一些事 |
字符串相关功能模块
Kind: global variable
- StringSTR :
Object
取字符串左边 *依赖 stringSTR.right()
Kind: static method of StringSTR
Param | Type | Description |
---|---|---|
str | String |
原文 |
offset | Number |
偏移值 |
取字符串右边。 *依赖 stringSTR.left()
Kind: static method of StringSTR
Param | Type | Description |
---|---|---|
str | String |
原文 |
offset | Number |
偏移值 |
插入文本到指定位置
Kind: static method of StringSTR
Param | Type | Description |
---|---|---|
str | String |
原文 |
start | Number |
开始位置 |
offset | Number |
偏移值 |
inStr | String |
要插入的文本 |
矩形处理相关模块
Kind: global variable
- Rect :
Object
- .rltb2xywh(boundsInfo) ⇒
Object
- .xywh2rltb(boundsInfo) ⇒
Object
- .paddingXywh(xywh, padding) ⇒
Object
- .getXywhsRange(xywhs) ⇒
Object
- .moveXywhs(xywhs, xy)
- .xywhHasCover(xywhA, xywhB) ⇒
boolean
- .rltb2xywh(boundsInfo) ⇒
坐标转换 把 {right, left, top, bottom} 转化为 {x, y , w, h}
Kind: static method of Rect
Param |
---|
boundsInfo |
坐标转换 把 {x, y , w, h} 转化为 {right, left, top, bottom}
Kind: static method of Rect
Param |
---|
boundsInfo |
给 xywh 添加内边距
paddingXywh(xywh, 5) paddingXywh(xywh, [3,4,5,10])
Kind: static method of Rect
Param |
---|
xywh |
padding |
计算多个 xywh 矩形的边界
getXywhsRange([xywh])
Kind: static method of Rect
Param |
---|
xywhs |
整体移动多个 xywh 到某点,保留原 xywhs 相对位置。 会改变 xywhs 里每个 xywh 对象的 x,y 值。
Kind: static method of Rect
Param |
---|
xywhs |
xy |
2 个 xywh 是否有重叠
Kind: static method of Rect
Param |
---|
xywhA |
xywhB |
类型相关模块
得到指定值的数据类型。返回数据类型名称字符串,如 "boolean","object","string" 。
Kind: static method of TypeTYP
Param |
---|
value |
数组相关功能模块
Kind: global variable
- AarryArr :
Object
- .symDifference(a, b) ⇒
Array
- .symDifference_ObjectArray(a, b, key) ⇒
Array
- .difference(a, b) ⇒
Array
- .union(a, b) ⇒
Array
- .intersection() ⇒
Array
- .remove(arr, removeRule, isMutator) ⇒
*
- .hasMember(arr, memberValue, equalFunc) ⇒
boolean
- .getByKey(objectArr, key, keyValue, equalRule) ⇒
*
- .deleteByKey(objectArr, key, keyValue, equalRule) ⇒
*
- .sortObjectArray(arr, key, bigFront)
- .symDifference(a, b) ⇒
对称差。(不支持对象数组)
a:[1,2,3] b:[1,2,4] a△b => [3,4]
Kind: static method of AarryArr
Param | Type |
---|---|
a | Array |
b | Array |
对称差。对象数组。 a:[{key:1}, {key:2}] b:[{key:2}, {key:3}] a△b => [{key:1},{key:3}]
Kind: static method of AarryArr
Param | Description |
---|---|
a | |
b | |
key | 对象关键属性 |
差集。(不支持对象数组) a:[1,2,3] b:[1,2,4] a-b => [3]
Kind: static method of AarryArr
Param | Type |
---|---|
a | Array |
b | Array |
并集。(不支持对象数组) a:[1,2,3] b:[1,2,4] a∪b => [1,2,3,4]
Kind: static method of AarryArr
Param | Type |
---|---|
a | Array |
b | Array |
交集。(不支持对象数组) a:[1,2,3] b:[1,2,4] a∩b => [1,2]
Kind: static method of AarryArr
从数组中移除元素,默认是非变异的。
Kind: static method of AarryArr
Param | Type | Description |
---|---|---|
arr | Array |
|
removeRule | function |
可以给定值或者一个判断函数 function(x){ return x>3;} |
isMutator | Boolean |
变异模式,为真会改变原数组 |
数组是否拥有指定成员 arr:["A","B","C"] => hasMember(arr, "C") => true
Kind: static method of AarryArr
Param | Type | Description |
---|---|---|
arr | Array |
|
memberValue | 指定成员值 | |
equalFunc | 比较函数,boolean equalFunc( arr[i], memberValue)。可空。 |
对象数组查找 从对象数组中提取出一个对象,根据对象的一个属性值。 arr: [{name:a},{name:b}] getByKey(arr,"name","b") => return {name:b}
Kind: static method of AarryArr
Param | Type | Description |
---|---|---|
objectArr | Array.<Object> |
对象数组 |
key | String |
关键属性 |
keyValue | 欲提取的关键属性值 | |
equalRule | 值比较函数,可空 |
对象数组删除 从对象数组中找到出一个对象元素,并删除这个元素。 arr: [{name:a},{name:b}] deleteByKey(arr,"name","b") => arr: [{name:a}]
Kind: static method of AarryArr
Param | Type | Description |
---|---|---|
objectArr | Array.<Object> |
对象数组 |
key | String |
关键属性 |
keyValue | 欲提取的关键属性值 | |
equalRule | 值比较函数,可空 |
排序对象数组
Kind: static method of AarryArr
Param | Type | Description |
---|---|---|
arr | 数组 | |
key | a:12 |
对象排序的键值,如 [, {a:33}] , key 为 "a" 则以 a 排序 |
bigFront | 大值在前 |
计算相关功能模块
文件操作相关模块
去除一个字符串中不符合成为文件名的字符
Kind: static method of FileFIL
Param | Description |
---|---|
name | |
fix | 非法字符替代 |
缓存相关
Kind: global variable