Skip to content
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
5 changes: 4 additions & 1 deletion packages/svelte2tsx/src/svelte2tsx/createRenderFunction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,10 @@ export function createRenderFunction({
'}';

const returnString =
`\nreturn { props: ${exportedNames.createPropsStr(isTsFile, uses$$props)}` +
`\nreturn { props: ${exportedNames.createPropsStr(
isTsFile,
uses$$props || uses$$restProps
)}` +
`, slots: ${slotsAsDef}` +
`, events: ${events.toDefString()} }}`;

Expand Down
8 changes: 4 additions & 4 deletions packages/svelte2tsx/src/svelte2tsx/nodes/ExportedNames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -324,9 +324,9 @@ export class ExportedNames {
* Creates a string from the collected props
*
* @param isTsFile Whether this is a TypeScript file or not.
* @param uses$$propsValue whether the file references the $$props variable
* @param uses$$propsOr$$restProps whether the file references the $$props or $$restProps variable
*/
createPropsStr(isTsFile: boolean, uses$$propsValue: boolean): string {
createPropsStr(isTsFile: boolean, uses$$propsOr$$restProps: boolean): string {
const names = Array.from(this.exports.entries());

if (this.uses$$Props) {
Expand All @@ -343,7 +343,7 @@ export class ExportedNames {
this.createReturnElementsType(lets).join(',') +
'}>(__sveltets_2_any("") as $$Props), ' +
'...__sveltets_2_ensureRightProps<' +
(uses$$propsValue ? 'Partial<$$Props>' : '$$Props') +
(uses$$propsOr$$restProps ? 'Partial<$$Props>' : '$$Props') +
'>({' +
this.createReturnElements(lets, false).join(',') +
'}), ...{} as unknown as $$Props, ...{' +
Expand All @@ -357,7 +357,7 @@ export class ExportedNames {
);
}

if (names.length === 0 && !uses$$propsValue) {
if (names.length === 0 && !uses$$propsOr$$restProps) {
// Necessary, because {} roughly equals to any
return isTsFile
? '{} as Record<string, never>'
Expand Down
33 changes: 0 additions & 33 deletions packages/svelte2tsx/svelte-shims.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,20 +138,7 @@ type KeysMatching<Obj, V> = {[K in keyof Obj]-?: Obj[K] extends V ? K : never}[k
declare type __sveltets_2_CustomEvents<T> = {[K in KeysMatching<T, CustomEvent>]: T[K] extends CustomEvent ? T[K]['detail']: T[K]}

declare var process: NodeJS.Process & { browser: boolean }
// declare var __sveltets_1_AnimationMove: { from: DOMRect, to: DOMRect }

// declare function __sveltets_1_ensureAnimation(animationCall: SvelteAnimationReturnType): {};
// declare function __sveltets_1_ensureAction(actionCall: SvelteActionReturnType): {};
// declare function __sveltets_1_ensureTransition(transitionCall: SvelteTransitionReturnType): {};
// declare function __sveltets_1_ensureFunction(expression: (e: Event & { detail?: any }) => unknown ): {};
// // Includes undefined and null for all types as all usages also allow these
// declare function __sveltets_1_ensureType<T>(type: AConstructorTypeOf<T>, el: T | undefined | null): {};
// declare function __sveltets_1_ensureType<T1, T2>(type1: AConstructorTypeOf<T1>, type2: AConstructorTypeOf<T2>, el: T1 | T2 | undefined | null): {};

// declare function __sveltets_1_createEnsureSlot<Slots = Record<string, Record<string, any>>>(): <K1 extends keyof Slots, K2 extends keyof Slots[K1]>(k1: K1, k2: K2, val: Slots[K1][K2]) => Slots[K1][K2];
declare function __sveltets_2_ensureRightProps<Props>(props: Props): {};
// declare function __sveltets_1_cssProp(prop: Record<string, any>): {};
// declare function __sveltets_1_ctorOf<T>(type: T): AConstructorTypeOf<T>;
declare function __sveltets_2_instanceOf<T = any>(type: AConstructorTypeOf<T>): T;
declare function __sveltets_2_allPropsType(): SvelteAllProps
declare function __sveltets_2_restPropsType(): SvelteRestProps
Expand Down Expand Up @@ -202,15 +189,6 @@ declare function __sveltets_2_mapBodyEvent<K extends keyof WindowEventMap>(
declare function __sveltets_2_mapElementEvent<K extends keyof HTMLElementEventMap>(
event: K
): HTMLElementEventMap[K];
// declare function __sveltets_1_mapElementTag<K extends keyof ElementTagNameMap>(
// tag: K
// ): ElementTagNameMap[K];
// declare function __sveltets_1_mapElementTag<K extends keyof SVGElementTagNameMap>(
// tag: K
// ): SVGElementTagNameMap[K];
// declare function __sveltets_1_mapElementTag(
// tag: any
// ): any; // needs to be any because used in context of <svelte:element>

declare function __sveltets_2_bubbleEventDef<Events, K extends keyof Events>(
events: Events, eventKey: K
Expand All @@ -227,17 +205,6 @@ declare function __sveltets_2_unionType<T1, T2, T3>(t1: T1, t2: T2, t3: T3): T1
declare function __sveltets_2_unionType<T1, T2, T3, T4>(t1: T1, t2: T2, t3: T3, t4: T4): T1 | T2 | T3 | T4;
declare function __sveltets_2_unionType(...types: any[]): any;

// declare function __sveltets_1_awaitThen<T>(
// promise: T,
// onfulfilled: (value: T extends PromiseLike<infer U> ? U : T) => any,
// onrejected?: (value: T extends PromiseLike<any> ? any : never) => any
// ): any;

// declare function __sveltets_1_each<T extends ArrayLike<unknown>>(
// array: T,
// callbackfn: (value: T extends ArrayLike<infer U> ? U : any, index: number) => any
// ): any;

declare function __sveltets_2_createSvelte2TsxComponent<Props, Events, Slots>(
render: {props: Props, events: Events, slots: Slots }
): SvelteComponentConstructor<import("svelte").SvelteComponentTyped<Props, Events, Slots>,Svelte2TsxComponentConstructorParameters<Props>>;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
;
async () => { { svelteHTML.createElement("h1", {});name; }
};
return { props: /** @type {Record<string, never>} */ ({}), slots: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_2_createSvelte2TsxComponent(__sveltets_2_partial_with_any(__sveltets_2_with_any_event(render()))) {
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
///<reference types="svelte" />
;function render() { let $$restProps = __sveltets_2_restPropsType();
async () => { { svelteHTML.createElement("h1", {});$$restProps['name']; }};
return { props: /** @type {Record<string, never>} */ ({}), slots: {}, events: {} }}
return { props: {}, slots: {}, events: {} }}

export default class Input__SvelteComponent_ extends __sveltets_2_createSvelte2TsxComponent(__sveltets_2_partial_with_any(__sveltets_2_with_any_event(render()))) {
}