ph-utils 0.2.7 → 0.2.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/date.js CHANGED
@@ -100,10 +100,10 @@ function startOf(date, unit, isEnd = false) {
100
100
  exports.startOf = startOf;
101
101
  /**
102
102
  * 日期加上指定时间后的日期
103
- * @param date {Date | number | string | null} 指定的日期
104
- * @param num {number} 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
105
- * @param unit {string} 需要添加的单位,date - 加减天数
106
- * @param fmt {string} 可选参数,如果传递了格式化的单位,则返回格式化后的日期, 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
103
+ * @param date 指定的日期
104
+ * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
105
+ * @param unit 需要添加的单位,date - 加减天数
106
+ * @param fmt 可选参数,如果传递了格式化的单位,则返回格式化后的日期, 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
107
107
  * @returns {Date | string} 如果传递了 fmt 参数,则返回 string,否则返回 Date
108
108
  */
109
109
  function add(date, num, unit, fmt) {
package/lib/file.d.ts CHANGED
@@ -24,5 +24,11 @@ declare const _default: {
24
24
  * @param done 遍历完成后的回调
25
25
  */
26
26
  traverseDir(dir: string, callback?: (filename: string) => void, done?: () => void): void;
27
+ /**
28
+ * 根据文件的 stat 获取文件的 etag
29
+ * @param filePath 文件地址
30
+ * @returns file stat etag
31
+ */
32
+ statTag(filePath: string): Promise<string>;
27
33
  };
28
34
  export = _default;
package/lib/file.js CHANGED
@@ -71,7 +71,9 @@ module.exports = {
71
71
  clearTimeout(t);
72
72
  t = setTimeout(() => {
73
73
  setImmediate(() => {
74
- done();
74
+ if (typeof done === 'function') {
75
+ done();
76
+ }
75
77
  });
76
78
  }, 10);
77
79
  }
@@ -85,4 +87,13 @@ module.exports = {
85
87
  }
86
88
  list(dir, callback, done);
87
89
  },
90
+ /**
91
+ * 根据文件的 stat 获取文件的 etag
92
+ * @param filePath 文件地址
93
+ * @returns file stat etag
94
+ */
95
+ async statTag(filePath) {
96
+ let stat = await fs.promises.stat(filePath);
97
+ return `${stat.size.toString(16)}-${stat.mtimeMs.toString(16)}`;
98
+ },
88
99
  };
package/lib/index.d.ts CHANGED
@@ -50,5 +50,12 @@ export declare class BaseError extends Error {
50
50
  * @param name 错误名称
51
51
  * @param message 错误描述
52
52
  */
53
- constructor(name: String, message: string);
53
+ constructor(name: string, message: string);
54
54
  }
55
+ /**
56
+ * 创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。
57
+ * @param func 要节流的函数
58
+ * @param wait 需要节流的毫秒
59
+ * @returns
60
+ */
61
+ export declare function throttle<T extends (...args: any) => any>(func: T, wait: number): (...args: any[]) => void;
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * node 和 web 通用的工具类
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BaseError = exports.isBoolean = exports.isNumeric = exports.shieldMobile = exports.isBlank = void 0;
6
+ exports.throttle = exports.BaseError = exports.isBoolean = exports.isNumeric = exports.shieldMobile = exports.isBlank = void 0;
7
7
  /**
8
8
  * 验证字符串是否为空
9
9
  * @param str 待验证的字符串
@@ -77,3 +77,20 @@ class BaseError extends Error {
77
77
  }
78
78
  }
79
79
  exports.BaseError = BaseError;
80
+ /**
81
+ * 创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。
82
+ * @param func 要节流的函数
83
+ * @param wait 需要节流的毫秒
84
+ * @returns
85
+ */
86
+ function throttle(func, wait) {
87
+ let lastTime = 0;
88
+ return function (...args) {
89
+ let now = Date.now();
90
+ if (now - lastTime >= wait) {
91
+ func(...args);
92
+ lastTime = now;
93
+ }
94
+ };
95
+ }
96
+ exports.throttle = throttle;
package/lib/index_m.d.ts CHANGED
@@ -50,5 +50,12 @@ export declare class BaseError extends Error {
50
50
  * @param name 错误名称
51
51
  * @param message 错误描述
52
52
  */
53
- constructor(name: String, message: string);
53
+ constructor(name: string, message: string);
54
54
  }
55
+ /**
56
+ * 创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。
57
+ * @param func 要节流的函数
58
+ * @param wait 需要节流的毫秒
59
+ * @returns
60
+ */
61
+ export declare function throttle<T extends (...args: any) => any>(func: T, wait: number): (...args: any[]) => void;
package/lib/index_m.js CHANGED
@@ -64,3 +64,19 @@ export class BaseError extends Error {
64
64
  }
65
65
  }
66
66
  }
67
+ /**
68
+ * 创建一个节流函数,在 wait 秒内最多执行 func 一次的函数。
69
+ * @param func 要节流的函数
70
+ * @param wait 需要节流的毫秒
71
+ * @returns
72
+ */
73
+ export function throttle(func, wait) {
74
+ let lastTime = 0;
75
+ return function (...args) {
76
+ let now = Date.now();
77
+ if (now - lastTime >= wait) {
78
+ func(...args);
79
+ lastTime = now;
80
+ }
81
+ };
82
+ }
package/lib/server.js CHANGED
@@ -59,7 +59,7 @@ module.exports = {
59
59
  options = { ...(options || {}) };
60
60
  const errorName = options.errorName || 'ExecError';
61
61
  delete options.errorName;
62
- child_process_1.exec(cmd, options, (error, stdout, stderr) => {
62
+ (0, child_process_1.exec)(cmd, options, (error, stdout, stderr) => {
63
63
  let err = null;
64
64
  let rs = null;
65
65
  if (error) {
@@ -216,4 +216,5 @@ class Validator {
216
216
  return rules;
217
217
  }
218
218
  }
219
+ // @ts-ignore
219
220
  export default Validator;
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "module": "lib/index_m.js",
6
6
  "types": "lib/index.d.ts",
7
7
  "browser": "lib/index_m.js",
8
- "version": "0.2.7",
8
+ "version": "0.2.11",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https//gitee.com/towardly/ph.git",
@@ -19,7 +19,7 @@
19
19
  "homepage": "https://gitee.com/towardly/ph/tree/master/packages/utils",
20
20
  "devDependencies": {
21
21
  "@types/node": "^17.0.21",
22
- "typescript": "^4.5.5"
22
+ "typescript": "4.5.5"
23
23
  },
24
24
  "scripts": {
25
25
  "build": "node scripts/build.js"