svelte2tsx 0.7.53 → 0.7.54

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.
Files changed (3) hide show
  1. package/index.js +9 -8
  2. package/index.mjs +9 -8
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -6712,12 +6712,12 @@ class HoistableInterfaces {
6712
6712
  const generics = (_b = (_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.map((param) => param.name.text)) !== null && _b !== void 0 ? _b : [];
6713
6713
  node.members.forEach((member) => {
6714
6714
  if (ts.isPropertySignature(member) && member.type) {
6715
- this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics);
6715
+ this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics, interface_name);
6716
6716
  }
6717
6717
  else if (ts.isIndexSignatureDeclaration(member)) {
6718
- this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics);
6718
+ this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics, interface_name);
6719
6719
  member.parameters.forEach((param) => {
6720
- this.collectTypeDependencies(param.type, type_dependencies, value_dependencies, generics);
6720
+ this.collectTypeDependencies(param.type, type_dependencies, value_dependencies, generics, interface_name);
6721
6721
  });
6722
6722
  }
6723
6723
  });
@@ -6729,7 +6729,7 @@ class HoistableInterfaces {
6729
6729
  type_dependencies.add(type_name);
6730
6730
  }
6731
6731
  }
6732
- this.collectTypeDependencies(type, type_dependencies, value_dependencies, generics);
6732
+ this.collectTypeDependencies(type, type_dependencies, value_dependencies, generics, interface_name);
6733
6733
  });
6734
6734
  });
6735
6735
  if (this.module_types.has(interface_name)) {
@@ -6750,7 +6750,7 @@ class HoistableInterfaces {
6750
6750
  const type_dependencies = new Set();
6751
6751
  const value_dependencies = new Set();
6752
6752
  const generics = (_e = (_d = node.typeParameters) === null || _d === void 0 ? void 0 : _d.map((param) => param.name.text)) !== null && _e !== void 0 ? _e : [];
6753
- this.collectTypeDependencies(node.type, type_dependencies, value_dependencies, generics);
6753
+ this.collectTypeDependencies(node.type, type_dependencies, value_dependencies, generics, alias_name);
6754
6754
  if (this.module_types.has(alias_name)) {
6755
6755
  // shadowed; we can't hoist
6756
6756
  this.disallowed_types.add(alias_name);
@@ -6815,7 +6815,7 @@ class HoistableInterfaces {
6815
6815
  else {
6816
6816
  this.props_interface.name = '$$ComponentProps';
6817
6817
  this.props_interface.node = generic_arg;
6818
- this.collectTypeDependencies(generic_arg, this.props_interface.type_deps, this.props_interface.value_deps, []);
6818
+ this.collectTypeDependencies(generic_arg, this.props_interface.type_deps, this.props_interface.value_deps, [], undefined);
6819
6819
  }
6820
6820
  }
6821
6821
  }
@@ -6927,11 +6927,12 @@ class HoistableInterfaces {
6927
6927
  * @param type_dependencies The set to collect type dependencies into.
6928
6928
  * @param value_dependencies The set to collect value dependencies into.
6929
6929
  */
6930
- collectTypeDependencies(type_node, type_dependencies, value_dependencies, generics) {
6930
+ collectTypeDependencies(type_node, type_dependencies, value_dependencies, generics, root_type_name) {
6931
6931
  const walk = (node) => {
6932
6932
  if (ts.isTypeReferenceNode(node)) {
6933
6933
  const type_name = this.getEntityNameRoot(node.typeName);
6934
- if (!generics.includes(type_name)) {
6934
+ const self_reference = type_name === root_type_name;
6935
+ if (!self_reference && !generics.includes(type_name)) {
6935
6936
  type_dependencies.add(type_name);
6936
6937
  }
6937
6938
  }
package/index.mjs CHANGED
@@ -6692,12 +6692,12 @@ class HoistableInterfaces {
6692
6692
  const generics = (_b = (_a = node.typeParameters) === null || _a === void 0 ? void 0 : _a.map((param) => param.name.text)) !== null && _b !== void 0 ? _b : [];
6693
6693
  node.members.forEach((member) => {
6694
6694
  if (ts.isPropertySignature(member) && member.type) {
6695
- this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics);
6695
+ this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics, interface_name);
6696
6696
  }
6697
6697
  else if (ts.isIndexSignatureDeclaration(member)) {
6698
- this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics);
6698
+ this.collectTypeDependencies(member.type, type_dependencies, value_dependencies, generics, interface_name);
6699
6699
  member.parameters.forEach((param) => {
6700
- this.collectTypeDependencies(param.type, type_dependencies, value_dependencies, generics);
6700
+ this.collectTypeDependencies(param.type, type_dependencies, value_dependencies, generics, interface_name);
6701
6701
  });
6702
6702
  }
6703
6703
  });
@@ -6709,7 +6709,7 @@ class HoistableInterfaces {
6709
6709
  type_dependencies.add(type_name);
6710
6710
  }
6711
6711
  }
6712
- this.collectTypeDependencies(type, type_dependencies, value_dependencies, generics);
6712
+ this.collectTypeDependencies(type, type_dependencies, value_dependencies, generics, interface_name);
6713
6713
  });
6714
6714
  });
6715
6715
  if (this.module_types.has(interface_name)) {
@@ -6730,7 +6730,7 @@ class HoistableInterfaces {
6730
6730
  const type_dependencies = new Set();
6731
6731
  const value_dependencies = new Set();
6732
6732
  const generics = (_e = (_d = node.typeParameters) === null || _d === void 0 ? void 0 : _d.map((param) => param.name.text)) !== null && _e !== void 0 ? _e : [];
6733
- this.collectTypeDependencies(node.type, type_dependencies, value_dependencies, generics);
6733
+ this.collectTypeDependencies(node.type, type_dependencies, value_dependencies, generics, alias_name);
6734
6734
  if (this.module_types.has(alias_name)) {
6735
6735
  // shadowed; we can't hoist
6736
6736
  this.disallowed_types.add(alias_name);
@@ -6795,7 +6795,7 @@ class HoistableInterfaces {
6795
6795
  else {
6796
6796
  this.props_interface.name = '$$ComponentProps';
6797
6797
  this.props_interface.node = generic_arg;
6798
- this.collectTypeDependencies(generic_arg, this.props_interface.type_deps, this.props_interface.value_deps, []);
6798
+ this.collectTypeDependencies(generic_arg, this.props_interface.type_deps, this.props_interface.value_deps, [], undefined);
6799
6799
  }
6800
6800
  }
6801
6801
  }
@@ -6907,11 +6907,12 @@ class HoistableInterfaces {
6907
6907
  * @param type_dependencies The set to collect type dependencies into.
6908
6908
  * @param value_dependencies The set to collect value dependencies into.
6909
6909
  */
6910
- collectTypeDependencies(type_node, type_dependencies, value_dependencies, generics) {
6910
+ collectTypeDependencies(type_node, type_dependencies, value_dependencies, generics, root_type_name) {
6911
6911
  const walk = (node) => {
6912
6912
  if (ts.isTypeReferenceNode(node)) {
6913
6913
  const type_name = this.getEntityNameRoot(node.typeName);
6914
- if (!generics.includes(type_name)) {
6914
+ const self_reference = type_name === root_type_name;
6915
+ if (!self_reference && !generics.includes(type_name)) {
6915
6916
  type_dependencies.add(type_name);
6916
6917
  }
6917
6918
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte2tsx",
3
- "version": "0.7.53",
3
+ "version": "0.7.54",
4
4
  "description": "Convert Svelte components to TSX for type checking",
5
5
  "author": "The Svelte Community",
6
6
  "license": "MIT",