svelte2tsx 0.7.32 → 0.7.34
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 +22 -4
- package/index.mjs +22 -4
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -6141,6 +6141,17 @@ class HoistableInterfaces {
|
|
|
6141
6141
|
if (ts.isIdentifier(declaration.name)) {
|
|
6142
6142
|
this.disallowed_values.add(declaration.name.text);
|
|
6143
6143
|
}
|
|
6144
|
+
else {
|
|
6145
|
+
const walk = (node) => {
|
|
6146
|
+
if (ts.isIdentifier(node) &&
|
|
6147
|
+
ts.isBindingElement(node.parent) &&
|
|
6148
|
+
node.parent.name === node) {
|
|
6149
|
+
this.disallowed_values.add(node.text);
|
|
6150
|
+
}
|
|
6151
|
+
ts.forEachChild(node, walk);
|
|
6152
|
+
};
|
|
6153
|
+
walk(declaration.name);
|
|
6154
|
+
}
|
|
6144
6155
|
});
|
|
6145
6156
|
}
|
|
6146
6157
|
if (ts.isFunctionDeclaration(node) && node.name) {
|
|
@@ -6200,7 +6211,7 @@ class HoistableInterfaces {
|
|
|
6200
6211
|
}
|
|
6201
6212
|
}
|
|
6202
6213
|
for (const dep of deps.value_deps) {
|
|
6203
|
-
if (this.
|
|
6214
|
+
if (!this.isAllowedReference(dep)) {
|
|
6204
6215
|
this.disallowed_types.add(interface_name);
|
|
6205
6216
|
can_hoist = false;
|
|
6206
6217
|
break;
|
|
@@ -6217,7 +6228,7 @@ class HoistableInterfaces {
|
|
|
6217
6228
|
...this.props_interface.type_deps,
|
|
6218
6229
|
...this.props_interface.value_deps
|
|
6219
6230
|
].every((dep) => {
|
|
6220
|
-
return !this.disallowed_types.has(dep) &&
|
|
6231
|
+
return !this.disallowed_types.has(dep) && this.isAllowedReference(dep);
|
|
6221
6232
|
});
|
|
6222
6233
|
if (can_hoist) {
|
|
6223
6234
|
hoistable_interfaces.set(this.props_interface.name, this.props_interface.node);
|
|
@@ -6261,7 +6272,14 @@ class HoistableInterfaces {
|
|
|
6261
6272
|
}
|
|
6262
6273
|
}
|
|
6263
6274
|
isAllowedReference(reference) {
|
|
6264
|
-
return !this.disallowed_values.has(reference)
|
|
6275
|
+
return !(this.disallowed_values.has(reference) ||
|
|
6276
|
+
reference === '$$props' ||
|
|
6277
|
+
reference === '$$restProps' ||
|
|
6278
|
+
reference === '$$slots' ||
|
|
6279
|
+
// could be a $store reference
|
|
6280
|
+
(reference[0] === '$' &&
|
|
6281
|
+
reference[1] !== '$' &&
|
|
6282
|
+
this.disallowed_values.has(reference.slice(1))));
|
|
6265
6283
|
}
|
|
6266
6284
|
/**
|
|
6267
6285
|
* Collects type and value dependencies from a given TypeNode.
|
|
@@ -7809,7 +7827,7 @@ function svelte2tsx(svelte, options = { parse: compiler.parse }) {
|
|
|
7809
7827
|
if (hoist_to_module) {
|
|
7810
7828
|
str.move(start, end, scriptTag
|
|
7811
7829
|
? scriptTag.start + 1 // +1 because imports are also moved at that position, and we want to move interfaces after imports
|
|
7812
|
-
:
|
|
7830
|
+
: instanceScriptTarget);
|
|
7813
7831
|
}
|
|
7814
7832
|
else if (scriptTag) {
|
|
7815
7833
|
str.move(start, end, renderFunctionStart);
|
package/index.mjs
CHANGED
|
@@ -6121,6 +6121,17 @@ class HoistableInterfaces {
|
|
|
6121
6121
|
if (ts.isIdentifier(declaration.name)) {
|
|
6122
6122
|
this.disallowed_values.add(declaration.name.text);
|
|
6123
6123
|
}
|
|
6124
|
+
else {
|
|
6125
|
+
const walk = (node) => {
|
|
6126
|
+
if (ts.isIdentifier(node) &&
|
|
6127
|
+
ts.isBindingElement(node.parent) &&
|
|
6128
|
+
node.parent.name === node) {
|
|
6129
|
+
this.disallowed_values.add(node.text);
|
|
6130
|
+
}
|
|
6131
|
+
ts.forEachChild(node, walk);
|
|
6132
|
+
};
|
|
6133
|
+
walk(declaration.name);
|
|
6134
|
+
}
|
|
6124
6135
|
});
|
|
6125
6136
|
}
|
|
6126
6137
|
if (ts.isFunctionDeclaration(node) && node.name) {
|
|
@@ -6180,7 +6191,7 @@ class HoistableInterfaces {
|
|
|
6180
6191
|
}
|
|
6181
6192
|
}
|
|
6182
6193
|
for (const dep of deps.value_deps) {
|
|
6183
|
-
if (this.
|
|
6194
|
+
if (!this.isAllowedReference(dep)) {
|
|
6184
6195
|
this.disallowed_types.add(interface_name);
|
|
6185
6196
|
can_hoist = false;
|
|
6186
6197
|
break;
|
|
@@ -6197,7 +6208,7 @@ class HoistableInterfaces {
|
|
|
6197
6208
|
...this.props_interface.type_deps,
|
|
6198
6209
|
...this.props_interface.value_deps
|
|
6199
6210
|
].every((dep) => {
|
|
6200
|
-
return !this.disallowed_types.has(dep) &&
|
|
6211
|
+
return !this.disallowed_types.has(dep) && this.isAllowedReference(dep);
|
|
6201
6212
|
});
|
|
6202
6213
|
if (can_hoist) {
|
|
6203
6214
|
hoistable_interfaces.set(this.props_interface.name, this.props_interface.node);
|
|
@@ -6241,7 +6252,14 @@ class HoistableInterfaces {
|
|
|
6241
6252
|
}
|
|
6242
6253
|
}
|
|
6243
6254
|
isAllowedReference(reference) {
|
|
6244
|
-
return !this.disallowed_values.has(reference)
|
|
6255
|
+
return !(this.disallowed_values.has(reference) ||
|
|
6256
|
+
reference === '$$props' ||
|
|
6257
|
+
reference === '$$restProps' ||
|
|
6258
|
+
reference === '$$slots' ||
|
|
6259
|
+
// could be a $store reference
|
|
6260
|
+
(reference[0] === '$' &&
|
|
6261
|
+
reference[1] !== '$' &&
|
|
6262
|
+
this.disallowed_values.has(reference.slice(1))));
|
|
6245
6263
|
}
|
|
6246
6264
|
/**
|
|
6247
6265
|
* Collects type and value dependencies from a given TypeNode.
|
|
@@ -7789,7 +7807,7 @@ function svelte2tsx(svelte, options = { parse }) {
|
|
|
7789
7807
|
if (hoist_to_module) {
|
|
7790
7808
|
str.move(start, end, scriptTag
|
|
7791
7809
|
? scriptTag.start + 1 // +1 because imports are also moved at that position, and we want to move interfaces after imports
|
|
7792
|
-
:
|
|
7810
|
+
: instanceScriptTarget);
|
|
7793
7811
|
}
|
|
7794
7812
|
else if (scriptTag) {
|
|
7795
7813
|
str.move(start, end, renderFunctionStart);
|