svelte2tsx 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -2757,25 +2757,25 @@ function handleRawHtml$1(htmlx, str, rawBlock) {
2757
2757
  }
2758
2758
 
2759
2759
  /**
2760
- * style:xx ---> __sveltets_1_ensureType(String, xx);
2761
- * style:xx={yy} ---> __sveltets_1_ensureType(String, yy);
2762
- * style:xx="yy" ---> __sveltets_1_ensureType(String, "yy");
2763
- * style:xx="a{b}" ---> __sveltets_1_ensureType(String, `a${b}`);
2760
+ * style:xx ---> __sveltets_1_ensureType(String, Number, xx);
2761
+ * style:xx={yy} ---> __sveltets_1_ensureType(String, Number, yy);
2762
+ * style:xx="yy" ---> __sveltets_1_ensureType(String, Number, "yy");
2763
+ * style:xx="a{b}" ---> __sveltets_1_ensureType(String, Number, `a${b}`);
2764
2764
  */
2765
2765
  function handleStyleDirective$1(str, style) {
2766
2766
  const htmlx = str.original;
2767
2767
  if (style.value === true || style.value.length === 0) {
2768
- str.overwrite(style.start, htmlx.indexOf(':', style.start) + 1, '{...__sveltets_1_ensureType(String, ');
2768
+ str.overwrite(style.start, htmlx.indexOf(':', style.start) + 1, '{...__sveltets_1_ensureType(String, Number, ');
2769
2769
  str.appendLeft(style.end, ')}');
2770
2770
  return;
2771
2771
  }
2772
2772
  if (style.value.length > 1) {
2773
- buildTemplateString(style, str, htmlx, '{...__sveltets_1_ensureType(String, `', '`)}', style.start);
2773
+ buildTemplateString(style, str, htmlx, '{...__sveltets_1_ensureType(String, Number, `', '`)}', style.start);
2774
2774
  return;
2775
2775
  }
2776
2776
  const styleVal = style.value[0];
2777
2777
  if (styleVal.type === 'Text') {
2778
- str.overwrite(style.start, styleVal.start, '{...__sveltets_1_ensureType(String, "');
2778
+ str.overwrite(style.start, styleVal.start, '{...__sveltets_1_ensureType(String, Number, "');
2779
2779
  if (styleVal.end === style.end) {
2780
2780
  str.appendLeft(style.end, '")}');
2781
2781
  }
@@ -2785,7 +2785,7 @@ function handleStyleDirective$1(str, style) {
2785
2785
  }
2786
2786
  else {
2787
2787
  // MustacheTag
2788
- str.overwrite(style.start, styleVal.start + 1, '{...__sveltets_1_ensureType(String, ');
2788
+ str.overwrite(style.start, styleVal.start + 1, '{...__sveltets_1_ensureType(String, Number, ');
2789
2789
  str.overwrite(styleVal.end - 1, style.end, ')}');
2790
2790
  }
2791
2791
  }
@@ -3596,23 +3596,27 @@ class InlineComponent {
3596
3596
  this.addNameConstDeclaration = () => (this.startTransformation[0] = `{ const ${this._name} = __sveltets_2_createComponentAny({`);
3597
3597
  this.startEndTransformation.push('});');
3598
3598
  }
3599
- else if (this.node.name === 'svelte:component') {
3600
- this._name = '$$_sveltecomponent' + this.computeDepth();
3601
- this.startTransformation.push(`{ const ${this._name}_ = new `, [this.node.expression.start, this.node.expression.end], '({ target: __sveltets_2_any(), props: {');
3599
+ else {
3600
+ const isSvelteComponentTag = this.node.name === 'svelte:component';
3602
3601
  // We don't know if the thing we use to create the Svelte component with
3603
3602
  // is actually a proper Svelte component, which would lead to errors
3604
3603
  // when accessing things like $$prop_def. Therefore widen the type
3605
3604
  // here, falling back to a any-typed component to ensure the user doesn't
3606
3605
  // get weird follup-errors all over the place. The diagnostic error
3607
- // should still error on the new X() part.
3608
- this.startEndTransformation.push(`}});${this._name}_;`);
3609
- this.addNameConstDeclaration = () => (this.startEndTransformation[0] = `}});const ${this._name} = __sveltets_2_typeAsComponent(${this._name}_);`);
3610
- }
3611
- else {
3612
- this._name = '$$_' + this.node.name + this.computeDepth();
3613
- const nodeNameStart = this.str.original.indexOf(this.node.name, this.node.start);
3614
- this.startTransformation.push('{ new ', [nodeNameStart, nodeNameStart + this.node.name.length], '({ target: __sveltets_2_any(), props: {');
3615
- this.addNameConstDeclaration = () => (this.startTransformation[0] = `{ const ${this._name} = new `);
3606
+ // will be on the __sveltets_2_ensureComponent part, giving a more helpful message
3607
+ this._name =
3608
+ '$$_' +
3609
+ (isSvelteComponentTag ? 'sveltecomponent' : this.node.name) +
3610
+ this.computeDepth();
3611
+ const constructorName = this._name + 'C';
3612
+ const nodeNameStart = isSvelteComponentTag
3613
+ ? this.node.expression.start
3614
+ : this.str.original.indexOf(this.node.name, this.node.start);
3615
+ const nodeNameEnd = isSvelteComponentTag
3616
+ ? this.node.expression.end
3617
+ : nodeNameStart + this.node.name.length;
3618
+ this.startTransformation.push(`{ const ${constructorName} = __sveltets_2_ensureComponent(`, [nodeNameStart, nodeNameEnd], `); new ${constructorName}({ target: __sveltets_2_any(), props: {`);
3619
+ this.addNameConstDeclaration = () => (this.startTransformation[2] = `); const ${this._name} = new ${constructorName}({ target: __sveltets_2_any(), props: {`);
3616
3620
  this.startEndTransformation.push('}});');
3617
3621
  }
3618
3622
  }
@@ -3792,7 +3796,18 @@ function handleAttribute(str, attr, parent, preserveCase, element) {
3792
3796
  return;
3793
3797
  }
3794
3798
  const addAttribute = element instanceof Element
3795
- ? (name, value) => element.addAttribute(name, value)
3799
+ ? (name, value) => {
3800
+ if (attr.name.startsWith('data-')) {
3801
+ // any attribute prefixed with data- is valid, but we can't
3802
+ // type that statically, so we need this workaround
3803
+ name.unshift('...__sveltets_2_empty({');
3804
+ if (!value) {
3805
+ value = ['__sveltets_2_any()'];
3806
+ }
3807
+ value.push('})');
3808
+ }
3809
+ element.addAttribute(name, value);
3810
+ }
3796
3811
  : (name, value) => {
3797
3812
  if (attr.name.startsWith('--') && attr.value !== true) {
3798
3813
  // CSS custom properties are not part of the props
@@ -3831,7 +3846,7 @@ function handleAttribute(str, attr, parent, preserveCase, element) {
3831
3846
  return;
3832
3847
  }
3833
3848
  else {
3834
- let name = element instanceof Element && attr.value === true
3849
+ let name = element instanceof Element && parent.type === 'Element'
3835
3850
  ? transformAttributeCase(attr.name)
3836
3851
  : attr.name;
3837
3852
  // surround with quotes because dashes or other invalid property characters could be part of the name
@@ -4160,10 +4175,9 @@ function handleEventHandler(str, attr, element) {
4160
4175
  // If there's no expression, it's event bubbling (on:click)
4161
4176
  const nameEnd = nameStart + attr.name.length;
4162
4177
  if (element instanceof Element) {
4163
- // For better mapping
4164
- str.overwrite(nameStart, nameStart + 1, 'on' + str.original.charAt(nameStart), {
4165
- contentOnly: true
4166
- });
4178
+ // Prefix with "on" for better mapping.
4179
+ // Surround with quotes because event name could contain invalid prop chars.
4180
+ surroundWith(str, [nameStart, nameEnd], '"on', '"');
4167
4181
  element.addAttribute([[nameStart, nameEnd]], attr.expression ? [[attr.expression.start, attr.expression.end]] : ['undefined']);
4168
4182
  }
4169
4183
  else {
@@ -4306,16 +4320,16 @@ function handleSpread(node, element) {
4306
4320
  }
4307
4321
 
4308
4322
  /**
4309
- * style:xx ---> __sveltets_2_ensureType(String, xx);
4310
- * style:xx={yy} ---> __sveltets_2_ensureType(String, yy);
4311
- * style:xx="yy" ---> __sveltets_2_ensureType(String, "yy");
4312
- * style:xx="a{b}" ---> __sveltets_2_ensureType(String, `a${b}`);
4323
+ * style:xx ---> __sveltets_2_ensureType(String, Number, xx);
4324
+ * style:xx={yy} ---> __sveltets_2_ensureType(String, Number, yy);
4325
+ * style:xx="yy" ---> __sveltets_2_ensureType(String, Number, "yy");
4326
+ * style:xx="a{b}" ---> __sveltets_2_ensureType(String, Number, `a${b}`);
4313
4327
  */
4314
4328
  function handleStyleDirective(str, style, element) {
4315
4329
  const htmlx = str.original;
4316
4330
  if (style.value === true || style.value.length === 0) {
4317
4331
  element.appendToStartEnd([
4318
- '__sveltets_2_ensureType(String, ',
4332
+ '__sveltets_2_ensureType(String, Number, ',
4319
4333
  [htmlx.indexOf(':', style.start) + 1, style.end],
4320
4334
  ');'
4321
4335
  ]);
@@ -4337,7 +4351,11 @@ function handleStyleDirective(str, style, element) {
4337
4351
  str.appendRight(n.start, '$');
4338
4352
  }
4339
4353
  }
4340
- element.appendToStartEnd(['__sveltets_2_ensureType(String, `', [start, end], '`);']);
4354
+ element.appendToStartEnd([
4355
+ '__sveltets_2_ensureType(String, Number, `',
4356
+ [start, end],
4357
+ '`);'
4358
+ ]);
4341
4359
  return;
4342
4360
  }
4343
4361
  const styleVal = style.value[0];
@@ -4346,14 +4364,14 @@ function handleStyleDirective(str, style, element) {
4346
4364
  ? str.original[styleVal.start - 1]
4347
4365
  : '"';
4348
4366
  element.appendToStartEnd([
4349
- `__sveltets_2_ensureType(String, ${quote}`,
4367
+ `__sveltets_2_ensureType(String, Number, ${quote}`,
4350
4368
  [start, end],
4351
4369
  `${quote});`
4352
4370
  ]);
4353
4371
  }
4354
4372
  else {
4355
4373
  // MustacheTag
4356
- element.appendToStartEnd(['__sveltets_2_ensureType(String, ', [start, end], ');']);
4374
+ element.appendToStartEnd(['__sveltets_2_ensureType(String, Number, ', [start, end], ');']);
4357
4375
  }
4358
4376
  }
4359
4377
 
package/index.mjs CHANGED
@@ -2727,25 +2727,25 @@ function handleRawHtml$1(htmlx, str, rawBlock) {
2727
2727
  }
2728
2728
 
2729
2729
  /**
2730
- * style:xx ---> __sveltets_1_ensureType(String, xx);
2731
- * style:xx={yy} ---> __sveltets_1_ensureType(String, yy);
2732
- * style:xx="yy" ---> __sveltets_1_ensureType(String, "yy");
2733
- * style:xx="a{b}" ---> __sveltets_1_ensureType(String, `a${b}`);
2730
+ * style:xx ---> __sveltets_1_ensureType(String, Number, xx);
2731
+ * style:xx={yy} ---> __sveltets_1_ensureType(String, Number, yy);
2732
+ * style:xx="yy" ---> __sveltets_1_ensureType(String, Number, "yy");
2733
+ * style:xx="a{b}" ---> __sveltets_1_ensureType(String, Number, `a${b}`);
2734
2734
  */
2735
2735
  function handleStyleDirective$1(str, style) {
2736
2736
  const htmlx = str.original;
2737
2737
  if (style.value === true || style.value.length === 0) {
2738
- str.overwrite(style.start, htmlx.indexOf(':', style.start) + 1, '{...__sveltets_1_ensureType(String, ');
2738
+ str.overwrite(style.start, htmlx.indexOf(':', style.start) + 1, '{...__sveltets_1_ensureType(String, Number, ');
2739
2739
  str.appendLeft(style.end, ')}');
2740
2740
  return;
2741
2741
  }
2742
2742
  if (style.value.length > 1) {
2743
- buildTemplateString(style, str, htmlx, '{...__sveltets_1_ensureType(String, `', '`)}', style.start);
2743
+ buildTemplateString(style, str, htmlx, '{...__sveltets_1_ensureType(String, Number, `', '`)}', style.start);
2744
2744
  return;
2745
2745
  }
2746
2746
  const styleVal = style.value[0];
2747
2747
  if (styleVal.type === 'Text') {
2748
- str.overwrite(style.start, styleVal.start, '{...__sveltets_1_ensureType(String, "');
2748
+ str.overwrite(style.start, styleVal.start, '{...__sveltets_1_ensureType(String, Number, "');
2749
2749
  if (styleVal.end === style.end) {
2750
2750
  str.appendLeft(style.end, '")}');
2751
2751
  }
@@ -2755,7 +2755,7 @@ function handleStyleDirective$1(str, style) {
2755
2755
  }
2756
2756
  else {
2757
2757
  // MustacheTag
2758
- str.overwrite(style.start, styleVal.start + 1, '{...__sveltets_1_ensureType(String, ');
2758
+ str.overwrite(style.start, styleVal.start + 1, '{...__sveltets_1_ensureType(String, Number, ');
2759
2759
  str.overwrite(styleVal.end - 1, style.end, ')}');
2760
2760
  }
2761
2761
  }
@@ -3566,23 +3566,27 @@ class InlineComponent {
3566
3566
  this.addNameConstDeclaration = () => (this.startTransformation[0] = `{ const ${this._name} = __sveltets_2_createComponentAny({`);
3567
3567
  this.startEndTransformation.push('});');
3568
3568
  }
3569
- else if (this.node.name === 'svelte:component') {
3570
- this._name = '$$_sveltecomponent' + this.computeDepth();
3571
- this.startTransformation.push(`{ const ${this._name}_ = new `, [this.node.expression.start, this.node.expression.end], '({ target: __sveltets_2_any(), props: {');
3569
+ else {
3570
+ const isSvelteComponentTag = this.node.name === 'svelte:component';
3572
3571
  // We don't know if the thing we use to create the Svelte component with
3573
3572
  // is actually a proper Svelte component, which would lead to errors
3574
3573
  // when accessing things like $$prop_def. Therefore widen the type
3575
3574
  // here, falling back to a any-typed component to ensure the user doesn't
3576
3575
  // get weird follup-errors all over the place. The diagnostic error
3577
- // should still error on the new X() part.
3578
- this.startEndTransformation.push(`}});${this._name}_;`);
3579
- this.addNameConstDeclaration = () => (this.startEndTransformation[0] = `}});const ${this._name} = __sveltets_2_typeAsComponent(${this._name}_);`);
3580
- }
3581
- else {
3582
- this._name = '$$_' + this.node.name + this.computeDepth();
3583
- const nodeNameStart = this.str.original.indexOf(this.node.name, this.node.start);
3584
- this.startTransformation.push('{ new ', [nodeNameStart, nodeNameStart + this.node.name.length], '({ target: __sveltets_2_any(), props: {');
3585
- this.addNameConstDeclaration = () => (this.startTransformation[0] = `{ const ${this._name} = new `);
3576
+ // will be on the __sveltets_2_ensureComponent part, giving a more helpful message
3577
+ this._name =
3578
+ '$$_' +
3579
+ (isSvelteComponentTag ? 'sveltecomponent' : this.node.name) +
3580
+ this.computeDepth();
3581
+ const constructorName = this._name + 'C';
3582
+ const nodeNameStart = isSvelteComponentTag
3583
+ ? this.node.expression.start
3584
+ : this.str.original.indexOf(this.node.name, this.node.start);
3585
+ const nodeNameEnd = isSvelteComponentTag
3586
+ ? this.node.expression.end
3587
+ : nodeNameStart + this.node.name.length;
3588
+ this.startTransformation.push(`{ const ${constructorName} = __sveltets_2_ensureComponent(`, [nodeNameStart, nodeNameEnd], `); new ${constructorName}({ target: __sveltets_2_any(), props: {`);
3589
+ this.addNameConstDeclaration = () => (this.startTransformation[2] = `); const ${this._name} = new ${constructorName}({ target: __sveltets_2_any(), props: {`);
3586
3590
  this.startEndTransformation.push('}});');
3587
3591
  }
3588
3592
  }
@@ -3762,7 +3766,18 @@ function handleAttribute(str, attr, parent, preserveCase, element) {
3762
3766
  return;
3763
3767
  }
3764
3768
  const addAttribute = element instanceof Element
3765
- ? (name, value) => element.addAttribute(name, value)
3769
+ ? (name, value) => {
3770
+ if (attr.name.startsWith('data-')) {
3771
+ // any attribute prefixed with data- is valid, but we can't
3772
+ // type that statically, so we need this workaround
3773
+ name.unshift('...__sveltets_2_empty({');
3774
+ if (!value) {
3775
+ value = ['__sveltets_2_any()'];
3776
+ }
3777
+ value.push('})');
3778
+ }
3779
+ element.addAttribute(name, value);
3780
+ }
3766
3781
  : (name, value) => {
3767
3782
  if (attr.name.startsWith('--') && attr.value !== true) {
3768
3783
  // CSS custom properties are not part of the props
@@ -3801,7 +3816,7 @@ function handleAttribute(str, attr, parent, preserveCase, element) {
3801
3816
  return;
3802
3817
  }
3803
3818
  else {
3804
- let name = element instanceof Element && attr.value === true
3819
+ let name = element instanceof Element && parent.type === 'Element'
3805
3820
  ? transformAttributeCase(attr.name)
3806
3821
  : attr.name;
3807
3822
  // surround with quotes because dashes or other invalid property characters could be part of the name
@@ -4130,10 +4145,9 @@ function handleEventHandler(str, attr, element) {
4130
4145
  // If there's no expression, it's event bubbling (on:click)
4131
4146
  const nameEnd = nameStart + attr.name.length;
4132
4147
  if (element instanceof Element) {
4133
- // For better mapping
4134
- str.overwrite(nameStart, nameStart + 1, 'on' + str.original.charAt(nameStart), {
4135
- contentOnly: true
4136
- });
4148
+ // Prefix with "on" for better mapping.
4149
+ // Surround with quotes because event name could contain invalid prop chars.
4150
+ surroundWith(str, [nameStart, nameEnd], '"on', '"');
4137
4151
  element.addAttribute([[nameStart, nameEnd]], attr.expression ? [[attr.expression.start, attr.expression.end]] : ['undefined']);
4138
4152
  }
4139
4153
  else {
@@ -4276,16 +4290,16 @@ function handleSpread(node, element) {
4276
4290
  }
4277
4291
 
4278
4292
  /**
4279
- * style:xx ---> __sveltets_2_ensureType(String, xx);
4280
- * style:xx={yy} ---> __sveltets_2_ensureType(String, yy);
4281
- * style:xx="yy" ---> __sveltets_2_ensureType(String, "yy");
4282
- * style:xx="a{b}" ---> __sveltets_2_ensureType(String, `a${b}`);
4293
+ * style:xx ---> __sveltets_2_ensureType(String, Number, xx);
4294
+ * style:xx={yy} ---> __sveltets_2_ensureType(String, Number, yy);
4295
+ * style:xx="yy" ---> __sveltets_2_ensureType(String, Number, "yy");
4296
+ * style:xx="a{b}" ---> __sveltets_2_ensureType(String, Number, `a${b}`);
4283
4297
  */
4284
4298
  function handleStyleDirective(str, style, element) {
4285
4299
  const htmlx = str.original;
4286
4300
  if (style.value === true || style.value.length === 0) {
4287
4301
  element.appendToStartEnd([
4288
- '__sveltets_2_ensureType(String, ',
4302
+ '__sveltets_2_ensureType(String, Number, ',
4289
4303
  [htmlx.indexOf(':', style.start) + 1, style.end],
4290
4304
  ');'
4291
4305
  ]);
@@ -4307,7 +4321,11 @@ function handleStyleDirective(str, style, element) {
4307
4321
  str.appendRight(n.start, '$');
4308
4322
  }
4309
4323
  }
4310
- element.appendToStartEnd(['__sveltets_2_ensureType(String, `', [start, end], '`);']);
4324
+ element.appendToStartEnd([
4325
+ '__sveltets_2_ensureType(String, Number, `',
4326
+ [start, end],
4327
+ '`);'
4328
+ ]);
4311
4329
  return;
4312
4330
  }
4313
4331
  const styleVal = style.value[0];
@@ -4316,14 +4334,14 @@ function handleStyleDirective(str, style, element) {
4316
4334
  ? str.original[styleVal.start - 1]
4317
4335
  : '"';
4318
4336
  element.appendToStartEnd([
4319
- `__sveltets_2_ensureType(String, ${quote}`,
4337
+ `__sveltets_2_ensureType(String, Number, ${quote}`,
4320
4338
  [start, end],
4321
4339
  `${quote});`
4322
4340
  ]);
4323
4341
  }
4324
4342
  else {
4325
4343
  // MustacheTag
4326
- element.appendToStartEnd(['__sveltets_2_ensureType(String, ', [start, end], ');']);
4344
+ element.appendToStartEnd(['__sveltets_2_ensureType(String, Number, ', [start, end], ');']);
4327
4345
  }
4328
4346
  }
4329
4347
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte2tsx",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "description": "Convert Svelte components to TSX for type checking",
5
5
  "author": "David Pershouse",
6
6
  "license": "MIT",
package/svelte-jsx.d.ts CHANGED
@@ -68,7 +68,10 @@ declare namespace svelteHTML {
68
68
  interface AriaAttributes extends svelte.JSX.AriaAttributes {}
69
69
 
70
70
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
71
- interface HTMLAttributes<T extends EventTarget> extends svelte.JSX.HTMLAttributes<T> {
71
+ interface HTMLAttributes<T extends EventTarget> extends svelte.JSX.HTMLAttributes<T> {}
72
+
73
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
74
+ interface SVGAttributes<T extends EventTarget> extends svelte.JSX.SVGAttributes<T> {
72
75
  'xlink:actuate'?: string | undefined;
73
76
  'xlink:arcrole'?: string | undefined;
74
77
  'xlink:href'?: string | undefined;
@@ -83,9 +86,6 @@ declare namespace svelteHTML {
83
86
  'xmlns:xlink'?: string | undefined;
84
87
  }
85
88
 
86
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
87
- interface SVGAttributes<T extends EventTarget> extends svelte.JSX.SVGAttributes<T> {}
88
-
89
89
  // eslint-disable-next-line @typescript-eslint/no-empty-interface
90
90
  interface HTMLProps<T extends EventTarget> extends HTMLAttributes<T> {}
91
91
 
package/svelte-shims.d.ts CHANGED
@@ -120,6 +120,7 @@ declare function __sveltets_1_ensureAction(actionCall: SvelteActionReturnType):
120
120
  declare function __sveltets_1_ensureTransition(transitionCall: SvelteTransitionReturnType): {};
121
121
  declare function __sveltets_1_ensureFunction(expression: (e: Event & { detail?: any }) => unknown ): {};
122
122
  declare function __sveltets_1_ensureType<T>(type: AConstructorTypeOf<T>, el: T): {};
123
+ declare function __sveltets_1_ensureType<T1, T2>(type1: AConstructorTypeOf<T1>, type2: AConstructorTypeOf<T2>, el: T1 | T2): {};
123
124
  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];
124
125
  declare function __sveltets_1_ensureRightProps<Props>(props: Props): {};
125
126
  declare function __sveltets_1_cssProp(prop: Record<string, any>): {};
@@ -222,6 +223,7 @@ declare function __sveltets_2_createCreateSlot<Slots = Record<string, Record<str
222
223
  declare function __sveltets_2_createComponentAny(props: Record<string, any>): Svelte2TsxComponent<any, any, any>;
223
224
 
224
225
  declare function __sveltets_2_any(...dummy: any[]): any;
226
+ declare function __sveltets_2_empty(...dummy: any[]): {};
225
227
 
226
228
  declare function __sveltets_2_cssProp(prop: Record<string, any>): {};
227
229
 
@@ -252,7 +254,8 @@ type __sveltets_2_SvelteTransitionReturnType = __sveltets_2_SvelteTransitionConf
252
254
  declare function __sveltets_2_ensureTransition(transitionCall: __sveltets_2_SvelteTransitionReturnType): {};
253
255
 
254
256
  declare function __sveltets_2_ensureType<T>(type: AConstructorTypeOf<T>, el: T): {};
257
+ declare function __sveltets_2_ensureType<T1, T2>(type1: AConstructorTypeOf<T1>, type2: AConstructorTypeOf<T2>, el: T1 | T2): {};
255
258
 
256
- declare function __sveltets_2_typeAsComponent<Component>(c: Component): Component extends Svelte2TsxComponent ? Component : Svelte2TsxComponent;
259
+ declare function __sveltets_2_ensureComponent<T extends new (args: {target: any, props?: any}) => Svelte2TsxComponent<any, any, any>>(type: T): T extends never ? Svelte2TsxComponent<any, any, any> : T;
257
260
 
258
261
  declare function __sveltets_2_ensureArray<T extends ArrayLike<unknown>>(array: T): T extends ArrayLike<infer U> ? U[] : any[];