@ceale/util 1.15.0 → 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 CHANGED
@@ -46,4 +46,7 @@
46
46
  - expand()
47
47
  - defineEnum()
48
48
  - Enum()
49
- - EnumKeys<>
49
+ - EnumKeys<>
50
+ - Object.prototype
51
+ - hasKeys()
52
+ - inKeys()
package/dist/cjs/index.js CHANGED
@@ -434,3 +434,24 @@ var Enum = (keys) => ({
434
434
  keys: () => Object.keys(keys),
435
435
  includes: (key) => Object.keys(keys).includes(key)
436
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
@@ -383,6 +383,27 @@ var Enum = (keys) => ({
383
383
  keys: () => Object.keys(keys),
384
384
  includes: (key) => Object.keys(keys).includes(key)
385
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
+ });
386
407
  export {
387
408
  waitSync,
388
409
  wait,
@@ -1,5 +1,7 @@
1
- import type { CSSProperties } from "vue";
2
- import type { AtRules } from "csstype";
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;
@@ -7,3 +7,4 @@ export * from "./task";
7
7
  export * from "./bezier";
8
8
  export * from "./error";
9
9
  export * from "./type";
10
+ export * from "./object";
@@ -1,34 +1,15 @@
1
1
  declare global {
2
2
  interface Object {
3
- deepAssign<T, U>(target: T, source: U, options?: DeepAssignOptions): T & U;
4
- deepAssign<T, U, V>(target: T, source1: U, source2: V, options?: DeepAssignOptions): T & U & V;
5
- deepAssign<T, U, V, W>(target: T, source1: U, source2: V, source3: W, options?: DeepAssignOptions): T & U & V & W;
6
- deepAssign(target: any, ...sources: any[]): any;
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/package.json CHANGED
@@ -1,23 +1,21 @@
1
1
  {
2
2
  "name": "@ceale/util",
3
+ "version": "1.16.0",
4
+
3
5
  "author": "Ceale",
4
6
  "description": "小工具集",
7
+ "repository": {
8
+ "url": "git+https://github.com/Ceale/ts-util.git"
9
+ },
10
+
5
11
  "license": "Unlicense or CC0 or WTFPL",
6
- "version": "1.15.0",
7
- "module": "index.ts",
12
+ "keywords": [ "util" ],
13
+
8
14
  "type": "module",
15
+ "module": "index.ts",
9
16
  "main": "dist/esm/index.js",
10
17
  "types": "dist/types/index.d.ts",
11
18
  "files": ["dist"],
12
- "repository": {
13
- "url": "git+https://github.com/Ceale/ts-util.git"
14
- },
15
- "scripts": {
16
- "build": "bun run build:esm && bun run build:cjs && bun run build:ts",
17
- "build:esm": "bun build --outdir=dist/esm/ --format=esm --target=node src/index.ts",
18
- "build:cjs": "bun build --outdir=dist/cjs/ --format=cjs --target=node src/index.ts",
19
- "build:ts": "tsc --project tsconfig.build.json"
20
- },
21
19
  "exports": {
22
20
  ".": {
23
21
  "import": "./dist/esm/index.js",
@@ -26,14 +24,18 @@
26
24
  },
27
25
  "./package.json": "./package.json"
28
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
+ },
29
34
  "devDependencies": {
35
+ "typescript": "^5",
30
36
  "@types/bun": "latest"
31
37
  },
32
- "peerDependencies": {
33
- "typescript": "^5"
34
- },
35
38
  "dependencies": {
36
- "csstype": "^3.1.3",
37
- "vue": "^3.5.21"
39
+ "csstype": "^3.1.3"
38
40
  }
39
41
  }