Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
  • Loading branch information
ota-meshi committed Apr 1, 2023
1 parent bf9c97b commit b55ee2e
Showing 1 changed file with 24 additions and 16 deletions.
40 changes: 24 additions & 16 deletions src/parser/converts/attr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,15 @@ function buildEventHandlerType(
elementName: string,
eventName: string
) {
const nativeEventHandlerType = `(e:'${eventName}' extends infer U?U extends keyof HTMLElementEventMap?HTMLElementEventMap[U]:CustomEvent<any>:never)=>void`;
const nativeEventHandlerType = [
`(e:`,
/**/ `'${eventName}' extends infer EVT`,
/**/ /**/ `?EVT extends keyof HTMLElementEventMap`,
/**/ /**/ /**/ `?HTMLElementEventMap[EVT]`,
/**/ /**/ /**/ `:CustomEvent<any>`,
/**/ /**/ `:never`,
`)=>void`,
].join("");
if (element.type !== "SvelteElement") {
return nativeEventHandlerType;
}
Expand All @@ -368,21 +376,21 @@ function buildEventHandlerType(
const importSvelteHTMLElements =
"import('svelte/elements').SvelteHTMLElements";
return [
`'${eventName}' extends infer EVT`,
/* */ `?(`,
/* */ /* */ `EVT extends keyof ${importSvelteHTMLElements}`,
/* */ /* */ `?(`,
/* */ /* */ /* */ `'${attrName}' extends infer ATTR`,
/* */ /* */ /* */ `?(`,
/* */ /* */ /* */ /* */ `ATTR extends keyof ${importSvelteHTMLElements}[EVT]`,
/* */ /* */ /* */ /* */ /* */ `?${importSvelteHTMLElements}[EVT][ATTR]`,
/* */ /* */ /* */ /* */ /* */ `:${nativeEventHandlerType}`,
/* */ /* */ /* */ `)`,
/* */ /* */ /* */ `:${nativeEventHandlerType}`,
/* */ /* */ `)`,
/* */ /* */ `:${nativeEventHandlerType}`,
/* */ `)`,
/* */ `:${nativeEventHandlerType}`,
`'${elementName}' extends infer EL`,
/**/ `?(`,
/**/ /**/ `EL extends keyof ${importSvelteHTMLElements}`,
/**/ /**/ `?(`,
/**/ /**/ /**/ `'${attrName}' extends infer ATTR`,
/**/ /**/ /**/ `?(`,
/**/ /**/ /**/ /**/ `ATTR extends keyof ${importSvelteHTMLElements}[EL]`,
/**/ /**/ /**/ /**/ /**/ `?${importSvelteHTMLElements}[EL][ATTR]`,
/**/ /**/ /**/ /**/ /**/ `:${nativeEventHandlerType}`,
/**/ /**/ /**/ `)`,
/**/ /**/ /**/ `:never`,
/**/ /**/ `)`,
/**/ /**/ `:${nativeEventHandlerType}`,
/**/ `)`,
/**/ `:never`,
].join("");
}

Expand Down

0 comments on commit b55ee2e

Please sign in to comment.