rattail 0.0.6 → 0.0.7

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/index.cjs CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
+ var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __defProps = Object.defineProperties;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
7
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
8
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __getProtoOf = Object.getPrototypeOf;
8
10
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
11
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
12
  var __defNormalProp = (obj, key3, value) => key3 in obj ? __defProp(obj, key3, { enumerable: true, configurable: true, writable: true, value }) : obj[key3] = value;
@@ -32,6 +34,15 @@ var __copyProps = (to, from, except, desc) => {
32
34
  }
33
35
  return to;
34
36
  };
37
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
38
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
39
+ // If the importer is in node compatibility mode or this is not an ESM
40
+ // file that has been converted to a CommonJS file using a Babel-
41
+ // compatible transform (i.e. "__esModule" has not been set), then set
42
+ // "default" to the CommonJS "module.exports" for node compatibility.
43
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
44
+ mod
45
+ ));
35
46
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
47
 
37
48
  // src/index.ts
@@ -99,8 +110,10 @@ __export(src_exports, {
99
110
  merge: () => merge,
100
111
  mergeWith: () => mergeWith,
101
112
  minBy: () => minBy,
113
+ mitt: () => import_mitt.default,
102
114
  normalizeToArray: () => normalizeToArray,
103
115
  objectToString: () => objectToString,
116
+ once: () => once,
104
117
  pascalCase: () => pascalCase,
105
118
  prettyJSONObject: () => prettyJSONObject,
106
119
  preventDefault: () => preventDefault,
@@ -338,7 +351,7 @@ function lowerFirst(s) {
338
351
  return s.charAt(0).toLowerCase() + s.slice(1);
339
352
  }
340
353
 
341
- // src/element.ts
354
+ // src/util.ts
342
355
  function requestAnimationFrame(fn) {
343
356
  const globalThis2 = getGlobalThis();
344
357
  return globalThis2.requestAnimationFrame ? globalThis2.requestAnimationFrame(fn) : globalThis2.setTimeout(fn);
@@ -430,6 +443,16 @@ function getScrollLeft(element) {
430
443
  const left = "scrollLeft" in element ? element.scrollLeft : element.scrollX;
431
444
  return Math.max(left, 0);
432
445
  }
446
+ function tryParseJSON(json) {
447
+ try {
448
+ return JSON.parse(json);
449
+ } catch (e) {
450
+ return void 0;
451
+ }
452
+ }
453
+ function prettyJSONObject(jsonObject) {
454
+ return JSON.stringify(jsonObject, null, 2);
455
+ }
433
456
  function classes(...classes2) {
434
457
  return classes2.map((className) => {
435
458
  if (isArray(className)) {
@@ -458,6 +481,32 @@ function createNamespaceFn(namespace) {
458
481
  };
459
482
  };
460
483
  }
484
+ function createStorage(storage) {
485
+ return __spreadProps(__spreadValues({}, storage), {
486
+ set(key3, value) {
487
+ if (value == null) {
488
+ return;
489
+ }
490
+ if (!isString(value)) {
491
+ value = JSON.stringify(value);
492
+ }
493
+ storage.setItem(key3, value);
494
+ },
495
+ get(key3) {
496
+ const data = storage.getItem(key3);
497
+ try {
498
+ return JSON.parse(data);
499
+ } catch (err) {
500
+ return data;
501
+ }
502
+ },
503
+ remove(key3) {
504
+ storage.removeItem(key3);
505
+ }
506
+ });
507
+ }
508
+ var sessionStorage = createStorage(globalThis.sessionStorage);
509
+ var localStorage = createStorage(globalThis.localStorage);
461
510
 
462
511
  // src/function.ts
463
512
  function NOOP() {
@@ -503,6 +552,18 @@ function call(fn, ...args) {
503
552
  return fn(...args);
504
553
  }
505
554
  }
555
+ function once(fn) {
556
+ let called = false;
557
+ let result;
558
+ return function(...args) {
559
+ if (called) {
560
+ return result;
561
+ }
562
+ called = true;
563
+ result = fn.apply(this, args);
564
+ return result;
565
+ };
566
+ }
506
567
 
507
568
  // src/number.ts
508
569
  function toNumber(val) {
@@ -653,18 +714,6 @@ function cloneDeepWith(value, fn) {
653
714
  return baseCloneDeep(value, cache);
654
715
  }
655
716
 
656
- // src/json.ts
657
- function tryParseJSON(json) {
658
- try {
659
- return JSON.parse(json);
660
- } catch (e) {
661
- return void 0;
662
- }
663
- }
664
- function prettyJSONObject(jsonObject) {
665
- return JSON.stringify(jsonObject, null, 2);
666
- }
667
-
668
717
  // src/file.ts
669
718
  function toDataURL(file) {
670
719
  return new Promise((resolve) => {
@@ -694,34 +743,6 @@ function toArrayBuffer(file) {
694
743
  });
695
744
  }
696
745
 
697
- // src/storage.ts
698
- function createStorage(storage) {
699
- return __spreadProps(__spreadValues({}, storage), {
700
- set(key3, value) {
701
- if (value == null) {
702
- return;
703
- }
704
- if (!isString(value)) {
705
- value = JSON.stringify(value);
706
- }
707
- storage.setItem(key3, value);
708
- },
709
- get(key3) {
710
- const data = storage.getItem(key3);
711
- try {
712
- return JSON.parse(data);
713
- } catch (err) {
714
- return data;
715
- }
716
- },
717
- remove(key3) {
718
- storage.removeItem(key3);
719
- }
720
- });
721
- }
722
- var sessionStorage = createStorage(globalThis.sessionStorage);
723
- var localStorage = createStorage(globalThis.localStorage);
724
-
725
746
  // src/math.ts
726
747
  function sum(arr) {
727
748
  return arr.reduce((ret, val) => ret + val, 0);
@@ -753,6 +774,10 @@ function sample(arr) {
753
774
  }
754
775
  return arr[randomNumber(0, arr.length - 1)];
755
776
  }
777
+
778
+ // src/index.ts
779
+ __reExport(src_exports, require("mitt"), module.exports);
780
+ var import_mitt = __toESM(require("mitt"), 1);
756
781
  // Annotate the CommonJS export names for ESM import in node:
757
782
  0 && (module.exports = {
758
783
  NOOP,
@@ -817,8 +842,10 @@ function sample(arr) {
817
842
  merge,
818
843
  mergeWith,
819
844
  minBy,
845
+ mitt,
820
846
  normalizeToArray,
821
847
  objectToString,
848
+ once,
822
849
  pascalCase,
823
850
  prettyJSONObject,
824
851
  preventDefault,
@@ -847,5 +874,6 @@ function sample(arr) {
847
874
  tryParseJSON,
848
875
  uniq,
849
876
  uniqBy,
850
- upperFirst
877
+ upperFirst,
878
+ ...require("mitt")
851
879
  });
package/lib/index.d.cts CHANGED
@@ -1,3 +1,6 @@
1
+ export * from 'mitt';
2
+ export { default as mitt } from 'mitt';
3
+
1
4
  declare function uniq<T>(arr: T[]): T[];
2
5
  declare function uniqBy<T>(arr: T[], fn: (a: T, b: T) => boolean): T[];
3
6
  declare function normalizeToArray<T>(value: T | T[]): T[];
@@ -21,6 +24,8 @@ declare function getAllParentScroller(el: HTMLElement): Array<HTMLElement | Wind
21
24
  declare function preventDefault(event: Event): void;
22
25
  declare function getScrollTop(element: Element | Window): number;
23
26
  declare function getScrollLeft(element: Element | Window): number;
27
+ declare function tryParseJSON<T>(json: string): T | undefined;
28
+ declare function prettyJSONObject(jsonObject: Record<string, any>): string;
24
29
  type ClassName = string | undefined | null;
25
30
  type Classes = (ClassName | [any, ClassName, ClassName?])[];
26
31
  declare function classes(...classes: Classes): any[];
@@ -30,11 +35,20 @@ declare function createNamespaceFn<N extends string>(namespace: N): <C extends s
30
35
  n: <S extends string | undefined = undefined>(suffix?: S) => BEM<S, typeof namespace, `${N}-${C}`>;
31
36
  classes: typeof classes;
32
37
  };
38
+ interface Storage extends globalThis.Storage {
39
+ set(key: string, value: any): void;
40
+ get(key: string): any;
41
+ remove(key: string): void;
42
+ }
43
+ declare function createStorage(storage: globalThis.Storage): Storage;
44
+ declare const sessionStorage: Storage;
45
+ declare const localStorage: Storage;
33
46
 
34
47
  declare function NOOP(): void;
35
48
  declare function debounce<F extends (...args: any[]) => any>(fn: F, delay?: number): (this: unknown, ...args: Parameters<F>) => void;
36
49
  declare function throttle<F extends (...args: any[]) => any>(fn: F, delay?: number): (this: unknown, ...args: Parameters<F>) => void;
37
50
  declare function call<P extends any[], R>(fn?: ((...arg: P) => R) | ((...arg: P) => R)[] | null, ...args: P): R | R[] | undefined;
51
+ declare function once<F extends (...args: any[]) => any>(fn: F): (this: unknown, ...args: Parameters<F>) => ReturnType<F>;
38
52
 
39
53
  declare const objectToString: typeof Object.prototype.toString;
40
54
  declare function toTypeString(value: unknown): string;
@@ -90,22 +104,10 @@ declare function merge<TObject extends Record<string, any>, TSource extends Reco
90
104
  declare function cloneDeep<T>(value: T): T;
91
105
  declare function cloneDeepWith<T>(value: T, fn: (value: any) => any): T;
92
106
 
93
- declare function tryParseJSON<T>(json: string): T | undefined;
94
- declare function prettyJSONObject(jsonObject: Record<string, any>): string;
95
-
96
107
  declare function toDataURL(file: File): Promise<string>;
97
108
  declare function toText(file: File): Promise<string>;
98
109
  declare function toArrayBuffer(file: File): Promise<ArrayBuffer>;
99
110
 
100
- interface Storage extends globalThis.Storage {
101
- set(key: string, value: any): void;
102
- get(key: string): any;
103
- remove(key: string): void;
104
- }
105
- declare function createStorage(storage: globalThis.Storage): Storage;
106
- declare const sessionStorage: Storage;
107
- declare const localStorage: Storage;
108
-
109
111
  declare function sum(arr: number[]): number;
110
112
  declare function sumBy<T>(arr: T[], fn: (val: T) => number): number;
111
113
  declare function minBy<T>(arr: T[], fn: (val: T) => number): T | undefined;
@@ -114,4 +116,4 @@ declare function mean(arr: number[]): number;
114
116
  declare function meanBy<T>(arr: T[], fn: (val: T) => number): number;
115
117
  declare function sample<T>(arr: T[]): T | undefined;
116
118
 
117
- export { type BEM, type ClassName, type Classes, NOOP, type Storage, at, call, camelize, cancelAnimationFrame, clamp, clampArrayRange, classes, cloneDeep, cloneDeepWith, createNamespaceFn, createStorage, debounce, delay, doubleRaf, find, genNumberKey, genStringKey, getAllParentScroller, getGlobalThis, getParentScroller, getRect, getScrollLeft, getScrollTop, getStyle, hasOwn, inBrowser, inMobile, inViewport, isArray, isArrayBuffer, isBoolean, isDataView, isDate, isEmpty, isFunction, isMap, isNonEmptyArray, isNullish, isNumber, isNumeric, isObject, isPlainObject, isPromise, isRegExp, isSet, isString, isSymbol, isTruthy, isTypedArray, isWeakMap, isWeakSet, isWindow, kebabCase, localStorage, lowerFirst, maxBy, mean, meanBy, merge, mergeWith, minBy, normalizeToArray, objectToString, pascalCase, prettyJSONObject, preventDefault, raf, randomNumber, removeArrayBlank, removeArrayEmpty, removeItem, requestAnimationFrame, sample, sessionStorage, shuffle, slash, sum, sumBy, supportTouch, throttle, times, toArrayBuffer, toDataURL, toNumber, toRawType, toText, toTypeString, toggleItem, tryParseJSON, uniq, uniqBy, upperFirst };
119
+ export { type BEM, type ClassName, type Classes, NOOP, type Storage, at, call, camelize, cancelAnimationFrame, clamp, clampArrayRange, classes, cloneDeep, cloneDeepWith, createNamespaceFn, createStorage, debounce, delay, doubleRaf, find, genNumberKey, genStringKey, getAllParentScroller, getGlobalThis, getParentScroller, getRect, getScrollLeft, getScrollTop, getStyle, hasOwn, inBrowser, inMobile, inViewport, isArray, isArrayBuffer, isBoolean, isDataView, isDate, isEmpty, isFunction, isMap, isNonEmptyArray, isNullish, isNumber, isNumeric, isObject, isPlainObject, isPromise, isRegExp, isSet, isString, isSymbol, isTruthy, isTypedArray, isWeakMap, isWeakSet, isWindow, kebabCase, localStorage, lowerFirst, maxBy, mean, meanBy, merge, mergeWith, minBy, normalizeToArray, objectToString, once, pascalCase, prettyJSONObject, preventDefault, raf, randomNumber, removeArrayBlank, removeArrayEmpty, removeItem, requestAnimationFrame, sample, sessionStorage, shuffle, slash, sum, sumBy, supportTouch, throttle, times, toArrayBuffer, toDataURL, toNumber, toRawType, toText, toTypeString, toggleItem, tryParseJSON, uniq, uniqBy, upperFirst };
package/lib/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ export * from 'mitt';
2
+ export { default as mitt } from 'mitt';
3
+
1
4
  declare function uniq<T>(arr: T[]): T[];
2
5
  declare function uniqBy<T>(arr: T[], fn: (a: T, b: T) => boolean): T[];
3
6
  declare function normalizeToArray<T>(value: T | T[]): T[];
@@ -21,6 +24,8 @@ declare function getAllParentScroller(el: HTMLElement): Array<HTMLElement | Wind
21
24
  declare function preventDefault(event: Event): void;
22
25
  declare function getScrollTop(element: Element | Window): number;
23
26
  declare function getScrollLeft(element: Element | Window): number;
27
+ declare function tryParseJSON<T>(json: string): T | undefined;
28
+ declare function prettyJSONObject(jsonObject: Record<string, any>): string;
24
29
  type ClassName = string | undefined | null;
25
30
  type Classes = (ClassName | [any, ClassName, ClassName?])[];
26
31
  declare function classes(...classes: Classes): any[];
@@ -30,11 +35,20 @@ declare function createNamespaceFn<N extends string>(namespace: N): <C extends s
30
35
  n: <S extends string | undefined = undefined>(suffix?: S) => BEM<S, typeof namespace, `${N}-${C}`>;
31
36
  classes: typeof classes;
32
37
  };
38
+ interface Storage extends globalThis.Storage {
39
+ set(key: string, value: any): void;
40
+ get(key: string): any;
41
+ remove(key: string): void;
42
+ }
43
+ declare function createStorage(storage: globalThis.Storage): Storage;
44
+ declare const sessionStorage: Storage;
45
+ declare const localStorage: Storage;
33
46
 
34
47
  declare function NOOP(): void;
35
48
  declare function debounce<F extends (...args: any[]) => any>(fn: F, delay?: number): (this: unknown, ...args: Parameters<F>) => void;
36
49
  declare function throttle<F extends (...args: any[]) => any>(fn: F, delay?: number): (this: unknown, ...args: Parameters<F>) => void;
37
50
  declare function call<P extends any[], R>(fn?: ((...arg: P) => R) | ((...arg: P) => R)[] | null, ...args: P): R | R[] | undefined;
51
+ declare function once<F extends (...args: any[]) => any>(fn: F): (this: unknown, ...args: Parameters<F>) => ReturnType<F>;
38
52
 
39
53
  declare const objectToString: typeof Object.prototype.toString;
40
54
  declare function toTypeString(value: unknown): string;
@@ -90,22 +104,10 @@ declare function merge<TObject extends Record<string, any>, TSource extends Reco
90
104
  declare function cloneDeep<T>(value: T): T;
91
105
  declare function cloneDeepWith<T>(value: T, fn: (value: any) => any): T;
92
106
 
93
- declare function tryParseJSON<T>(json: string): T | undefined;
94
- declare function prettyJSONObject(jsonObject: Record<string, any>): string;
95
-
96
107
  declare function toDataURL(file: File): Promise<string>;
97
108
  declare function toText(file: File): Promise<string>;
98
109
  declare function toArrayBuffer(file: File): Promise<ArrayBuffer>;
99
110
 
100
- interface Storage extends globalThis.Storage {
101
- set(key: string, value: any): void;
102
- get(key: string): any;
103
- remove(key: string): void;
104
- }
105
- declare function createStorage(storage: globalThis.Storage): Storage;
106
- declare const sessionStorage: Storage;
107
- declare const localStorage: Storage;
108
-
109
111
  declare function sum(arr: number[]): number;
110
112
  declare function sumBy<T>(arr: T[], fn: (val: T) => number): number;
111
113
  declare function minBy<T>(arr: T[], fn: (val: T) => number): T | undefined;
@@ -114,4 +116,4 @@ declare function mean(arr: number[]): number;
114
116
  declare function meanBy<T>(arr: T[], fn: (val: T) => number): number;
115
117
  declare function sample<T>(arr: T[]): T | undefined;
116
118
 
117
- export { type BEM, type ClassName, type Classes, NOOP, type Storage, at, call, camelize, cancelAnimationFrame, clamp, clampArrayRange, classes, cloneDeep, cloneDeepWith, createNamespaceFn, createStorage, debounce, delay, doubleRaf, find, genNumberKey, genStringKey, getAllParentScroller, getGlobalThis, getParentScroller, getRect, getScrollLeft, getScrollTop, getStyle, hasOwn, inBrowser, inMobile, inViewport, isArray, isArrayBuffer, isBoolean, isDataView, isDate, isEmpty, isFunction, isMap, isNonEmptyArray, isNullish, isNumber, isNumeric, isObject, isPlainObject, isPromise, isRegExp, isSet, isString, isSymbol, isTruthy, isTypedArray, isWeakMap, isWeakSet, isWindow, kebabCase, localStorage, lowerFirst, maxBy, mean, meanBy, merge, mergeWith, minBy, normalizeToArray, objectToString, pascalCase, prettyJSONObject, preventDefault, raf, randomNumber, removeArrayBlank, removeArrayEmpty, removeItem, requestAnimationFrame, sample, sessionStorage, shuffle, slash, sum, sumBy, supportTouch, throttle, times, toArrayBuffer, toDataURL, toNumber, toRawType, toText, toTypeString, toggleItem, tryParseJSON, uniq, uniqBy, upperFirst };
119
+ export { type BEM, type ClassName, type Classes, NOOP, type Storage, at, call, camelize, cancelAnimationFrame, clamp, clampArrayRange, classes, cloneDeep, cloneDeepWith, createNamespaceFn, createStorage, debounce, delay, doubleRaf, find, genNumberKey, genStringKey, getAllParentScroller, getGlobalThis, getParentScroller, getRect, getScrollLeft, getScrollTop, getStyle, hasOwn, inBrowser, inMobile, inViewport, isArray, isArrayBuffer, isBoolean, isDataView, isDate, isEmpty, isFunction, isMap, isNonEmptyArray, isNullish, isNumber, isNumeric, isObject, isPlainObject, isPromise, isRegExp, isSet, isString, isSymbol, isTruthy, isTypedArray, isWeakMap, isWeakSet, isWindow, kebabCase, localStorage, lowerFirst, maxBy, mean, meanBy, merge, mergeWith, minBy, normalizeToArray, objectToString, once, pascalCase, prettyJSONObject, preventDefault, raf, randomNumber, removeArrayBlank, removeArrayEmpty, removeItem, requestAnimationFrame, sample, sessionStorage, shuffle, slash, sum, sumBy, supportTouch, throttle, times, toArrayBuffer, toDataURL, toNumber, toRawType, toText, toTypeString, toggleItem, tryParseJSON, uniq, uniqBy, upperFirst };
package/lib/index.js CHANGED
@@ -223,7 +223,7 @@ function lowerFirst(s) {
223
223
  return s.charAt(0).toLowerCase() + s.slice(1);
224
224
  }
225
225
 
226
- // src/element.ts
226
+ // src/util.ts
227
227
  function requestAnimationFrame(fn) {
228
228
  const globalThis2 = getGlobalThis();
229
229
  return globalThis2.requestAnimationFrame ? globalThis2.requestAnimationFrame(fn) : globalThis2.setTimeout(fn);
@@ -315,6 +315,16 @@ function getScrollLeft(element) {
315
315
  const left = "scrollLeft" in element ? element.scrollLeft : element.scrollX;
316
316
  return Math.max(left, 0);
317
317
  }
318
+ function tryParseJSON(json) {
319
+ try {
320
+ return JSON.parse(json);
321
+ } catch (e) {
322
+ return void 0;
323
+ }
324
+ }
325
+ function prettyJSONObject(jsonObject) {
326
+ return JSON.stringify(jsonObject, null, 2);
327
+ }
318
328
  function classes(...classes2) {
319
329
  return classes2.map((className) => {
320
330
  if (isArray(className)) {
@@ -343,6 +353,32 @@ function createNamespaceFn(namespace) {
343
353
  };
344
354
  };
345
355
  }
356
+ function createStorage(storage) {
357
+ return __spreadProps(__spreadValues({}, storage), {
358
+ set(key3, value) {
359
+ if (value == null) {
360
+ return;
361
+ }
362
+ if (!isString(value)) {
363
+ value = JSON.stringify(value);
364
+ }
365
+ storage.setItem(key3, value);
366
+ },
367
+ get(key3) {
368
+ const data = storage.getItem(key3);
369
+ try {
370
+ return JSON.parse(data);
371
+ } catch (err) {
372
+ return data;
373
+ }
374
+ },
375
+ remove(key3) {
376
+ storage.removeItem(key3);
377
+ }
378
+ });
379
+ }
380
+ var sessionStorage = createStorage(globalThis.sessionStorage);
381
+ var localStorage = createStorage(globalThis.localStorage);
346
382
 
347
383
  // src/function.ts
348
384
  function NOOP() {
@@ -388,6 +424,18 @@ function call(fn, ...args) {
388
424
  return fn(...args);
389
425
  }
390
426
  }
427
+ function once(fn) {
428
+ let called = false;
429
+ let result;
430
+ return function(...args) {
431
+ if (called) {
432
+ return result;
433
+ }
434
+ called = true;
435
+ result = fn.apply(this, args);
436
+ return result;
437
+ };
438
+ }
391
439
 
392
440
  // src/number.ts
393
441
  function toNumber(val) {
@@ -538,18 +586,6 @@ function cloneDeepWith(value, fn) {
538
586
  return baseCloneDeep(value, cache);
539
587
  }
540
588
 
541
- // src/json.ts
542
- function tryParseJSON(json) {
543
- try {
544
- return JSON.parse(json);
545
- } catch (e) {
546
- return void 0;
547
- }
548
- }
549
- function prettyJSONObject(jsonObject) {
550
- return JSON.stringify(jsonObject, null, 2);
551
- }
552
-
553
589
  // src/file.ts
554
590
  function toDataURL(file) {
555
591
  return new Promise((resolve) => {
@@ -579,34 +615,6 @@ function toArrayBuffer(file) {
579
615
  });
580
616
  }
581
617
 
582
- // src/storage.ts
583
- function createStorage(storage) {
584
- return __spreadProps(__spreadValues({}, storage), {
585
- set(key3, value) {
586
- if (value == null) {
587
- return;
588
- }
589
- if (!isString(value)) {
590
- value = JSON.stringify(value);
591
- }
592
- storage.setItem(key3, value);
593
- },
594
- get(key3) {
595
- const data = storage.getItem(key3);
596
- try {
597
- return JSON.parse(data);
598
- } catch (err) {
599
- return data;
600
- }
601
- },
602
- remove(key3) {
603
- storage.removeItem(key3);
604
- }
605
- });
606
- }
607
- var sessionStorage = createStorage(globalThis.sessionStorage);
608
- var localStorage = createStorage(globalThis.localStorage);
609
-
610
618
  // src/math.ts
611
619
  function sum(arr) {
612
620
  return arr.reduce((ret, val) => ret + val, 0);
@@ -638,6 +646,10 @@ function sample(arr) {
638
646
  }
639
647
  return arr[randomNumber(0, arr.length - 1)];
640
648
  }
649
+
650
+ // src/index.ts
651
+ export * from "mitt";
652
+ import { default as default2 } from "mitt";
641
653
  export {
642
654
  NOOP,
643
655
  at,
@@ -701,8 +713,10 @@ export {
701
713
  merge,
702
714
  mergeWith,
703
715
  minBy,
716
+ default2 as mitt,
704
717
  normalizeToArray,
705
718
  objectToString,
719
+ once,
706
720
  pascalCase,
707
721
  prettyJSONObject,
708
722
  preventDefault,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rattail",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "type": "module",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "lib/index.js",
@@ -31,6 +31,17 @@
31
31
  "bugs": {
32
32
  "url": "https://github.com/varletjs/rattail/issues"
33
33
  },
34
+ "simple-git-hooks": {
35
+ "pre-commit": "pnpm exec nano-staged --allow-empty",
36
+ "commit-msg": "pnpm exec vr commit-lint -p $1"
37
+ },
38
+ "nano-staged": {
39
+ "*.{md}": "pnpm format",
40
+ "*.{ts}": [
41
+ "pnpm format",
42
+ "pnpm lint"
43
+ ]
44
+ },
34
45
  "devDependencies": {
35
46
  "@types/node": "^22.8.1",
36
47
  "@varlet/eslint-config": "latest",
@@ -38,8 +49,10 @@
38
49
  "@vitest/coverage-istanbul": "^2.1.3",
39
50
  "eslint": "^8.53.0",
40
51
  "jsdom": "^25.0.1",
52
+ "nano-staged": "0.8.0",
41
53
  "prettier": "^3.1.0",
42
54
  "rimraf": "^6.0.1",
55
+ "simple-git-hooks": "^2.11.1",
43
56
  "tsup": "8.3.5",
44
57
  "typescript": "^5.6.3",
45
58
  "vitepress": "^1.4.1",
@@ -48,7 +61,11 @@
48
61
  "engines": {
49
62
  "pnpm": ">=9.0"
50
63
  },
64
+ "dependencies": {
65
+ "mitt": "^3.0.1"
66
+ },
51
67
  "scripts": {
68
+ "git-hooks": "simple-git-hooks",
52
69
  "dev": "tsup src/index.ts --format esm --out-dir=lib --watch --dts",
53
70
  "build": "tsup src/index.ts --format esm,cjs --out-dir=lib --dts --clean",
54
71
  "lint": "eslint . --fix --ext .ts,.js",