Skip to content

Commit

Permalink
re-export event modifier substitutes
Browse files Browse the repository at this point in the history
  • Loading branch information
Rich-Harris committed Sep 22, 2024
1 parent 5c1285e commit 06d28f9
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 82 deletions.
12 changes: 12 additions & 0 deletions packages/svelte/src/internal/client/dom/legacy/event-modifiers.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
/**
* Substitute for the `trusted` event modifier
* @deprecated
* @param {(event: Event, ...args: Array<unknown>) => void} fn
* @returns {(event: Event, ...args: unknown[]) => void}
*/
Expand All @@ -13,6 +15,8 @@ export function trusted(fn) {
}

/**
* Substitute for the `self` event modifier
* @deprecated
* @param {(event: Event, ...args: Array<unknown>) => void} fn
* @returns {(event: Event, ...args: unknown[]) => void}
*/
Expand All @@ -28,6 +32,8 @@ export function self(fn) {
}

/**
* Substitute for the `stopPropagation` event modifier
* @deprecated
* @param {(event: Event, ...args: Array<unknown>) => void} fn
* @returns {(event: Event, ...args: unknown[]) => void}
*/
Expand All @@ -41,6 +47,8 @@ export function stopPropagation(fn) {
}

/**
* Substitute for the `once` event modifier
* @deprecated
* @param {(event: Event, ...args: Array<unknown>) => void} fn
* @returns {(event: Event, ...args: unknown[]) => void}
*/
Expand All @@ -57,6 +65,8 @@ export function once(fn) {
}

/**
* Substitute for the `stopImmediatePropagation` event modifier
* @deprecated
* @param {(event: Event, ...args: Array<unknown>) => void} fn
* @returns {(event: Event, ...args: unknown[]) => void}
*/
Expand All @@ -70,6 +80,8 @@ export function stopImmediatePropagation(fn) {
}

/**
* Substitute for the `preventDefault` event modifier
* @deprecated
* @param {(event: Event, ...args: Array<unknown>) => void} fn
* @returns {(event: Event, ...args: unknown[]) => void}
*/
Expand Down
78 changes: 8 additions & 70 deletions packages/svelte/src/legacy/legacy-client.js
Original file line number Diff line number Diff line change
Expand Up @@ -209,73 +209,11 @@ export function handlers(...handlers) {
};
}

/**
* Migration helper to substitute the `stopImmediatePropagation` event modifier
* @param {EventListener} fn
*/
export function stopImmediatePropagation(fn) {
return (/**@type {Event}*/ e) => {
e.stopImmediatePropagation();
fn(e);
};
}

/**
* Migration helper to substitute the `preventDefault` event modifier
* @param {EventListener} fn
*/
export function preventDefault(fn) {
return (/**@type {Event}*/ e) => {
e.preventDefault();
fn(e);
};
}

/**
* Migration helper to substitute the `stopPropagation` event modifier
* @param {EventListener} fn
*/
export function stopPropagation(fn) {
return (/**@type {Event}*/ e) => {
e.stopPropagation();
fn(e);
};
}

/**
* Migration helper to substitute the `trusted` event modifier
* @param {EventListener} fn
*/
export function trusted(fn) {
return (/**@type {Event}*/ e) => {
if (e.isTrusted) {
fn(e);
}
};
}

/**
* Migration helper to substitute the `self` event modifier
* @param {EventListener} fn
*/
export function self(fn) {
return (/**@type {Event}*/ e) => {
if (e.target === e.currentTarget) {
fn(e);
}
};
}

/**
* Migration helper to substitute the `once` event modifier
* @param {EventListener} fn
*/
export function once(fn) {
let executed = false;
return (/**@type {Event}*/ e) => {
if (!executed) {
executed = true;
fn(e);
}
};
}
export {
once,
preventDefault,
self,
stopImmediatePropagation,
stopPropagation,
trusted
} from '../internal/client/dom/legacy/event-modifiers.js';
30 changes: 18 additions & 12 deletions packages/svelte/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1637,29 +1637,35 @@ declare module 'svelte/legacy' {
* */
export function handlers(...handlers: EventListener[]): EventListener;
/**
* Migration helper to substitute the `stopImmediatePropagation` event modifier
* Substitute for the `trusted` event modifier
* @deprecated
* */
export function stopImmediatePropagation(fn: EventListener): (e: Event) => void;
export function trusted(fn: (event: Event, ...args: Array<unknown>) => void): (event: Event, ...args: unknown[]) => void;
/**
* Migration helper to substitute the `preventDefault` event modifier
* Substitute for the `self` event modifier
* @deprecated
* */
export function preventDefault(fn: EventListener): (e: Event) => void;
export function self(fn: (event: Event, ...args: Array<unknown>) => void): (event: Event, ...args: unknown[]) => void;
/**
* Migration helper to substitute the `stopPropagation` event modifier
* Substitute for the `stopPropagation` event modifier
* @deprecated
* */
export function stopPropagation(fn: EventListener): (e: Event) => void;
export function stopPropagation(fn: (event: Event, ...args: Array<unknown>) => void): (event: Event, ...args: unknown[]) => void;
/**
* Migration helper to substitute the `trusted` event modifier
* Substitute for the `once` event modifier
* @deprecated
* */
export function trusted(fn: EventListener): (e: Event) => void;
export function once(fn: (event: Event, ...args: Array<unknown>) => void): (event: Event, ...args: unknown[]) => void;
/**
* Migration helper to substitute the `self` event modifier
* Substitute for the `stopImmediatePropagation` event modifier
* @deprecated
* */
export function self(fn: EventListener): (e: Event) => void;
export function stopImmediatePropagation(fn: (event: Event, ...args: Array<unknown>) => void): (event: Event, ...args: unknown[]) => void;
/**
* Migration helper to substitute the `once` event modifier
* Substitute for the `preventDefault` event modifier
* @deprecated
* */
export function once(fn: EventListener): (e: Event) => void;
export function preventDefault(fn: (event: Event, ...args: Array<unknown>) => void): (event: Event, ...args: unknown[]) => void;

export {};
}
Expand Down

0 comments on commit 06d28f9

Please sign in to comment.