@ceale/util 1.14.0 → 1.14.2

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/dist/cjs/index.js CHANGED
@@ -37,6 +37,7 @@ __export(exports_src, {
37
37
  sleepAsync: () => sleepAsync,
38
38
  sleep: () => sleep,
39
39
  quadraticCurve: () => quadraticCurve,
40
+ defineEnum: () => defineEnum,
40
41
  debounce: () => debounce,
41
42
  cubicCurve: () => cubicCurve,
42
43
  css: () => css,
@@ -422,3 +423,22 @@ var tryCatch = (parameter) => {
422
423
  };
423
424
  // src/type.ts
424
425
  var assert = (variable) => {};
426
+ var defineEnum = (...keys) => {
427
+ const obj = keys.reduce((acc, key) => {
428
+ acc[key] = key;
429
+ return acc;
430
+ }, {});
431
+ Object.defineProperty(obj, "keys", {
432
+ value: () => keys,
433
+ writable: false,
434
+ enumerable: false,
435
+ configurable: false
436
+ });
437
+ Object.defineProperty(obj, "includes", {
438
+ value: (key) => keys.includes(key),
439
+ writable: false,
440
+ enumerable: false,
441
+ configurable: false
442
+ });
443
+ return obj;
444
+ };
package/dist/esm/index.js CHANGED
@@ -374,6 +374,25 @@ var tryCatch = (parameter) => {
374
374
  };
375
375
  // src/type.ts
376
376
  var assert = (variable) => {};
377
+ var defineEnum = (...keys) => {
378
+ const obj = keys.reduce((acc, key) => {
379
+ acc[key] = key;
380
+ return acc;
381
+ }, {});
382
+ Object.defineProperty(obj, "keys", {
383
+ value: () => keys,
384
+ writable: false,
385
+ enumerable: false,
386
+ configurable: false
387
+ });
388
+ Object.defineProperty(obj, "includes", {
389
+ value: (key) => keys.includes(key),
390
+ writable: false,
391
+ enumerable: false,
392
+ configurable: false
393
+ });
394
+ return obj;
395
+ };
377
396
  export {
378
397
  waitSync,
379
398
  wait,
@@ -383,6 +402,7 @@ export {
383
402
  sleepAsync,
384
403
  sleep,
385
404
  quadraticCurve,
405
+ defineEnum,
386
406
  debounce,
387
407
  cubicCurve,
388
408
  css,
@@ -4,3 +4,20 @@
4
4
  * @param variable 待断言的变量
5
5
  */
6
6
  export declare const assert: <Type = any>(variable: any) => asserts variable is Type;
7
+ /**
8
+ * 定义一个枚举类型。
9
+ * 返回一个枚举对象,其中每个键名与值相同。
10
+ * @param keys 若干个枚举的键名
11
+ *
12
+ * @example
13
+ * const type = defineEnum("A", "B", "C")
14
+ * type === (typeof type) === {
15
+ * A: "A",
16
+ * B: "B",
17
+ * C: "C"
18
+ * }
19
+ */
20
+ export declare const defineEnum: <T extends string>(...keys: T[]) => { [K in T]: K; } & {
21
+ keys(): T[];
22
+ includes(key: any): boolean;
23
+ };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ceale/util",
3
3
  "author": "Ceale",
4
- "version": "1.14.0",
4
+ "version": "1.14.2",
5
5
  "module": "index.ts",
6
6
  "type": "module",
7
7
  "main": "dist/esm/index.js",