Skip to content

(svelte2tsx)Fix directive type check #352

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jul 26, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
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
4 changes: 2 additions & 2 deletions packages/svelte2tsx/src/htmlxtojsx.ts
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ export function convertHtmlxToJsx(
//bind group on input
if (attr.name == 'group' && el.name == 'input') {
str.remove(attr.start, attr.expression.start);
str.appendLeft(attr.expression.start, '{...__sveltets_any(');
str.appendLeft(attr.expression.start, '{...__sveltets_empty(');

const endBrackets = ')}';
if (isShortHandAttribute(attr)) {
Expand Down Expand Up @@ -213,7 +213,7 @@ export function convertHtmlxToJsx(
//one way binding
if (oneWayBindingAttributes.has(attr.name) && el.type == 'Element') {
str.remove(attr.start, attr.expression.start);
str.appendLeft(attr.expression.start, `{...__sveltets_any(`);
str.appendLeft(attr.expression.start, `{...__sveltets_empty(`);
if (isShortHandAttribute(attr)) {
// eslint-disable-next-line max-len
str.appendLeft(
Expand Down
11 changes: 6 additions & 5 deletions packages/svelte2tsx/svelte-shims.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,11 @@ type SvelteComponent = import('*.svelte').default

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

declare function __sveltets_ensureAnimation<U extends any[]>(animation: SvelteAnimation<U>, ...args: U): any;
declare function __sveltets_ensureAction<U extends any[]>(action: SvelteAction<U>, ...args: U): any;
declare function __sveltets_ensureTransition<U extends any[]>(transition: SvelteTransition<U>, ...args: U): any;
declare function __sveltets_ensureFunction(expression: (e: Event & { detail?: any }) => unknown ) : any;
declare function __sveltets_ensureType<T>(type: AConstructorTypeOf<T>, el: T): any;
declare function __sveltets_ensureAnimation<U extends any[]>(animation: SvelteAnimation<U>, ...args: U): {};
declare function __sveltets_ensureAction<U extends any[]>(action: SvelteAction<U>, ...args: U): {};
declare function __sveltets_ensureTransition<U extends any[]>(transition: SvelteTransition<U>, ...args: U): {};
declare function __sveltets_ensureFunction(expression: (e: Event & { detail?: any }) => unknown ): {};
declare function __sveltets_ensureType<T>(type: AConstructorTypeOf<T>, el: T): {};
declare function __sveltets_instanceOf<T>(type: AConstructorTypeOf<T>): T;
declare function __sveltets_allPropsType(): SvelteAllProps
declare function __sveltets_restPropsType(): SvelteRestProps
Expand All @@ -51,5 +51,6 @@ declare function __sveltets_partial_with_any<T>(obj: T): Partial<T> & SvelteAllP
declare function __sveltets_with_any<T>(obj: T): T & SvelteAllProps
declare function __sveltets_store_get<T=any>(store: SvelteStore<T>): T
declare function __sveltets_any(dummy: any): any;
declare function __sveltets_empty(dummy: any): {};
declare function __sveltets_componentType(): AConstructorTypeOf<SvelteComponent>
declare function __sveltets_invalidate<T>(getValue: () => T): T
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<><input type="radio" {...__sveltets_any(group)} value="Plain"/>
<input type="radio" value="Plain" {...__sveltets_any(group)}/></>
<><input type="radio" {...__sveltets_empty(group)} value="Plain"/>
<input type="radio" value="Plain" {...__sveltets_empty(group)}/></>
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<><input type="radio" {...__sveltets_any(tortilla)} value="Plain"/></>
<><input type="radio" {...__sveltets_empty(tortilla)} value="Plain"/></>
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
<><div type="text"
{...__sveltets_any(width=__sveltets_instanceOf(HTMLDivElement).clientWidth)}
{...__sveltets_any(height=__sveltets_instanceOf(HTMLDivElement).clientHeight)}
{...__sveltets_any(offsetWidth=__sveltets_instanceOf(HTMLDivElement).offsetWidth)}
{...__sveltets_any(offsetHeight=__sveltets_instanceOf(HTMLDivElement).offsetHeight)}
{...__sveltets_empty(width=__sveltets_instanceOf(HTMLDivElement).clientWidth)}
{...__sveltets_empty(height=__sveltets_instanceOf(HTMLDivElement).clientHeight)}
{...__sveltets_empty(offsetWidth=__sveltets_instanceOf(HTMLDivElement).offsetWidth)}
{...__sveltets_empty(offsetHeight=__sveltets_instanceOf(HTMLDivElement).offsetHeight)}
/>

<video
src={clip}
{...__sveltets_any(duration=__sveltets_instanceOf(HTMLMediaElement).duration)}
{...__sveltets_any(buffered=__sveltets_instanceOf(HTMLMediaElement).buffered)}
{...__sveltets_any(seekable=__sveltets_instanceOf(HTMLMediaElement).seekable)}
{...__sveltets_any(seeking=__sveltets_instanceOf(HTMLMediaElement).seeking)}
{...__sveltets_any(played=__sveltets_instanceOf(HTMLMediaElement).played)}
{...__sveltets_any(ended=__sveltets_instanceOf(HTMLMediaElement).ended)}
></video></>
{...__sveltets_empty(duration=__sveltets_instanceOf(HTMLMediaElement).duration)}
{...__sveltets_empty(buffered=__sveltets_instanceOf(HTMLMediaElement).buffered)}
{...__sveltets_empty(seekable=__sveltets_instanceOf(HTMLMediaElement).seekable)}
{...__sveltets_empty(seeking=__sveltets_instanceOf(HTMLMediaElement).seeking)}
{...__sveltets_empty(played=__sveltets_instanceOf(HTMLMediaElement).played)}
{...__sveltets_empty(ended=__sveltets_instanceOf(HTMLMediaElement).ended)}
></video></>
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<></>;function render() {
<><input id="dom-input" type="radio" {...__sveltets_any(__sveltets_store_get(compile_options).generate)} value="dom"/></>
<><input id="dom-input" type="radio" {...__sveltets_empty(__sveltets_store_get(compile_options).generate)} value="dom"/></>
return { props: {}, slots: {}, getters: {} }}

export default class Input__SvelteComponent_ {
Expand Down