UNPKG

svelte-cross-frameworks

Version:
15 lines (10 loc) 959 B
import * as React from 'react'; import { SvelteComponent } from 'svelte'; import * as Vue from 'vue'; type SveltePropsToProps<Props extends Record<string, any>, Events extends Record<string, any>> = Props & { [evt in keyof Events as `on${Capitalize<evt & string>}`]?: Events[evt] extends infer P ? (payload: P) => void : never; }; type SvelteComponentType<P extends Record<string, any> = any, E extends Record<string, any> = any> = typeof SvelteComponent<P, E>; declare function createReactComponent<Component extends SvelteComponentType>(svelteComponent: Component): Component extends SvelteComponentType<infer P, infer E> ? React.ComponentType<SveltePropsToProps<P, E>> : never; declare function createVueComponent<Component extends SvelteComponentType>(svelteComponent: Component): Component extends SvelteComponentType<infer P, infer E> ? Vue.DefineComponent<SveltePropsToProps<P, E>> : never; export { createReactComponent, createVueComponent };