Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
bubble event again
  • Loading branch information
jasonlyu123 committed Jul 28, 2020
commit e66ab2221ba8e662655d08e11d90c8a2a3a74285
2 changes: 1 addition & 1 deletion packages/svelte2tsx/src/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ export interface InstanceScriptProcessResult {
uses$$props: boolean;
uses$$restProps: boolean;
getters: Set<string>;
events: Map<string, string | string[]>;
}

export interface CreateRenderFunctionPara extends InstanceScriptProcessResult {
str: MagicString;
scriptTag: Node;
scriptDestination: number;
slots: Map<string, Map<string, string>>;
events: Map<string, string | string[]>;
}
2 changes: 1 addition & 1 deletion packages/svelte2tsx/src/nodes/event-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export function createEventHandlerTransformer() {

const handleEventHandlerBubble = () => {
const componentEventDef = `__sveltets_instanceOf(${parent.name})`;
const exp = `__sveltets_bubbleEventDef(${componentEventDef}, '${eventName}')`;
const exp = `__sveltets_bubbleEventDef(${componentEventDef}.$on, '${eventName}')`;

const exist = events.get(eventName);
events.set(eventName, exist ? [].concat(exist, exp) : exp);
Expand Down
2 changes: 1 addition & 1 deletion packages/svelte2tsx/src/svelte2tsx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -863,7 +863,7 @@ function addComponentExport(
className ? `${className} ` : ''
}{\n $$prop_def = ${propDef}\n $$slot_def = render().slots` +
createClassGetters(getters) +
`\n $on = __sveltets_eventDef(render().events).$on` +
`\n $on = __sveltets_eventDef(render().events)` +
'\n}';

str.append(statement);
Expand Down
18 changes: 10 additions & 8 deletions packages/svelte2tsx/svelte-shims.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ type SvelteStore<T> = { subscribe: (run: (value: T) => any, invalidate?: any) =>
type SvelteComponent = import('*.svelte').default
type SvelteEventRecord = Record<string, Event | Event[]>
type SvelteExtractEvent<T> = T extends any[] ? T[number] : T;

interface SvelteEventHandling<T extends SvelteEventRecord> {
$on<K extends keyof T>(event: K, handler: (e: SvelteExtractEvent<T[K]>) => any): void
$on(event: string, handler: (e: Event) => any): void
}
type SvelteEventOnEvent<T, K extends keyof T> = (
event: K,
handler: (e: SvelteExtractEvent<T[K]>) => any
) => void;
type SvelteAllEvent = (event: string, handler: (e: Event) => any) => void
type SvelteOnEvent<T> = SvelteEventOnEvent<T, keyof T> & SvelteAllEvent

declare var process: NodeJS.Process & { browser: boolean }

Expand All @@ -61,7 +62,7 @@ declare function __sveltets_store_get<T = any>(store: SvelteStore<T>): T
declare function __sveltets_any(dummy: any): any;
declare function __sveltets_componentType(): AConstructorTypeOf<SvelteComponent>
declare function __sveltets_invalidate<T>(getValue: () => T): T
declare function __sveltets_eventDef<T extends SvelteEventRecord>(def: T): SvelteEventHandling<T>
declare function __sveltets_eventDef<T extends SvelteEventRecord>(def: T): SvelteOnEvent<T>
declare function __sveltets_mapWindowEvent<K extends keyof HTMLBodyElementEventMap>(
event: K
): HTMLBodyElementEventMap[K];
Expand All @@ -73,5 +74,6 @@ declare function __sveltets_mapElementEvent<K extends keyof HTMLElementEventMap>
): HTMLElementEventMap[K];
declare function __sveltets_bubbleEventDef<
T extends SvelteEventRecord,
K extends keyof T
>(componentDef: SvelteEventHandling<T>, event: K): T[K]
TEvent,
TKey extends keyof T = TEvent extends keyof T ? TEvent : string
>(componentDef: SvelteOnEvent<T>, event: TEvent): T[TKey];
2 changes: 1 addition & 1 deletion packages/svelte2tsx/test/sourcemaps/event-binding.html
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
export default class {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
!Expected
<Component on:click={$check ? method1 : method2} />
Expand Down
2 changes: 1 addition & 1 deletion packages/svelte2tsx/test/sourcemaps/let.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
export default class {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
!Expected
<script>
Expand Down
2 changes: 1 addition & 1 deletion packages/svelte2tsx/test/sourcemaps/repl.html
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@
export default class {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
!Expected
<script context="module">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ return { props: {a: a , b: b , c: c}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -92,5 +92,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ return { props: {}, slots: {default: {a:b}}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ return { props: {}, slots: {default: {a:b}, test: {c:d, e:e}}, getters: {}, even
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ return { props: {}, slots: {default: {a:b, b:b, c:"b", d:"__svelte_ts_string", e
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<></>;function render() {
<><Button ></Button>
<Radio ></Radio></>
return { props: {}, slots: {}, getters: {}, events: {'click':[__sveltets_bubbleEventDef(__sveltets_instanceOf(Button), 'click'),__sveltets_bubbleEventDef(__sveltets_instanceOf(Radio), 'click')]} }}
return { props: {}, slots: {}, getters: {}, events: {'click':[__sveltets_bubbleEventDef(__sveltets_instanceOf(Button).$on, 'click'),__sveltets_bubbleEventDef(__sveltets_instanceOf(Radio).$on, 'click')]} }}

export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<></>;function render() {
<><Button ></Button></>
return { props: {}, slots: {}, getters: {}, events: {'click':__sveltets_bubbleEventDef(__sveltets_instanceOf(Button), 'click')} }}
return { props: {}, slots: {}, getters: {}, events: {'click':__sveltets_bubbleEventDef(__sveltets_instanceOf(Button).$on, 'click')} }}

export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ return { props: {}, slots: {}, getters: {}, events: {'click':__sveltets_mapEleme
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ return { props: {}, slots: {}, getters: {}, events: {'click':__sveltets_mapBodyE
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ return { props: {f: f}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
get Foo() { return render().getters.Foo }
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ export default class Input__SvelteComponent_ {
get name() { return render().getters.name }
get SOME() { return render().getters.SOME }
get CONSTANT() { return render().getters.CONSTANT }
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {a: a , b: b} as {a: A, b?: A}, slots: {}, getters: {}, events:
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {a: a , b: b , c: c} as {a: number, b: number | undefined, c?: n
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {name: name , name2: name2}, slots: {}, getters: {}, events: {}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ return { props: {name: name}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {a: a , b: b , c: c} as {a: number, b: number | undefined, c?: n
export default class Input__SvelteComponent_ {
$$prop_def = render().props
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {name: name , world: world}, slots: {}, getters: {}, events: {}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ return { props: {world: world}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ return { props: {world: world}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,5 @@ return { props: {world: world}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ return { props: {world: world}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ return { props: {world: world}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {number1: number1 , number2: number2} as {number1: number, numbe
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ return { props: {rename: rename}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ return { props: {name3: name , name4: name2}, slots: {}, getters: {}, events: {}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ return { props: {world: world}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,5 @@ return { props: {}, slots: {}, getters: {}, events: {} }}
export default class Input__SvelteComponent_ {
$$prop_def = __sveltets_partial(render().props)
$$slot_def = render().slots
$on = __sveltets_eventDef(render().events).$on
$on = __sveltets_eventDef(render().events)
}
Loading