Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

xmcommon

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xmcommon - npm Package Compare versions

Comparing version 0.0.12 to 0.0.13

example/testoptions.js

83

lib/utils.js

@@ -538,2 +538,85 @@ const _ = require("lodash");

}
/**
* 解析参数列表
* @param {[string]} paramArgs 参数列表
* @return { {_:[any], args:object }} _是未能识别的参数数组,args是识别后的参数对象
*/
static options(paramArgs) {
/**
* 取参数名称
* @param {String} paramArg 要解析的参数
* @return {{isArg:boolean, argName:string, argOri:string}} 处理结果
*/
function GetArgsName(paramArg) {
let ret = {isArg:false, argName:'', argOri:paramArg};
let strName = null;
if(paramArg.substring(0,2) === '--') { //如果是前缀--
strName = paramArg.substring(2).trim();
}
else if(paramArg.substring(0,1) === '-') { //如果是前缀-
strName = paramArg.substring(1).trim();
}
else {
return ret;
}
if(strName.length === 0) {
return ret;
}
ret.isArg = true;
ret.argName = strName;
return ret;
}
let ret = { _:[], args:{} };
paramArgs = paramArgs || [];
if(!Array.isArray(paramArgs)) {
paramArgs = [paramArgs];
}
let argPre = {
is : false, //是否存在前缀
argName: '', //前缀的名称
argOri : '', //原始参数
};
for(let i = 0; i < paramArgs.length; i++) {
let arg = paramArgs[i];
let isString = utils.isString(arg); //判断是否是字符串
if(isString) {
arg = arg.trim();
}
if(argPre.is) { //如果存在前缀
ret.args[argPre.argName] = arg;
argPre.is = false;
argPre.argName = '';
argPre.argOri = '';
continue;
}
if(!isString) {
ret._.push(arg);
continue;
}
let p = GetArgsName(arg);
if(p.isArg) {
argPre.is = true;
argPre.argName = p.argName;
argPre.argOri = p.argOri;
continue;
}
else {
ret._.push(arg);
}
}
if(argPre.is) { //如果存在前缀,但是,没有值,则加到_中
ret._.push(argPre.argOri);
}
return ret;
}
}

