@js-toolkit/web-utils 1.57.0 → 1.58.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/EventEmitterListener.d.ts +4 -4
- package/EventEmitterListener.utils.d.ts +5 -6
- package/EventEmitterListener.utils.js +1 -1
- package/EventListeners.d.ts +1 -1
- package/createRafLoop.d.ts +1 -1
- package/fullscreen.d.ts +3 -3
- package/getCurrentScriptUrl.d.ts +1 -1
- package/getEventAwaiter.d.ts +9 -4
- package/getEventAwaiter.js +1 -1
- package/getRandomID.d.ts +1 -1
- package/media/resetMedia.d.ts +1 -1
- package/media/resetMedia.js +1 -1
- package/package.json +9 -9
- package/saveFileAs.d.ts +1 -1
|
@@ -16,11 +16,11 @@ export declare class EventEmitterListener<T extends EmitterTarget, M extends Any
|
|
|
16
16
|
private createWrapper;
|
|
17
17
|
getListenerList<L = unknown>({ event, type }?: GetListenersOptions): L[];
|
|
18
18
|
getListeners<L = unknown>({ event, type }?: GetListenersOptions): Record<string, L[]>;
|
|
19
|
-
has<K extends GetEventType<T>>(type: K, listener?: GetEventListener<T, K, M
|
|
19
|
+
has<K extends GetEventType<T>>(type: K, listener?: GetEventListener<T, K, M>, ...rest: [
|
|
20
20
|
...(T extends DomEventTarget ? [options?: GetOffOptions<T> | undefined] : []),
|
|
21
21
|
...unknown[]
|
|
22
22
|
]): boolean;
|
|
23
|
-
has(type: string, listener?: GetEventListener<T, string, M
|
|
23
|
+
has(type: string, listener?: GetEventListener<T, string, M>, ...rest: [
|
|
24
24
|
...(T extends DomEventTarget ? [options?: GetOffOptions<T> | undefined] : []),
|
|
25
25
|
...unknown[]
|
|
26
26
|
]): boolean;
|
|
@@ -48,8 +48,8 @@ export declare class EventEmitterListener<T extends EmitterTarget, M extends Any
|
|
|
48
48
|
...(T extends DomEventTarget ? [options?: GetOffOptions<T> | undefined] : []),
|
|
49
49
|
...unknown[]
|
|
50
50
|
]): this;
|
|
51
|
-
removeAllListeners<K extends GetEventType<T>>(type?: K
|
|
52
|
-
removeAllListeners(type?: string
|
|
51
|
+
removeAllListeners<K extends GetEventType<T>>(type?: K): this;
|
|
52
|
+
removeAllListeners(type?: string): this;
|
|
53
53
|
removeAllListenersBut<K extends GetEventType<T>>(...types: K[]): this;
|
|
54
54
|
removeAllListenersBut(...types: string[]): this;
|
|
55
55
|
emit<K extends GetEventType<T>>(type: K, ...args: Parameters<GetEventListener<T, K, M>>): this;
|
|
@@ -11,15 +11,14 @@ export type EventEmitterLike = {
|
|
|
11
11
|
};
|
|
12
12
|
export type EmitterTarget = DomEventTarget | EventTargetLike | EventEmitterLike;
|
|
13
13
|
export type GetDomEventType<T extends DomEventTarget> = T['addEventListener'] extends {
|
|
14
|
-
(type: infer K, listener: (this: T, ev: any) => any, options?: boolean | AddEventListenerOptions
|
|
15
|
-
(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions
|
|
14
|
+
(type: infer K, listener: (this: T, ev: any) => any, options?: boolean | AddEventListenerOptions): void;
|
|
15
|
+
(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
16
16
|
} ? K : string;
|
|
17
17
|
export type GetDomEventListener<E, EM extends AnyObject> = (ev: E extends keyof EM ? EM[E] : Event, ...rest: unknown[]) => unknown;
|
|
18
|
-
export type
|
|
18
|
+
export type GetEventTypeFromFn<T extends EventEmitterLike['on']> = T extends {
|
|
19
19
|
(type: infer K, listener: AnyFunction, ...rest: unknown[]): unknown;
|
|
20
|
-
} ? K : string
|
|
21
|
-
|
|
22
|
-
} ? K : string : string;
|
|
20
|
+
} ? K : string;
|
|
21
|
+
export type GetEventType<T extends EmitterTarget> = T extends DomEventTarget ? GetDomEventType<T> : T extends EventEmitterLike ? GetEventTypeFromFn<T['on']> : T extends EventTargetLike ? GetEventTypeFromFn<T['addEventListener']> : string;
|
|
23
22
|
export type GetEventListener<T extends EmitterTarget, E, EM extends AnyObject = GetEventMap<T>> = T extends DomEventTarget ? IfExtends<EM, EmptyObject, EventListener, GetDomEventListener<E, EM>> : IfExtends<EM, EmptyObject, Parameters<T extends EventEmitterLike ? T['on'] : T extends EventTargetLike ? T['addEventListener'] : AnyFunction>['1'], (event: E extends keyof EM ? EM[E] : unknown, ...rest: any[]) => unknown>;
|
|
24
23
|
type ListenersMapToEventMap<T extends Record<string, AnyFunction[]>> = {
|
|
25
24
|
[P in keyof T]: Parameters<T[P][number]>[0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isEmptyObject}from"@js-toolkit/utils/isEmptyObject";export function isEventTargetLike(e){return void 0!==e.addEventListener&&void 0!==e.removeEventListener}export function isDomEventTarget(e){return isEventTargetLike(e)&&void 0!==e.dispatchEvent}export function isEventEmitterLike(e){return!isEventTargetLike(e)&&!isDomEventTarget(e)&&void 0!==e.on&&void 0!==e.once&&void 0!==e.off}let passiveSupported=!1;export function isPassiveSupported(){return passiveSupported}try{const e={get passive(){return passiveSupported=!0,!1}};window.addEventListener("__testpassive__",null,e)}catch
|
|
1
|
+
import{isEmptyObject}from"@js-toolkit/utils/isEmptyObject";export function isEventTargetLike(e){return void 0!==e.addEventListener&&void 0!==e.removeEventListener}export function isDomEventTarget(e){return isEventTargetLike(e)&&void 0!==e.dispatchEvent}export function isEventEmitterLike(e){return!isEventTargetLike(e)&&!isDomEventTarget(e)&&void 0!==e.on&&void 0!==e.once&&void 0!==e.off}let passiveSupported=!1;export function isPassiveSupported(){return passiveSupported}try{const e={get passive(){return passiveSupported=!0,!1}};window.addEventListener("__testpassive__",null,e)}catch{}export function normalizeOptions(e){if(e&&"object"==typeof e){let t=e;if("passive"in e&&!passiveSupported){const{passive:i,...n}=e;t=n}return isEmptyObject(t)?void 0:t}return e}
|
package/EventListeners.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ export declare class EventListeners {
|
|
|
4
4
|
private readonly listeners;
|
|
5
5
|
getScopes(): IterableIterator<EmitterTarget>;
|
|
6
6
|
scope<T extends EmitterTarget, M extends AnyObject = GetEventMap<T>>(target: T, scope?: string): EventEmitterListener<T, M>;
|
|
7
|
-
removeAllListeners<T extends EmitterTarget>(target?: T
|
|
7
|
+
removeAllListeners<T extends EmitterTarget>(target?: T, scope?: string): this;
|
|
8
8
|
}
|
package/createRafLoop.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export interface RafLoopStartOptions {
|
|
|
3
3
|
readonly scope?: AnimationFrameProvider | undefined;
|
|
4
4
|
}
|
|
5
5
|
export interface RafLoop {
|
|
6
|
-
start: (callback: FrameRequestCallback, options?: RafLoopStartOptions
|
|
6
|
+
start: (callback: FrameRequestCallback, options?: RafLoopStartOptions) => void;
|
|
7
7
|
stop: VoidFunction;
|
|
8
8
|
isActive: () => boolean;
|
|
9
9
|
}
|
package/fullscreen.d.ts
CHANGED
|
@@ -17,9 +17,9 @@ export declare namespace fullscreen {
|
|
|
17
17
|
export function isApiEnabled(): boolean;
|
|
18
18
|
export function isFullscreen(): boolean;
|
|
19
19
|
export function getElement(): Element | null | undefined;
|
|
20
|
-
export function on(type: EventType, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions
|
|
21
|
-
export function off(type: EventType, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions
|
|
22
|
-
export function request(elem: Element, options?: FullscreenOptions
|
|
20
|
+
export function on(type: EventType, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
21
|
+
export function off(type: EventType, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
22
|
+
export function request(elem: Element, options?: FullscreenOptions): Promise<void>;
|
|
23
23
|
export function exit(): Promise<void>;
|
|
24
24
|
export function toggle(elem: Element): Promise<void>;
|
|
25
25
|
export function onChange(listener: EventListenerOrEventListenerObject): void;
|
package/getCurrentScriptUrl.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function getCurrentScriptUrl(url?: string | URL
|
|
1
|
+
export declare function getCurrentScriptUrl(url?: string | URL): URL;
|
package/getEventAwaiter.d.ts
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { type Awaiter } from '@js-toolkit/utils/getAwaiter';
|
|
2
|
-
import { type EmitterTarget, type GetEventType } from './EventEmitterListener.utils';
|
|
2
|
+
import { type EmitterTarget, type EventTargetLike, type GetEventType, type GetEventTypeFromFn } from './EventEmitterListener.utils';
|
|
3
3
|
export type EventAwaiter = Awaiter<void>;
|
|
4
|
-
|
|
5
|
-
/** If it returns
|
|
6
|
-
|
|
4
|
+
interface Options {
|
|
5
|
+
/** If it returns true then resolve is ignored. */
|
|
6
|
+
readonly ignoreResolve?: (event: any) => boolean;
|
|
7
|
+
/** If it returns null or undefined then reject is ignored. */
|
|
8
|
+
readonly eventToError?: (event: any) => unknown;
|
|
9
|
+
}
|
|
10
|
+
export declare function getEventAwaiter<T extends EmitterTarget, E extends T extends EventTargetLike ? GetEventTypeFromFn<OverloadToUnion<T['addEventListener']>> : GetEventType<T>>(target: T, resolveEvent: E | E[], rejectEvent?: E | E[], { ignoreResolve, eventToError }?: Options): EventAwaiter;
|
|
11
|
+
export {};
|
package/getEventAwaiter.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getAwaiter}from"@js-toolkit/utils/getAwaiter";import{EventEmitterListener}from"./EventEmitterListener";import{isEventEmitterLike}from"./EventEmitterListener.utils";export function getEventAwaiter(t,
|
|
1
|
+
import{getAwaiter}from"@js-toolkit/utils/getAwaiter";import{EventEmitterListener}from"./EventEmitterListener";import{isEventEmitterLike}from"./EventEmitterListener.utils";export function getEventAwaiter(e,t,r,{ignoreResolve:i,eventToError:o}={}){const n=getAwaiter({lazy:!0}),s=Array.isArray(t)?t:[t],E=Array.isArray(r)?r:[r],a=isEventEmitterLike(e)?e:new EventEmitterListener(e),f=e=>{!(!!i&&i(e))&&n.resolve()},m=e=>{const t=o?o(e):e;null!=t&&n.reject(t)},v=()=>{s.forEach((e=>a.off(e,f))),E.forEach((e=>a.off(e,m)))},c=n.resolve;n.resolve=(...e)=>{v(),c(...e)};const l=n.reject;return n.reject=(...e)=>{l(...e),v()},s.forEach((e=>a.on(e,f))),E.forEach((e=>a.on(e,m))),n}
|
package/getRandomID.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function getRandomID(maxLength?: number
|
|
1
|
+
export declare function getRandomID(maxLength?: number): string;
|
package/media/resetMedia.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/** Remove media from hardware decoder buffer */
|
|
1
|
+
/** Remove media from hardware decoder buffer. */
|
|
2
2
|
export declare function resetMedia(media: HTMLMediaElement): void;
|
package/media/resetMedia.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export function resetMedia(e){(e.src||e.srcObject)
|
|
1
|
+
export function resetMedia(e){if(e.src||e.srcObject||e.childElementCount>0){if(URL.revokeObjectURL(e.src),e.removeAttribute("src"),e.srcObject=null,e.childElementCount>0)for(const t of e.children)t instanceof HTMLSourceElement&&e.removeChild(t);e.load()}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@js-toolkit/web-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.58.0",
|
|
4
4
|
"description": "Web utils",
|
|
5
5
|
"author": "VZH",
|
|
6
6
|
"license": "MIT",
|
|
@@ -20,18 +20,18 @@
|
|
|
20
20
|
"@js-toolkit/node-utils": "^1.2.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@eslint/compat": "^1.2.
|
|
24
|
-
"@eslint/eslintrc": "^3.
|
|
25
|
-
"@eslint/js": "^9.
|
|
26
|
-
"@js-toolkit/configs": "^3.93.
|
|
27
|
-
"@js-toolkit/utils": "^1.54.
|
|
23
|
+
"@eslint/compat": "^1.2.3",
|
|
24
|
+
"@eslint/eslintrc": "^3.2.0",
|
|
25
|
+
"@eslint/js": "^9.15.0",
|
|
26
|
+
"@js-toolkit/configs": "^3.93.12",
|
|
27
|
+
"@js-toolkit/utils": "^1.54.7",
|
|
28
28
|
"@types/eslint": "^9.6.1",
|
|
29
29
|
"@types/eslint__eslintrc": "^2.1.2",
|
|
30
30
|
"@types/eslint__js": "^8.42.3",
|
|
31
31
|
"@types/lodash.throttle": "^4.1.9",
|
|
32
32
|
"@types/uuid": "^10.0.0",
|
|
33
33
|
"copyfiles": "^2.4.1",
|
|
34
|
-
"eslint": "^9.
|
|
34
|
+
"eslint": "^9.15.0",
|
|
35
35
|
"eslint-config-prettier": "^9.1.0",
|
|
36
36
|
"eslint-plugin-import": "^2.31.0",
|
|
37
37
|
"eslint-plugin-prettier": "^5.2.1",
|
|
@@ -42,8 +42,8 @@
|
|
|
42
42
|
"rimraf": "^6.0.1",
|
|
43
43
|
"terser": "^5.36.0",
|
|
44
44
|
"typescript": "^5.6.3",
|
|
45
|
-
"typescript-eslint": "^8.
|
|
46
|
-
"ua-parser-js": "^2.0.0
|
|
45
|
+
"typescript-eslint": "^8.15.0",
|
|
46
|
+
"ua-parser-js": "^2.0.0",
|
|
47
47
|
"uuid": "^11.0.3",
|
|
48
48
|
"webpack": "^5.96.1",
|
|
49
49
|
"yargs": "^17.7.2"
|
package/saveFileAs.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function saveFileAs(filename: string, url: string, attrs?: Record<string, string>
|
|
1
|
+
export declare function saveFileAs(filename: string, url: string, attrs?: Record<string, string>): void;
|