@ceale/util 1.14.2 → 1.16.0
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/README.md +7 -1
- package/dist/cjs/index.js +33 -20
- package/dist/esm/index.js +33 -20
- package/dist/types/css.d.ts +4 -2
- package/dist/types/index.d.ts +1 -0
- package/dist/types/object.d.ts +10 -29
- package/dist/types/type.d.ts +37 -3
- package/package.json +20 -16
package/README.md
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -37,12 +37,14 @@ __export(exports_src, {
|
|
|
37
37
|
sleepAsync: () => sleepAsync,
|
|
38
38
|
sleep: () => sleep,
|
|
39
39
|
quadraticCurve: () => quadraticCurve,
|
|
40
|
+
expand: () => expand,
|
|
40
41
|
defineEnum: () => defineEnum,
|
|
41
42
|
debounce: () => debounce,
|
|
42
43
|
cubicCurve: () => cubicCurve,
|
|
43
44
|
css: () => css,
|
|
44
45
|
assert: () => assert,
|
|
45
46
|
QuadraticBezier: () => QuadraticBezier,
|
|
47
|
+
Enum: () => Enum,
|
|
46
48
|
CubicBezier: () => CubicBezier
|
|
47
49
|
});
|
|
48
50
|
module.exports = __toCommonJS(exports_src);
|
|
@@ -422,23 +424,34 @@ var tryCatch = (parameter) => {
|
|
|
422
424
|
throw new TypeError("参数类型错误,应为 Promise 或函数");
|
|
423
425
|
};
|
|
424
426
|
// src/type.ts
|
|
425
|
-
var assert = (variable) =>
|
|
426
|
-
var
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
427
|
+
var assert = (variable) => variable;
|
|
428
|
+
var expand = (variable) => variable;
|
|
429
|
+
var defineEnum = (...keys) => keys.reduce((acc, key) => {
|
|
430
|
+
acc[key] = key;
|
|
431
|
+
return acc;
|
|
432
|
+
}, {});
|
|
433
|
+
var Enum = (keys) => ({
|
|
434
|
+
keys: () => Object.keys(keys),
|
|
435
|
+
includes: (key) => Object.keys(keys).includes(key)
|
|
436
|
+
});
|
|
437
|
+
// src/object.ts
|
|
438
|
+
Object.defineProperty(Object.prototype, "hasKeys", {
|
|
439
|
+
value: function(...keys) {
|
|
440
|
+
if (keys.length === 0)
|
|
441
|
+
return false;
|
|
442
|
+
return keys.every((key) => this.hasOwnProperty(key));
|
|
443
|
+
},
|
|
444
|
+
enumerable: false,
|
|
445
|
+
writable: true,
|
|
446
|
+
configurable: true
|
|
447
|
+
});
|
|
448
|
+
Object.defineProperty(Object.prototype, "inKeys", {
|
|
449
|
+
value: function(...keys) {
|
|
450
|
+
if (keys.length === 0)
|
|
451
|
+
return false;
|
|
452
|
+
return keys.every((key) => (key in this));
|
|
453
|
+
},
|
|
454
|
+
enumerable: false,
|
|
455
|
+
writable: true,
|
|
456
|
+
configurable: true
|
|
457
|
+
});
|
package/dist/esm/index.js
CHANGED
|
@@ -373,26 +373,37 @@ var tryCatch = (parameter) => {
|
|
|
373
373
|
throw new TypeError("参数类型错误,应为 Promise 或函数");
|
|
374
374
|
};
|
|
375
375
|
// src/type.ts
|
|
376
|
-
var assert = (variable) =>
|
|
377
|
-
var
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
376
|
+
var assert = (variable) => variable;
|
|
377
|
+
var expand = (variable) => variable;
|
|
378
|
+
var defineEnum = (...keys) => keys.reduce((acc, key) => {
|
|
379
|
+
acc[key] = key;
|
|
380
|
+
return acc;
|
|
381
|
+
}, {});
|
|
382
|
+
var Enum = (keys) => ({
|
|
383
|
+
keys: () => Object.keys(keys),
|
|
384
|
+
includes: (key) => Object.keys(keys).includes(key)
|
|
385
|
+
});
|
|
386
|
+
// src/object.ts
|
|
387
|
+
Object.defineProperty(Object.prototype, "hasKeys", {
|
|
388
|
+
value: function(...keys) {
|
|
389
|
+
if (keys.length === 0)
|
|
390
|
+
return false;
|
|
391
|
+
return keys.every((key) => this.hasOwnProperty(key));
|
|
392
|
+
},
|
|
393
|
+
enumerable: false,
|
|
394
|
+
writable: true,
|
|
395
|
+
configurable: true
|
|
396
|
+
});
|
|
397
|
+
Object.defineProperty(Object.prototype, "inKeys", {
|
|
398
|
+
value: function(...keys) {
|
|
399
|
+
if (keys.length === 0)
|
|
400
|
+
return false;
|
|
401
|
+
return keys.every((key) => (key in this));
|
|
402
|
+
},
|
|
403
|
+
enumerable: false,
|
|
404
|
+
writable: true,
|
|
405
|
+
configurable: true
|
|
406
|
+
});
|
|
396
407
|
export {
|
|
397
408
|
waitSync,
|
|
398
409
|
wait,
|
|
@@ -402,11 +413,13 @@ export {
|
|
|
402
413
|
sleepAsync,
|
|
403
414
|
sleep,
|
|
404
415
|
quadraticCurve,
|
|
416
|
+
expand,
|
|
405
417
|
defineEnum,
|
|
406
418
|
debounce,
|
|
407
419
|
cubicCurve,
|
|
408
420
|
css,
|
|
409
421
|
assert,
|
|
410
422
|
QuadraticBezier,
|
|
423
|
+
Enum,
|
|
411
424
|
CubicBezier
|
|
412
425
|
};
|
package/dist/types/css.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { AtRules, Properties, PropertiesHyphen } from "csstype";
|
|
2
|
+
export interface CSSProperties extends PropertiesHyphen<string | number>, Properties<string | number> {
|
|
3
|
+
[v: `--${string}`]: string | number | undefined;
|
|
4
|
+
}
|
|
3
5
|
export declare namespace css {
|
|
4
6
|
type RuleValue = string & {
|
|
5
7
|
RuleValue: never;
|
package/dist/types/index.d.ts
CHANGED
package/dist/types/object.d.ts
CHANGED
|
@@ -1,34 +1,15 @@
|
|
|
1
1
|
declare global {
|
|
2
2
|
interface Object {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
/**
|
|
4
|
+
* 复数版本的`hasOwnProperty`
|
|
5
|
+
* @param keys 要检查的属性名
|
|
6
|
+
*/
|
|
7
|
+
hasKeys(...keys: string[]): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* 复数版本的`in`
|
|
10
|
+
* @param keys 要检查的属性名
|
|
11
|
+
*/
|
|
12
|
+
inKeys(...keys: string[]): boolean;
|
|
7
13
|
}
|
|
8
14
|
}
|
|
9
|
-
interface DeepAssignOptions {
|
|
10
|
-
/**
|
|
11
|
-
* 合并深度:
|
|
12
|
-
* - true: 无限深度
|
|
13
|
-
* - false: 浅层合并 (等同于 Object.assign)
|
|
14
|
-
* - number: 指定最大深度
|
|
15
|
-
* @default true
|
|
16
|
-
*/
|
|
17
|
-
deep?: boolean | number;
|
|
18
|
-
/**
|
|
19
|
-
* 是否覆盖目标对象属性:
|
|
20
|
-
* - true: 源对象属性覆盖目标对象
|
|
21
|
-
* - false: 只合并目标对象没有的属性
|
|
22
|
-
* @default true
|
|
23
|
-
*/
|
|
24
|
-
overwrite?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* 数组合并策略:
|
|
27
|
-
* - 'merge': (默认)合并数组项 (递归合并数组元素)
|
|
28
|
-
* - 'concat': 连接数组
|
|
29
|
-
* - 'replace': 替换整个数组
|
|
30
|
-
* @default 'replace'
|
|
31
|
-
*/
|
|
32
|
-
arrayStrategy?: 'replace' | 'merge' | 'concat';
|
|
33
|
-
}
|
|
34
15
|
export {};
|
package/dist/types/type.d.ts
CHANGED
|
@@ -2,8 +2,16 @@
|
|
|
2
2
|
* 就地断言一个变量为指定类型
|
|
3
3
|
* @template Type 断言的类型,默认为`any`
|
|
4
4
|
* @param variable 待断言的变量
|
|
5
|
+
* @returns 传入的变量,且类型已经被断言为指定类型
|
|
5
6
|
*/
|
|
6
7
|
export declare const assert: <Type = any>(variable: any) => asserts variable is Type;
|
|
8
|
+
/**
|
|
9
|
+
* 拓展一个变量的类型
|
|
10
|
+
* @param variable 待拓展的变量
|
|
11
|
+
* @param Type 拓展的类型
|
|
12
|
+
* @returns 传入的变量,且类型被拓展为指定类型
|
|
13
|
+
*/
|
|
14
|
+
export declare const expand: <Type>(variable: any) => asserts variable is (typeof variable & Type);
|
|
7
15
|
/**
|
|
8
16
|
* 定义一个枚举类型。
|
|
9
17
|
* 返回一个枚举对象,其中每个键名与值相同。
|
|
@@ -17,7 +25,33 @@ export declare const assert: <Type = any>(variable: any) => asserts variable is
|
|
|
17
25
|
* C: "C"
|
|
18
26
|
* }
|
|
19
27
|
*/
|
|
20
|
-
export declare const defineEnum: <T extends string>(...keys: T[]) => { [K in T]: K; }
|
|
21
|
-
|
|
22
|
-
|
|
28
|
+
export declare const defineEnum: <T extends string>(...keys: T[]) => { [K in T]: K; };
|
|
29
|
+
/**
|
|
30
|
+
* 枚举工具函数,为枚举对象提供工具方法
|
|
31
|
+
* @param keys 由 defineEnum 创建的枚举对象
|
|
32
|
+
* @returns 返回一个包含`keys`、`includes`方法的对象
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* const 对吗 = defineEnum("对", "不对")
|
|
36
|
+
*
|
|
37
|
+
* // 获取所有枚举键
|
|
38
|
+
* Enum(对吗).keys() // ["对", "不对"]
|
|
39
|
+
*
|
|
40
|
+
* // 检查值是否为有效枚举值
|
|
41
|
+
* Enum(对吗).includes("对") // true
|
|
42
|
+
* Enum(对吗).includes("错") // false
|
|
43
|
+
*/
|
|
44
|
+
export declare const Enum: (keys: Record<string, string>) => {
|
|
45
|
+
keys: () => (keyof typeof keys)[];
|
|
46
|
+
includes: (key: any) => boolean;
|
|
23
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* 提取枚举的所有键组成联合类型
|
|
50
|
+
* @template E 由 defineEnum 创建的枚举对象
|
|
51
|
+
* @returns 枚举键的联合类型
|
|
52
|
+
*
|
|
53
|
+
* @example
|
|
54
|
+
* const 对吗 = defineEnum("对", "不对")
|
|
55
|
+
* Enum<typeof 对吗> // "对" | "不对"
|
|
56
|
+
*/
|
|
57
|
+
export type EnumKeys<E> = E[keyof E];
|
package/package.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ceale/util",
|
|
3
|
+
"version": "1.16.0",
|
|
4
|
+
|
|
3
5
|
"author": "Ceale",
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
+
"description": "小工具集",
|
|
7
|
+
"repository": {
|
|
8
|
+
"url": "git+https://github.com/Ceale/ts-util.git"
|
|
9
|
+
},
|
|
10
|
+
|
|
11
|
+
"license": "Unlicense or CC0 or WTFPL",
|
|
12
|
+
"keywords": [ "util" ],
|
|
13
|
+
|
|
6
14
|
"type": "module",
|
|
15
|
+
"module": "index.ts",
|
|
7
16
|
"main": "dist/esm/index.js",
|
|
8
17
|
"types": "dist/types/index.d.ts",
|
|
9
18
|
"files": ["dist"],
|
|
10
|
-
"repository": {
|
|
11
|
-
"url": "git+https://github.com/Ceale/ts-util.git"
|
|
12
|
-
},
|
|
13
|
-
"scripts": {
|
|
14
|
-
"build": "bun run build:esm && bun run build:cjs && bun run build:ts",
|
|
15
|
-
"build:esm": "bun build --outdir=dist/esm/ --format=esm --target=node src/index.ts",
|
|
16
|
-
"build:cjs": "bun build --outdir=dist/cjs/ --format=cjs --target=node src/index.ts",
|
|
17
|
-
"build:ts": "tsc --project tsconfig.build.json"
|
|
18
|
-
},
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
21
21
|
"import": "./dist/esm/index.js",
|
|
@@ -24,14 +24,18 @@
|
|
|
24
24
|
},
|
|
25
25
|
"./package.json": "./package.json"
|
|
26
26
|
},
|
|
27
|
+
|
|
28
|
+
"scripts": {
|
|
29
|
+
"build": "bun run build:esm && bun run build:cjs && bun run build:ts",
|
|
30
|
+
"build:esm": "bun build --outdir=dist/esm/ --format=esm --target=node src/index.ts",
|
|
31
|
+
"build:cjs": "bun build --outdir=dist/cjs/ --format=cjs --target=node src/index.ts",
|
|
32
|
+
"build:ts": "tsc --project tsconfig.build.json"
|
|
33
|
+
},
|
|
27
34
|
"devDependencies": {
|
|
35
|
+
"typescript": "^5",
|
|
28
36
|
"@types/bun": "latest"
|
|
29
37
|
},
|
|
30
|
-
"peerDependencies": {
|
|
31
|
-
"typescript": "^5"
|
|
32
|
-
},
|
|
33
38
|
"dependencies": {
|
|
34
|
-
"csstype": "^3.1.3"
|
|
35
|
-
"vue": "^3.5.21"
|
|
39
|
+
"csstype": "^3.1.3"
|
|
36
40
|
}
|
|
37
41
|
}
|