@@ -540,0 +623,0 @@ exports = module.exports = {

4

package.json
{
"name": "xmcommon",
"version": "0.0.12",
"version": "0.0.13",
"description": "javascript common lib for es6",

@@ -26,3 +26,3 @@ "main": "index.js",

"dependencies": {
"@types/node": "^11.9.4",
"@types/node": "^10.14.4",
"lodash": "^4.17.11"

@@ -29,0 +29,0 @@ },

# xmcommon
一个js 通用库
github: https://github.com/zdhsoft/xmcommon
npm: https://www.npmjs.com/package/xmcommon
- github: https://github.com/zdhsoft/xmcommon
- npm: https://www.npmjs.com/package/xmcommon

@@ -12,2 +12,29 @@ ## 安装

## 0.0.13
- 2019-03-28
- \* 优化index.d.ts部分注释
- \+ utils增加options对参数解析的方法 用于node启动后,传入参数的接收处理
```js
let {utils} = require("../lib/utils");
let v = ["../tt", "--env", "aaaaa", "--version", "1.0.0", "aaaaa", "--flag", "true", "-aaaaa"];
let k = utils.options(v);
console.log(JSON.stringify(k, null, 2));
//对于参数接收用 let k = utils.options(process.argv);
```
运行结果
```json
{
"_": [
"../tt",
"aaaaa",
"-aaaaa"
],
"args": {
"env": "aaaaa",
"version": "1.0.0",
"flag": "true"
}
}
```
## 0.0.12

@@ -14,0 +41,0 @@ - 2019-02-18

@@ -244,5 +244,8 @@ // Type definitions for xmcommon 0.0

* @memberOf utils
* @param {function} paramFunc 要调用的函数
* @param {...args} args 要调用的参数
* @return {...args} 返回回调函数的传入参数列表
* @param paramFunc 要调用的函数
* @param args 要调用的参数
* @return 返回回调函数的参数列表
* @example
* function test(paramCallback:function, arg1:any, arg2:any); //第一个参数是回调函数
* await utils.WaitFunction(test, arg1, arg2);
*/

@@ -261,5 +264,9 @@ static WaitFunction(paramFunc:Function, ...args:any[]):any[];

* @memberOf utils
* @param {function} paramFunc 要调用的函数
* @param {...args} args 要传给函数的参数数组
*/
* @param paramFunc 要调用的函数
* @param args 要传给函数的参数数组
* @return 返回回调函数的参数列表
* @example
* function test(arg1:any, arg2:any, paramCallback:function); //回调函数在最后面
* await utils.WaitFunctionEx(test, arg1, arg2);
* */
static WaitFunctionEx(paramFunc:Function, ...args:any[]):any[];

@@ -272,20 +279,30 @@

* @memberOf utils
* @param {object} paramObject 要调用函数的对象实例
* @param {String} paramFunc 要调用的函数名称
* @param {...args} args 要调用的参数
* @return {...args} 返回回调函数的传入参数列表
* @param paramObject 要调用函数的对象实例
* @param paramFunc 要调用的函数名称
* @param args 要调用的参数
* @return 返回回调函数的参数列表
* @example
* class CTest {
* public function test(paramCallback:function, arg1:any, arg2:any);//第一个参数是回调函数
* };
* let t = new CTest();
* await utils.WaitClassFunction(t, "test", arg1, arg2);
*/
static WaitClassFunction(paramObject:object, paramFunction:string, ...args:any[]):any[];
/**
* 异步调用类成员函数,注意:要求第一个参数回调函数
* 异步调用类成员函数,注意:要求最后一个参数回调函数
* @static
* @async
* @memberOf utils
* @param {object} paramObject 要调用函数的对象实例
* @param {String} paramFunc 要调用的函数名称
* @param {...args} args 要调用的参数
* @return {...args} 返回回调函数的传入参数列表
*/
* @param paramObject 要调用函数的对象实例
* @param paramFunc 要调用的函数名称
* @param args 要调用的参数
* @return 返回回调函数的传入参数列表
* @example
* class CTest {
* public function test(arg1:any, arg2:any, paramCallback:function); //回调函数在最后面
* };
* let t = new CTest();
* await utils.WaitClassFunctionEx(t, "test", arg1, arg2);
*/
static WaitClassFunctionEx(paramObject:object, paramFunction:string, ...args:any[]):any[];

@@ -316,4 +333,4 @@

* @static
* @param {Integer} v 要格式化的字节数
* @return {String} 格式化的字符串
* @param v 要格式化的字节数
* @return 格式化的字符串
* @memberof utils

@@ -325,13 +342,12 @@ */

* 休眠指定的毫秒数
* @param {Integer} paramT 要休眠的时长
* @return {void} 无返回值
* @param paramT 要休眠的时长
* @return 无返回值
*/
static sleep(paramT:number):void;
/**
* 将params的key和values分别变成两个数组
* @param {object} params 参数表
* @return {keyValuesReturn} 返回的结果
* @param params 参数表
* @return 返回的结果
* */
static keyValues(params:object):keyValuesReturn;
static keyValues(params:{}):{keys:[string], values:[any]};

@@ -346,5 +362,5 @@ /**

* @memberOf utils
* @param {Number} num 要格化的数字
* @param {String} pattern 模式
* @return {String} 格式化后的字符串
* @param num 要格化的数字
* @param pattern 模式
* @return 格式化后的字符串
*/

@@ -355,5 +371,5 @@ static formatNumber(num:number, pattern:string):string;

* 将指定的内容,转换为整数,如果转换失败,则用缺省值
* @param {String} paramSrcInteger 要被转换为整数的字符串
* @param {Number} paramDefault 缺省值
* @return {Number} 转换后的整数
* @param paramSrcInteger 要被转换为整数的字符串
* @param paramDefault 缺省值
* @return 转换后的整数
*/

@@ -363,5 +379,5 @@ static ToInteger (paramSrcInteger:string, paramDefault:number):number;

* 将指定的内容,转换为数字,如果转换失败,则用缺省值
* @param {string} paramSrcNumber 要被转换为数字的字符串
* @param {number} paramDefault 缺省值
* @return {number} 转换后的浮点数
* @param paramSrcNumber 要被转换为数字的字符串
* @param paramDefault 缺省值
* @return 转换后的浮点数
*/

@@ -372,13 +388,20 @@ static ToFloat(paramSrcNumber:string, paramDefault:number):number;

* 这个主要的做是,对异常做了处理,减少其它地方对异常处理的问题。
* @param {String} paramJsonString Json格式的字符串
* @return {any} 转换后的对象
* @param paramJsonString Json格式的字符串
* @return 转换后的对象
*/
static JsonParse (paramJsonString:string):any;
static JsonParse (paramJsonString:string):{};
/**
* 创建目录
* @param {string} dirpath 要创建的目录,支持多层级创建
* @param {number} mode 创建后,目录的权限,默认为0o777
* @return {boolean} 返回创建结果
* @param dirpath 要创建的目录,支持多层级创建
* @param mode 创建后,目录的权限,默认为0o777
* @return 返回创建结果
*/
static mkdirsSync(dirpath:string, mode:number):boolean;
/**
* 解析参数列表
* @param paramArgs 参数列表
* @return _是未能识别的参数数组,args是识别后的参数对象
*/
static options(paramArgs:[string]):{_:[any], args:{} };
}

@@ -385,0 +408,0 @@

{ "extends": "dtslint/dt.json" }

@@ -9,3 +9,4 @@ import {utils, MemorySize, getLogger, SimpleCode} from "xmcommon"

let s:SimpleCode = new SimpleCode();
let k = r.keys[0];
let v = getLogger(__filename);
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc