svelte-origin 1.0.0-next.14 → 1.0.0-next.16
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/dist/cli.js +81 -25
- package/dist/index.js +81 -25
- package/dist/plugin.js +81 -25
- package/dist/post-process.js +81 -25
- package/dist/preprocess.js +81 -25
- package/dist/transform/origin-transform.d.ts +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1919,7 +1919,7 @@ function parseObjectMembers(source) {
|
|
|
1919
1919
|
}
|
|
1920
1920
|
|
|
1921
1921
|
// src/transform/origin-transform.ts
|
|
1922
|
-
function transformOriginCalls(s, source, neededImports) {
|
|
1922
|
+
function transformOriginCalls(s, source, neededImports, svelteImports) {
|
|
1923
1923
|
const regex = /\$origin\s*\(/g;
|
|
1924
1924
|
let match;
|
|
1925
1925
|
let changed = false;
|
|
@@ -1935,14 +1935,14 @@ function transformOriginCalls(s, source, neededImports) {
|
|
|
1935
1935
|
continue;
|
|
1936
1936
|
}
|
|
1937
1937
|
const definitionContent = source.slice(openParenIndex + 1, closeParenIndex);
|
|
1938
|
-
const transformed = transformOriginDefinition(definitionContent);
|
|
1938
|
+
const transformed = transformOriginDefinition(definitionContent, svelteImports);
|
|
1939
1939
|
s.overwrite(startIndex, closeParenIndex + 1, `__createOrigin(${transformed})`);
|
|
1940
1940
|
neededImports.add("__createOrigin");
|
|
1941
1941
|
changed = true;
|
|
1942
1942
|
}
|
|
1943
1943
|
return changed;
|
|
1944
1944
|
}
|
|
1945
|
-
function transformOriginDefinition(content) {
|
|
1945
|
+
function transformOriginDefinition(content, svelteImports) {
|
|
1946
1946
|
let parents = [];
|
|
1947
1947
|
let bodyContent = content.trim();
|
|
1948
1948
|
let initCallback = null;
|
|
@@ -2007,7 +2007,7 @@ function transformOriginDefinition(content) {
|
|
|
2007
2007
|
}
|
|
2008
2008
|
}
|
|
2009
2009
|
const attrDetails = parseAttrsSource(attrsContent);
|
|
2010
|
-
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName);
|
|
2010
|
+
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName, svelteImports);
|
|
2011
2011
|
const parentsCode = parents.length > 0 ? `[${parents.join(", ")}]` : "undefined";
|
|
2012
2012
|
let configCode = `{
|
|
2013
2013
|
__attrSchema: ${attrSchemaCode},
|
|
@@ -2027,19 +2027,35 @@ ${createFnBody}
|
|
|
2027
2027
|
}`;
|
|
2028
2028
|
return configCode;
|
|
2029
2029
|
}
|
|
2030
|
-
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props") {
|
|
2030
|
+
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props", svelteImports) {
|
|
2031
2031
|
let body = content.trim();
|
|
2032
2032
|
const hasParents = parents.length > 0;
|
|
2033
|
+
const attrStateDeclarations = [];
|
|
2034
|
+
const attrSyncEffects = [];
|
|
2033
2035
|
const attrGettersSetters = [];
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} ?? ${attr.defaultValue} }`);
|
|
2037
|
-
} else {
|
|
2038
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} }`);
|
|
2039
|
-
}
|
|
2040
|
-
attrGettersSetters.push(`set ${attr.key}(v) { __inputAttrs.${attr.key} = v }`);
|
|
2036
|
+
if (attrDetails.length > 0 && svelteImports) {
|
|
2037
|
+
svelteImports.add("untrack");
|
|
2041
2038
|
}
|
|
2042
|
-
const
|
|
2039
|
+
for (const attr of attrDetails) {
|
|
2040
|
+
const defaultExpr = attr.hasDefault ? ` ?? ${attr.defaultValue}` : "";
|
|
2041
|
+
attrStateDeclarations.push(`let __attr_${attr.key} = $state(__inputAttrs.${attr.key}${defaultExpr})`);
|
|
2042
|
+
attrSyncEffects.push(`$effect(() => {
|
|
2043
|
+
const __parentVal = __inputAttrs.${attr.key}
|
|
2044
|
+
const __currentVal = untrack(() => __attr_${attr.key})
|
|
2045
|
+
if (__parentVal !== __currentVal) {
|
|
2046
|
+
__attr_${attr.key} = __parentVal${defaultExpr}
|
|
2047
|
+
}
|
|
2048
|
+
})`);
|
|
2049
|
+
attrGettersSetters.push(`get ${attr.key}() { return __attr_${attr.key} }`);
|
|
2050
|
+
attrGettersSetters.push(`set ${attr.key}(v) { __attr_${attr.key} = v; __inputAttrs.${attr.key} = v }`);
|
|
2051
|
+
}
|
|
2052
|
+
const attrStateSection = attrStateDeclarations.length > 0 ? attrStateDeclarations.join(`
|
|
2053
|
+
`) + `
|
|
2054
|
+
` : "";
|
|
2055
|
+
const attrEffectSection = attrSyncEffects.length > 0 ? attrSyncEffects.join(`
|
|
2056
|
+
`) + `
|
|
2057
|
+
` : "";
|
|
2058
|
+
const propsObjectCode = attrGettersSetters.length > 0 ? `${attrStateSection}${attrEffectSection}const __props = {
|
|
2043
2059
|
${attrGettersSetters.join(`,
|
|
2044
2060
|
`)}
|
|
2045
2061
|
}` : ` const __props = __inputAttrs`;
|
|
@@ -2056,10 +2072,17 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2056
2072
|
const members = parseObjectMembers(body);
|
|
2057
2073
|
const derivedNames = new Set;
|
|
2058
2074
|
const stateNames = new Set;
|
|
2075
|
+
const valueNames = new Set;
|
|
2076
|
+
const methodNames = new Set;
|
|
2059
2077
|
for (const member of members) {
|
|
2060
2078
|
const { key, value, isGetter, isMethod, isSetter } = member;
|
|
2061
2079
|
if (!isGetter && !isMethod && !isSetter && value.startsWith("$state")) {
|
|
2062
2080
|
stateNames.add(key);
|
|
2081
|
+
} else if (!isGetter && !isMethod && !isSetter) {
|
|
2082
|
+
valueNames.add(key);
|
|
2083
|
+
}
|
|
2084
|
+
if (isMethod) {
|
|
2085
|
+
methodNames.add(key);
|
|
2063
2086
|
}
|
|
2064
2087
|
if (isGetter && /return\s+\$derived(\.by)?\s*\(/.test(value)) {
|
|
2065
2088
|
derivedNames.add(key);
|
|
@@ -2121,7 +2144,10 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2121
2144
|
if (stateNames.has(name)) {
|
|
2122
2145
|
return name;
|
|
2123
2146
|
}
|
|
2124
|
-
|
|
2147
|
+
if (valueNames.has(name)) {
|
|
2148
|
+
return name;
|
|
2149
|
+
}
|
|
2150
|
+
return `this.${name}`;
|
|
2125
2151
|
});
|
|
2126
2152
|
const asyncPrefix = isAsync ? "async " : "";
|
|
2127
2153
|
const generatorPrefix = isGenerator ? "*" : "";
|
|
@@ -2146,7 +2172,9 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2146
2172
|
} else if (isMethod) {
|
|
2147
2173
|
returnMembers.push(`${asyncPrefix}${generatorPrefix}${outputKey}${transformedValue}`);
|
|
2148
2174
|
} else {
|
|
2149
|
-
|
|
2175
|
+
stateDeclarations.push(` let ${key} = ${transformedValue}`);
|
|
2176
|
+
returnMembers.push(`get ${key}() { return ${key} }`);
|
|
2177
|
+
returnMembers.push(`set ${key}(v) { ${key} = v }`);
|
|
2150
2178
|
}
|
|
2151
2179
|
}
|
|
2152
2180
|
const stateSection = stateDeclarations.length > 0 ? stateDeclarations.join(`
|
|
@@ -2716,9 +2744,10 @@ function transformScript(source, options = {}) {
|
|
|
2716
2744
|
const { isComponent = false } = options;
|
|
2717
2745
|
let changed = false;
|
|
2718
2746
|
const neededImports = new Set;
|
|
2747
|
+
const svelteImports = new Set;
|
|
2719
2748
|
let propsTypeDeclaration = null;
|
|
2720
2749
|
if (!isComponent) {
|
|
2721
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2750
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2722
2751
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2723
2752
|
}
|
|
2724
2753
|
if (isComponent) {
|
|
@@ -2757,10 +2786,17 @@ function transformScript(source, options = {}) {
|
|
|
2757
2786
|
`);
|
|
2758
2787
|
}
|
|
2759
2788
|
}
|
|
2760
|
-
} else if (neededImports.size > 0) {
|
|
2761
|
-
|
|
2762
|
-
|
|
2789
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2790
|
+
if (neededImports.size > 0) {
|
|
2791
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2792
|
+
s.prepend(importStatement + `
|
|
2793
|
+
`);
|
|
2794
|
+
}
|
|
2795
|
+
if (svelteImports.size > 0) {
|
|
2796
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2797
|
+
s.prepend(svelteImportStatement + `
|
|
2763
2798
|
`);
|
|
2799
|
+
}
|
|
2764
2800
|
}
|
|
2765
2801
|
if (!changed) {
|
|
2766
2802
|
return { code: source, changed: false };
|
|
@@ -2779,9 +2815,10 @@ async function transformScriptAsync(source, options) {
|
|
|
2779
2815
|
const { isComponent = false, schemaResolver } = options;
|
|
2780
2816
|
let changed = false;
|
|
2781
2817
|
const neededImports = new Set;
|
|
2818
|
+
const svelteImports = new Set;
|
|
2782
2819
|
let propsTypeDeclaration = null;
|
|
2783
2820
|
if (!isComponent) {
|
|
2784
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2821
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2785
2822
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2786
2823
|
}
|
|
2787
2824
|
if (isComponent) {
|
|
@@ -2820,10 +2857,17 @@ async function transformScriptAsync(source, options) {
|
|
|
2820
2857
|
`);
|
|
2821
2858
|
}
|
|
2822
2859
|
}
|
|
2823
|
-
} else if (neededImports.size > 0) {
|
|
2824
|
-
|
|
2825
|
-
|
|
2860
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2861
|
+
if (neededImports.size > 0) {
|
|
2862
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2863
|
+
s.prepend(importStatement + `
|
|
2864
|
+
`);
|
|
2865
|
+
}
|
|
2866
|
+
if (svelteImports.size > 0) {
|
|
2867
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2868
|
+
s.prepend(svelteImportStatement + `
|
|
2826
2869
|
`);
|
|
2870
|
+
}
|
|
2827
2871
|
}
|
|
2828
2872
|
if (!changed) {
|
|
2829
2873
|
return { code: source, changed: false };
|
|
@@ -2842,9 +2886,10 @@ async function transformScriptContent(source, options) {
|
|
|
2842
2886
|
const { isComponent = false, schemaResolver } = options;
|
|
2843
2887
|
let changed = false;
|
|
2844
2888
|
const neededImports = new Set;
|
|
2889
|
+
const svelteImports = new Set;
|
|
2845
2890
|
let propsTypeDeclaration = null;
|
|
2846
2891
|
if (!isComponent) {
|
|
2847
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2892
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2848
2893
|
}
|
|
2849
2894
|
if (isComponent) {
|
|
2850
2895
|
const result = await transformAttrsOriginCalls(s, source, neededImports, schemaResolver);
|
|
@@ -2857,11 +2902,22 @@ async function transformScriptContent(source, options) {
|
|
|
2857
2902
|
if (neededImports.size > 0) {
|
|
2858
2903
|
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2859
2904
|
s.prepend(importStatement + `
|
|
2905
|
+
`);
|
|
2906
|
+
}
|
|
2907
|
+
if (svelteImports.size > 0) {
|
|
2908
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2909
|
+
s.prepend(svelteImportStatement + `
|
|
2860
2910
|
`);
|
|
2861
2911
|
}
|
|
2862
2912
|
if (propsTypeDeclaration) {
|
|
2863
2913
|
const afterImports = findPropsInjectionPosition(source);
|
|
2864
|
-
|
|
2914
|
+
let offset = 0;
|
|
2915
|
+
if (neededImports.size > 0) {
|
|
2916
|
+
offset += generateRuntimeImport([...neededImports]).length + 1;
|
|
2917
|
+
}
|
|
2918
|
+
if (svelteImports.size > 0) {
|
|
2919
|
+
offset += `import { ${[...svelteImports].join(", ")} } from 'svelte'`.length + 1;
|
|
2920
|
+
}
|
|
2865
2921
|
s.appendLeft(afterImports + offset, propsTypeDeclaration + `
|
|
2866
2922
|
`);
|
|
2867
2923
|
}
|
package/dist/index.js
CHANGED
|
@@ -5969,7 +5969,7 @@ function parseObjectMembers(source2) {
|
|
|
5969
5969
|
}
|
|
5970
5970
|
|
|
5971
5971
|
// src/transform/origin-transform.ts
|
|
5972
|
-
function transformOriginCalls(s, source2, neededImports) {
|
|
5972
|
+
function transformOriginCalls(s, source2, neededImports, svelteImports) {
|
|
5973
5973
|
const regex = /\$origin\s*\(/g;
|
|
5974
5974
|
let match;
|
|
5975
5975
|
let changed = false;
|
|
@@ -5985,14 +5985,14 @@ function transformOriginCalls(s, source2, neededImports) {
|
|
|
5985
5985
|
continue;
|
|
5986
5986
|
}
|
|
5987
5987
|
const definitionContent = source2.slice(openParenIndex + 1, closeParenIndex);
|
|
5988
|
-
const transformed = transformOriginDefinition(definitionContent);
|
|
5988
|
+
const transformed = transformOriginDefinition(definitionContent, svelteImports);
|
|
5989
5989
|
s.overwrite(startIndex, closeParenIndex + 1, `__createOrigin(${transformed})`);
|
|
5990
5990
|
neededImports.add("__createOrigin");
|
|
5991
5991
|
changed = true;
|
|
5992
5992
|
}
|
|
5993
5993
|
return changed;
|
|
5994
5994
|
}
|
|
5995
|
-
function transformOriginDefinition(content) {
|
|
5995
|
+
function transformOriginDefinition(content, svelteImports) {
|
|
5996
5996
|
let parents = [];
|
|
5997
5997
|
let bodyContent = content.trim();
|
|
5998
5998
|
let initCallback = null;
|
|
@@ -6057,7 +6057,7 @@ function transformOriginDefinition(content) {
|
|
|
6057
6057
|
}
|
|
6058
6058
|
}
|
|
6059
6059
|
const attrDetails = parseAttrsSource(attrsContent);
|
|
6060
|
-
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName);
|
|
6060
|
+
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName, svelteImports);
|
|
6061
6061
|
const parentsCode = parents.length > 0 ? `[${parents.join(", ")}]` : "undefined";
|
|
6062
6062
|
let configCode = `{
|
|
6063
6063
|
__attrSchema: ${attrSchemaCode},
|
|
@@ -6077,19 +6077,35 @@ ${createFnBody}
|
|
|
6077
6077
|
}`;
|
|
6078
6078
|
return configCode;
|
|
6079
6079
|
}
|
|
6080
|
-
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props") {
|
|
6080
|
+
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props", svelteImports) {
|
|
6081
6081
|
let body = content.trim();
|
|
6082
6082
|
const hasParents = parents.length > 0;
|
|
6083
|
+
const attrStateDeclarations = [];
|
|
6084
|
+
const attrSyncEffects = [];
|
|
6083
6085
|
const attrGettersSetters = [];
|
|
6084
|
-
|
|
6085
|
-
|
|
6086
|
-
attrGettersSetters.push(`get ${attr2.key}() { return __inputAttrs.${attr2.key} ?? ${attr2.defaultValue} }`);
|
|
6087
|
-
} else {
|
|
6088
|
-
attrGettersSetters.push(`get ${attr2.key}() { return __inputAttrs.${attr2.key} }`);
|
|
6089
|
-
}
|
|
6090
|
-
attrGettersSetters.push(`set ${attr2.key}(v) { __inputAttrs.${attr2.key} = v }`);
|
|
6086
|
+
if (attrDetails.length > 0 && svelteImports) {
|
|
6087
|
+
svelteImports.add("untrack");
|
|
6091
6088
|
}
|
|
6092
|
-
const
|
|
6089
|
+
for (const attr2 of attrDetails) {
|
|
6090
|
+
const defaultExpr = attr2.hasDefault ? ` ?? ${attr2.defaultValue}` : "";
|
|
6091
|
+
attrStateDeclarations.push(`let __attr_${attr2.key} = $state(__inputAttrs.${attr2.key}${defaultExpr})`);
|
|
6092
|
+
attrSyncEffects.push(`$effect(() => {
|
|
6093
|
+
const __parentVal = __inputAttrs.${attr2.key}
|
|
6094
|
+
const __currentVal = untrack(() => __attr_${attr2.key})
|
|
6095
|
+
if (__parentVal !== __currentVal) {
|
|
6096
|
+
__attr_${attr2.key} = __parentVal${defaultExpr}
|
|
6097
|
+
}
|
|
6098
|
+
})`);
|
|
6099
|
+
attrGettersSetters.push(`get ${attr2.key}() { return __attr_${attr2.key} }`);
|
|
6100
|
+
attrGettersSetters.push(`set ${attr2.key}(v) { __attr_${attr2.key} = v; __inputAttrs.${attr2.key} = v }`);
|
|
6101
|
+
}
|
|
6102
|
+
const attrStateSection = attrStateDeclarations.length > 0 ? attrStateDeclarations.join(`
|
|
6103
|
+
`) + `
|
|
6104
|
+
` : "";
|
|
6105
|
+
const attrEffectSection = attrSyncEffects.length > 0 ? attrSyncEffects.join(`
|
|
6106
|
+
`) + `
|
|
6107
|
+
` : "";
|
|
6108
|
+
const propsObjectCode = attrGettersSetters.length > 0 ? `${attrStateSection}${attrEffectSection}const __props = {
|
|
6093
6109
|
${attrGettersSetters.join(`,
|
|
6094
6110
|
`)}
|
|
6095
6111
|
}` : ` const __props = __inputAttrs`;
|
|
@@ -6106,10 +6122,17 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
6106
6122
|
const members = parseObjectMembers(body);
|
|
6107
6123
|
const derivedNames = new Set;
|
|
6108
6124
|
const stateNames = new Set;
|
|
6125
|
+
const valueNames = new Set;
|
|
6126
|
+
const methodNames = new Set;
|
|
6109
6127
|
for (const member of members) {
|
|
6110
6128
|
const { key: key2, value, isGetter, isMethod, isSetter } = member;
|
|
6111
6129
|
if (!isGetter && !isMethod && !isSetter && value.startsWith("$state")) {
|
|
6112
6130
|
stateNames.add(key2);
|
|
6131
|
+
} else if (!isGetter && !isMethod && !isSetter) {
|
|
6132
|
+
valueNames.add(key2);
|
|
6133
|
+
}
|
|
6134
|
+
if (isMethod) {
|
|
6135
|
+
methodNames.add(key2);
|
|
6113
6136
|
}
|
|
6114
6137
|
if (isGetter && /return\s+\$derived(\.by)?\s*\(/.test(value)) {
|
|
6115
6138
|
derivedNames.add(key2);
|
|
@@ -6171,7 +6194,10 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
6171
6194
|
if (stateNames.has(name)) {
|
|
6172
6195
|
return name;
|
|
6173
6196
|
}
|
|
6174
|
-
|
|
6197
|
+
if (valueNames.has(name)) {
|
|
6198
|
+
return name;
|
|
6199
|
+
}
|
|
6200
|
+
return `this.${name}`;
|
|
6175
6201
|
});
|
|
6176
6202
|
const asyncPrefix = isAsync ? "async " : "";
|
|
6177
6203
|
const generatorPrefix = isGenerator ? "*" : "";
|
|
@@ -6196,7 +6222,9 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
6196
6222
|
} else if (isMethod) {
|
|
6197
6223
|
returnMembers.push(`${asyncPrefix}${generatorPrefix}${outputKey}${transformedValue}`);
|
|
6198
6224
|
} else {
|
|
6199
|
-
|
|
6225
|
+
stateDeclarations.push(` let ${key2} = ${transformedValue}`);
|
|
6226
|
+
returnMembers.push(`get ${key2}() { return ${key2} }`);
|
|
6227
|
+
returnMembers.push(`set ${key2}(v) { ${key2} = v }`);
|
|
6200
6228
|
}
|
|
6201
6229
|
}
|
|
6202
6230
|
const stateSection = stateDeclarations.length > 0 ? stateDeclarations.join(`
|
|
@@ -6497,9 +6525,10 @@ function transformScript(source2, options = {}) {
|
|
|
6497
6525
|
const { isComponent = false } = options;
|
|
6498
6526
|
let changed = false;
|
|
6499
6527
|
const neededImports = new Set;
|
|
6528
|
+
const svelteImports = new Set;
|
|
6500
6529
|
let propsTypeDeclaration = null;
|
|
6501
6530
|
if (!isComponent) {
|
|
6502
|
-
changed = transformOriginCalls(s, source2, neededImports) || changed;
|
|
6531
|
+
changed = transformOriginCalls(s, source2, neededImports, svelteImports) || changed;
|
|
6503
6532
|
changed = transformStandaloneAttrsCalls(s, source2, neededImports) || changed;
|
|
6504
6533
|
}
|
|
6505
6534
|
if (isComponent) {
|
|
@@ -6538,10 +6567,17 @@ function transformScript(source2, options = {}) {
|
|
|
6538
6567
|
`);
|
|
6539
6568
|
}
|
|
6540
6569
|
}
|
|
6541
|
-
} else if (neededImports.size > 0) {
|
|
6542
|
-
|
|
6543
|
-
|
|
6570
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
6571
|
+
if (neededImports.size > 0) {
|
|
6572
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
6573
|
+
s.prepend(importStatement + `
|
|
6574
|
+
`);
|
|
6575
|
+
}
|
|
6576
|
+
if (svelteImports.size > 0) {
|
|
6577
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
6578
|
+
s.prepend(svelteImportStatement + `
|
|
6544
6579
|
`);
|
|
6580
|
+
}
|
|
6545
6581
|
}
|
|
6546
6582
|
if (!changed) {
|
|
6547
6583
|
return { code: source2, changed: false };
|
|
@@ -6560,9 +6596,10 @@ async function transformScriptAsync(source2, options) {
|
|
|
6560
6596
|
const { isComponent = false, schemaResolver } = options;
|
|
6561
6597
|
let changed = false;
|
|
6562
6598
|
const neededImports = new Set;
|
|
6599
|
+
const svelteImports = new Set;
|
|
6563
6600
|
let propsTypeDeclaration = null;
|
|
6564
6601
|
if (!isComponent) {
|
|
6565
|
-
changed = transformOriginCalls(s, source2, neededImports) || changed;
|
|
6602
|
+
changed = transformOriginCalls(s, source2, neededImports, svelteImports) || changed;
|
|
6566
6603
|
changed = transformStandaloneAttrsCalls(s, source2, neededImports) || changed;
|
|
6567
6604
|
}
|
|
6568
6605
|
if (isComponent) {
|
|
@@ -6601,10 +6638,17 @@ async function transformScriptAsync(source2, options) {
|
|
|
6601
6638
|
`);
|
|
6602
6639
|
}
|
|
6603
6640
|
}
|
|
6604
|
-
} else if (neededImports.size > 0) {
|
|
6605
|
-
|
|
6606
|
-
|
|
6641
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
6642
|
+
if (neededImports.size > 0) {
|
|
6643
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
6644
|
+
s.prepend(importStatement + `
|
|
6645
|
+
`);
|
|
6646
|
+
}
|
|
6647
|
+
if (svelteImports.size > 0) {
|
|
6648
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
6649
|
+
s.prepend(svelteImportStatement + `
|
|
6607
6650
|
`);
|
|
6651
|
+
}
|
|
6608
6652
|
}
|
|
6609
6653
|
if (!changed) {
|
|
6610
6654
|
return { code: source2, changed: false };
|
|
@@ -6623,9 +6667,10 @@ async function transformScriptContent(source2, options) {
|
|
|
6623
6667
|
const { isComponent = false, schemaResolver } = options;
|
|
6624
6668
|
let changed = false;
|
|
6625
6669
|
const neededImports = new Set;
|
|
6670
|
+
const svelteImports = new Set;
|
|
6626
6671
|
let propsTypeDeclaration = null;
|
|
6627
6672
|
if (!isComponent) {
|
|
6628
|
-
changed = transformOriginCalls(s, source2, neededImports) || changed;
|
|
6673
|
+
changed = transformOriginCalls(s, source2, neededImports, svelteImports) || changed;
|
|
6629
6674
|
}
|
|
6630
6675
|
if (isComponent) {
|
|
6631
6676
|
const result = await transformAttrsOriginCalls(s, source2, neededImports, schemaResolver);
|
|
@@ -6638,11 +6683,22 @@ async function transformScriptContent(source2, options) {
|
|
|
6638
6683
|
if (neededImports.size > 0) {
|
|
6639
6684
|
const importStatement = generateRuntimeImport([...neededImports]);
|
|
6640
6685
|
s.prepend(importStatement + `
|
|
6686
|
+
`);
|
|
6687
|
+
}
|
|
6688
|
+
if (svelteImports.size > 0) {
|
|
6689
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
6690
|
+
s.prepend(svelteImportStatement + `
|
|
6641
6691
|
`);
|
|
6642
6692
|
}
|
|
6643
6693
|
if (propsTypeDeclaration) {
|
|
6644
6694
|
const afterImports = findPropsInjectionPosition(source2);
|
|
6645
|
-
|
|
6695
|
+
let offset = 0;
|
|
6696
|
+
if (neededImports.size > 0) {
|
|
6697
|
+
offset += generateRuntimeImport([...neededImports]).length + 1;
|
|
6698
|
+
}
|
|
6699
|
+
if (svelteImports.size > 0) {
|
|
6700
|
+
offset += `import { ${[...svelteImports].join(", ")} } from 'svelte'`.length + 1;
|
|
6701
|
+
}
|
|
6646
6702
|
s.appendLeft(afterImports + offset, propsTypeDeclaration + `
|
|
6647
6703
|
`);
|
|
6648
6704
|
}
|
package/dist/plugin.js
CHANGED
|
@@ -1913,7 +1913,7 @@ function parseObjectMembers(source) {
|
|
|
1913
1913
|
}
|
|
1914
1914
|
|
|
1915
1915
|
// src/transform/origin-transform.ts
|
|
1916
|
-
function transformOriginCalls(s, source, neededImports) {
|
|
1916
|
+
function transformOriginCalls(s, source, neededImports, svelteImports) {
|
|
1917
1917
|
const regex = /\$origin\s*\(/g;
|
|
1918
1918
|
let match;
|
|
1919
1919
|
let changed = false;
|
|
@@ -1929,14 +1929,14 @@ function transformOriginCalls(s, source, neededImports) {
|
|
|
1929
1929
|
continue;
|
|
1930
1930
|
}
|
|
1931
1931
|
const definitionContent = source.slice(openParenIndex + 1, closeParenIndex);
|
|
1932
|
-
const transformed = transformOriginDefinition(definitionContent);
|
|
1932
|
+
const transformed = transformOriginDefinition(definitionContent, svelteImports);
|
|
1933
1933
|
s.overwrite(startIndex, closeParenIndex + 1, `__createOrigin(${transformed})`);
|
|
1934
1934
|
neededImports.add("__createOrigin");
|
|
1935
1935
|
changed = true;
|
|
1936
1936
|
}
|
|
1937
1937
|
return changed;
|
|
1938
1938
|
}
|
|
1939
|
-
function transformOriginDefinition(content) {
|
|
1939
|
+
function transformOriginDefinition(content, svelteImports) {
|
|
1940
1940
|
let parents = [];
|
|
1941
1941
|
let bodyContent = content.trim();
|
|
1942
1942
|
let initCallback = null;
|
|
@@ -2001,7 +2001,7 @@ function transformOriginDefinition(content) {
|
|
|
2001
2001
|
}
|
|
2002
2002
|
}
|
|
2003
2003
|
const attrDetails = parseAttrsSource(attrsContent);
|
|
2004
|
-
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName);
|
|
2004
|
+
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName, svelteImports);
|
|
2005
2005
|
const parentsCode = parents.length > 0 ? `[${parents.join(", ")}]` : "undefined";
|
|
2006
2006
|
let configCode = `{
|
|
2007
2007
|
__attrSchema: ${attrSchemaCode},
|
|
@@ -2021,19 +2021,35 @@ ${createFnBody}
|
|
|
2021
2021
|
}`;
|
|
2022
2022
|
return configCode;
|
|
2023
2023
|
}
|
|
2024
|
-
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props") {
|
|
2024
|
+
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props", svelteImports) {
|
|
2025
2025
|
let body = content.trim();
|
|
2026
2026
|
const hasParents = parents.length > 0;
|
|
2027
|
+
const attrStateDeclarations = [];
|
|
2028
|
+
const attrSyncEffects = [];
|
|
2027
2029
|
const attrGettersSetters = [];
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} ?? ${attr.defaultValue} }`);
|
|
2031
|
-
} else {
|
|
2032
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} }`);
|
|
2033
|
-
}
|
|
2034
|
-
attrGettersSetters.push(`set ${attr.key}(v) { __inputAttrs.${attr.key} = v }`);
|
|
2030
|
+
if (attrDetails.length > 0 && svelteImports) {
|
|
2031
|
+
svelteImports.add("untrack");
|
|
2035
2032
|
}
|
|
2036
|
-
const
|
|
2033
|
+
for (const attr of attrDetails) {
|
|
2034
|
+
const defaultExpr = attr.hasDefault ? ` ?? ${attr.defaultValue}` : "";
|
|
2035
|
+
attrStateDeclarations.push(`let __attr_${attr.key} = $state(__inputAttrs.${attr.key}${defaultExpr})`);
|
|
2036
|
+
attrSyncEffects.push(`$effect(() => {
|
|
2037
|
+
const __parentVal = __inputAttrs.${attr.key}
|
|
2038
|
+
const __currentVal = untrack(() => __attr_${attr.key})
|
|
2039
|
+
if (__parentVal !== __currentVal) {
|
|
2040
|
+
__attr_${attr.key} = __parentVal${defaultExpr}
|
|
2041
|
+
}
|
|
2042
|
+
})`);
|
|
2043
|
+
attrGettersSetters.push(`get ${attr.key}() { return __attr_${attr.key} }`);
|
|
2044
|
+
attrGettersSetters.push(`set ${attr.key}(v) { __attr_${attr.key} = v; __inputAttrs.${attr.key} = v }`);
|
|
2045
|
+
}
|
|
2046
|
+
const attrStateSection = attrStateDeclarations.length > 0 ? attrStateDeclarations.join(`
|
|
2047
|
+
`) + `
|
|
2048
|
+
` : "";
|
|
2049
|
+
const attrEffectSection = attrSyncEffects.length > 0 ? attrSyncEffects.join(`
|
|
2050
|
+
`) + `
|
|
2051
|
+
` : "";
|
|
2052
|
+
const propsObjectCode = attrGettersSetters.length > 0 ? `${attrStateSection}${attrEffectSection}const __props = {
|
|
2037
2053
|
${attrGettersSetters.join(`,
|
|
2038
2054
|
`)}
|
|
2039
2055
|
}` : ` const __props = __inputAttrs`;
|
|
@@ -2050,10 +2066,17 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2050
2066
|
const members = parseObjectMembers(body);
|
|
2051
2067
|
const derivedNames = new Set;
|
|
2052
2068
|
const stateNames = new Set;
|
|
2069
|
+
const valueNames = new Set;
|
|
2070
|
+
const methodNames = new Set;
|
|
2053
2071
|
for (const member of members) {
|
|
2054
2072
|
const { key, value, isGetter, isMethod, isSetter } = member;
|
|
2055
2073
|
if (!isGetter && !isMethod && !isSetter && value.startsWith("$state")) {
|
|
2056
2074
|
stateNames.add(key);
|
|
2075
|
+
} else if (!isGetter && !isMethod && !isSetter) {
|
|
2076
|
+
valueNames.add(key);
|
|
2077
|
+
}
|
|
2078
|
+
if (isMethod) {
|
|
2079
|
+
methodNames.add(key);
|
|
2057
2080
|
}
|
|
2058
2081
|
if (isGetter && /return\s+\$derived(\.by)?\s*\(/.test(value)) {
|
|
2059
2082
|
derivedNames.add(key);
|
|
@@ -2115,7 +2138,10 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2115
2138
|
if (stateNames.has(name)) {
|
|
2116
2139
|
return name;
|
|
2117
2140
|
}
|
|
2118
|
-
|
|
2141
|
+
if (valueNames.has(name)) {
|
|
2142
|
+
return name;
|
|
2143
|
+
}
|
|
2144
|
+
return `this.${name}`;
|
|
2119
2145
|
});
|
|
2120
2146
|
const asyncPrefix = isAsync ? "async " : "";
|
|
2121
2147
|
const generatorPrefix = isGenerator ? "*" : "";
|
|
@@ -2140,7 +2166,9 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2140
2166
|
} else if (isMethod) {
|
|
2141
2167
|
returnMembers.push(`${asyncPrefix}${generatorPrefix}${outputKey}${transformedValue}`);
|
|
2142
2168
|
} else {
|
|
2143
|
-
|
|
2169
|
+
stateDeclarations.push(` let ${key} = ${transformedValue}`);
|
|
2170
|
+
returnMembers.push(`get ${key}() { return ${key} }`);
|
|
2171
|
+
returnMembers.push(`set ${key}(v) { ${key} = v }`);
|
|
2144
2172
|
}
|
|
2145
2173
|
}
|
|
2146
2174
|
const stateSection = stateDeclarations.length > 0 ? stateDeclarations.join(`
|
|
@@ -2710,9 +2738,10 @@ function transformScript(source, options = {}) {
|
|
|
2710
2738
|
const { isComponent = false } = options;
|
|
2711
2739
|
let changed = false;
|
|
2712
2740
|
const neededImports = new Set;
|
|
2741
|
+
const svelteImports = new Set;
|
|
2713
2742
|
let propsTypeDeclaration = null;
|
|
2714
2743
|
if (!isComponent) {
|
|
2715
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2744
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2716
2745
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2717
2746
|
}
|
|
2718
2747
|
if (isComponent) {
|
|
@@ -2751,10 +2780,17 @@ function transformScript(source, options = {}) {
|
|
|
2751
2780
|
`);
|
|
2752
2781
|
}
|
|
2753
2782
|
}
|
|
2754
|
-
} else if (neededImports.size > 0) {
|
|
2755
|
-
|
|
2756
|
-
|
|
2783
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2784
|
+
if (neededImports.size > 0) {
|
|
2785
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2786
|
+
s.prepend(importStatement + `
|
|
2787
|
+
`);
|
|
2788
|
+
}
|
|
2789
|
+
if (svelteImports.size > 0) {
|
|
2790
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2791
|
+
s.prepend(svelteImportStatement + `
|
|
2757
2792
|
`);
|
|
2793
|
+
}
|
|
2758
2794
|
}
|
|
2759
2795
|
if (!changed) {
|
|
2760
2796
|
return { code: source, changed: false };
|
|
@@ -2773,9 +2809,10 @@ async function transformScriptAsync(source, options) {
|
|
|
2773
2809
|
const { isComponent = false, schemaResolver } = options;
|
|
2774
2810
|
let changed = false;
|
|
2775
2811
|
const neededImports = new Set;
|
|
2812
|
+
const svelteImports = new Set;
|
|
2776
2813
|
let propsTypeDeclaration = null;
|
|
2777
2814
|
if (!isComponent) {
|
|
2778
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2815
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2779
2816
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2780
2817
|
}
|
|
2781
2818
|
if (isComponent) {
|
|
@@ -2814,10 +2851,17 @@ async function transformScriptAsync(source, options) {
|
|
|
2814
2851
|
`);
|
|
2815
2852
|
}
|
|
2816
2853
|
}
|
|
2817
|
-
} else if (neededImports.size > 0) {
|
|
2818
|
-
|
|
2819
|
-
|
|
2854
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2855
|
+
if (neededImports.size > 0) {
|
|
2856
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2857
|
+
s.prepend(importStatement + `
|
|
2858
|
+
`);
|
|
2859
|
+
}
|
|
2860
|
+
if (svelteImports.size > 0) {
|
|
2861
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2862
|
+
s.prepend(svelteImportStatement + `
|
|
2820
2863
|
`);
|
|
2864
|
+
}
|
|
2821
2865
|
}
|
|
2822
2866
|
if (!changed) {
|
|
2823
2867
|
return { code: source, changed: false };
|
|
@@ -2836,9 +2880,10 @@ async function transformScriptContent(source, options) {
|
|
|
2836
2880
|
const { isComponent = false, schemaResolver } = options;
|
|
2837
2881
|
let changed = false;
|
|
2838
2882
|
const neededImports = new Set;
|
|
2883
|
+
const svelteImports = new Set;
|
|
2839
2884
|
let propsTypeDeclaration = null;
|
|
2840
2885
|
if (!isComponent) {
|
|
2841
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2886
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2842
2887
|
}
|
|
2843
2888
|
if (isComponent) {
|
|
2844
2889
|
const result = await transformAttrsOriginCalls(s, source, neededImports, schemaResolver);
|
|
@@ -2851,11 +2896,22 @@ async function transformScriptContent(source, options) {
|
|
|
2851
2896
|
if (neededImports.size > 0) {
|
|
2852
2897
|
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2853
2898
|
s.prepend(importStatement + `
|
|
2899
|
+
`);
|
|
2900
|
+
}
|
|
2901
|
+
if (svelteImports.size > 0) {
|
|
2902
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2903
|
+
s.prepend(svelteImportStatement + `
|
|
2854
2904
|
`);
|
|
2855
2905
|
}
|
|
2856
2906
|
if (propsTypeDeclaration) {
|
|
2857
2907
|
const afterImports = findPropsInjectionPosition(source);
|
|
2858
|
-
|
|
2908
|
+
let offset = 0;
|
|
2909
|
+
if (neededImports.size > 0) {
|
|
2910
|
+
offset += generateRuntimeImport([...neededImports]).length + 1;
|
|
2911
|
+
}
|
|
2912
|
+
if (svelteImports.size > 0) {
|
|
2913
|
+
offset += `import { ${[...svelteImports].join(", ")} } from 'svelte'`.length + 1;
|
|
2914
|
+
}
|
|
2859
2915
|
s.appendLeft(afterImports + offset, propsTypeDeclaration + `
|
|
2860
2916
|
`);
|
|
2861
2917
|
}
|
package/dist/post-process.js
CHANGED
|
@@ -1917,7 +1917,7 @@ function parseObjectMembers(source) {
|
|
|
1917
1917
|
}
|
|
1918
1918
|
|
|
1919
1919
|
// src/transform/origin-transform.ts
|
|
1920
|
-
function transformOriginCalls(s, source, neededImports) {
|
|
1920
|
+
function transformOriginCalls(s, source, neededImports, svelteImports) {
|
|
1921
1921
|
const regex = /\$origin\s*\(/g;
|
|
1922
1922
|
let match;
|
|
1923
1923
|
let changed = false;
|
|
@@ -1933,14 +1933,14 @@ function transformOriginCalls(s, source, neededImports) {
|
|
|
1933
1933
|
continue;
|
|
1934
1934
|
}
|
|
1935
1935
|
const definitionContent = source.slice(openParenIndex + 1, closeParenIndex);
|
|
1936
|
-
const transformed = transformOriginDefinition(definitionContent);
|
|
1936
|
+
const transformed = transformOriginDefinition(definitionContent, svelteImports);
|
|
1937
1937
|
s.overwrite(startIndex, closeParenIndex + 1, `__createOrigin(${transformed})`);
|
|
1938
1938
|
neededImports.add("__createOrigin");
|
|
1939
1939
|
changed = true;
|
|
1940
1940
|
}
|
|
1941
1941
|
return changed;
|
|
1942
1942
|
}
|
|
1943
|
-
function transformOriginDefinition(content) {
|
|
1943
|
+
function transformOriginDefinition(content, svelteImports) {
|
|
1944
1944
|
let parents = [];
|
|
1945
1945
|
let bodyContent = content.trim();
|
|
1946
1946
|
let initCallback = null;
|
|
@@ -2005,7 +2005,7 @@ function transformOriginDefinition(content) {
|
|
|
2005
2005
|
}
|
|
2006
2006
|
}
|
|
2007
2007
|
const attrDetails = parseAttrsSource(attrsContent);
|
|
2008
|
-
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName);
|
|
2008
|
+
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName, svelteImports);
|
|
2009
2009
|
const parentsCode = parents.length > 0 ? `[${parents.join(", ")}]` : "undefined";
|
|
2010
2010
|
let configCode = `{
|
|
2011
2011
|
__attrSchema: ${attrSchemaCode},
|
|
@@ -2025,19 +2025,35 @@ ${createFnBody}
|
|
|
2025
2025
|
}`;
|
|
2026
2026
|
return configCode;
|
|
2027
2027
|
}
|
|
2028
|
-
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props") {
|
|
2028
|
+
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props", svelteImports) {
|
|
2029
2029
|
let body = content.trim();
|
|
2030
2030
|
const hasParents = parents.length > 0;
|
|
2031
|
+
const attrStateDeclarations = [];
|
|
2032
|
+
const attrSyncEffects = [];
|
|
2031
2033
|
const attrGettersSetters = [];
|
|
2032
|
-
|
|
2033
|
-
|
|
2034
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} ?? ${attr.defaultValue} }`);
|
|
2035
|
-
} else {
|
|
2036
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} }`);
|
|
2037
|
-
}
|
|
2038
|
-
attrGettersSetters.push(`set ${attr.key}(v) { __inputAttrs.${attr.key} = v }`);
|
|
2034
|
+
if (attrDetails.length > 0 && svelteImports) {
|
|
2035
|
+
svelteImports.add("untrack");
|
|
2039
2036
|
}
|
|
2040
|
-
const
|
|
2037
|
+
for (const attr of attrDetails) {
|
|
2038
|
+
const defaultExpr = attr.hasDefault ? ` ?? ${attr.defaultValue}` : "";
|
|
2039
|
+
attrStateDeclarations.push(`let __attr_${attr.key} = $state(__inputAttrs.${attr.key}${defaultExpr})`);
|
|
2040
|
+
attrSyncEffects.push(`$effect(() => {
|
|
2041
|
+
const __parentVal = __inputAttrs.${attr.key}
|
|
2042
|
+
const __currentVal = untrack(() => __attr_${attr.key})
|
|
2043
|
+
if (__parentVal !== __currentVal) {
|
|
2044
|
+
__attr_${attr.key} = __parentVal${defaultExpr}
|
|
2045
|
+
}
|
|
2046
|
+
})`);
|
|
2047
|
+
attrGettersSetters.push(`get ${attr.key}() { return __attr_${attr.key} }`);
|
|
2048
|
+
attrGettersSetters.push(`set ${attr.key}(v) { __attr_${attr.key} = v; __inputAttrs.${attr.key} = v }`);
|
|
2049
|
+
}
|
|
2050
|
+
const attrStateSection = attrStateDeclarations.length > 0 ? attrStateDeclarations.join(`
|
|
2051
|
+
`) + `
|
|
2052
|
+
` : "";
|
|
2053
|
+
const attrEffectSection = attrSyncEffects.length > 0 ? attrSyncEffects.join(`
|
|
2054
|
+
`) + `
|
|
2055
|
+
` : "";
|
|
2056
|
+
const propsObjectCode = attrGettersSetters.length > 0 ? `${attrStateSection}${attrEffectSection}const __props = {
|
|
2041
2057
|
${attrGettersSetters.join(`,
|
|
2042
2058
|
`)}
|
|
2043
2059
|
}` : ` const __props = __inputAttrs`;
|
|
@@ -2054,10 +2070,17 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2054
2070
|
const members = parseObjectMembers(body);
|
|
2055
2071
|
const derivedNames = new Set;
|
|
2056
2072
|
const stateNames = new Set;
|
|
2073
|
+
const valueNames = new Set;
|
|
2074
|
+
const methodNames = new Set;
|
|
2057
2075
|
for (const member of members) {
|
|
2058
2076
|
const { key, value, isGetter, isMethod, isSetter } = member;
|
|
2059
2077
|
if (!isGetter && !isMethod && !isSetter && value.startsWith("$state")) {
|
|
2060
2078
|
stateNames.add(key);
|
|
2079
|
+
} else if (!isGetter && !isMethod && !isSetter) {
|
|
2080
|
+
valueNames.add(key);
|
|
2081
|
+
}
|
|
2082
|
+
if (isMethod) {
|
|
2083
|
+
methodNames.add(key);
|
|
2061
2084
|
}
|
|
2062
2085
|
if (isGetter && /return\s+\$derived(\.by)?\s*\(/.test(value)) {
|
|
2063
2086
|
derivedNames.add(key);
|
|
@@ -2119,7 +2142,10 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2119
2142
|
if (stateNames.has(name)) {
|
|
2120
2143
|
return name;
|
|
2121
2144
|
}
|
|
2122
|
-
|
|
2145
|
+
if (valueNames.has(name)) {
|
|
2146
|
+
return name;
|
|
2147
|
+
}
|
|
2148
|
+
return `this.${name}`;
|
|
2123
2149
|
});
|
|
2124
2150
|
const asyncPrefix = isAsync ? "async " : "";
|
|
2125
2151
|
const generatorPrefix = isGenerator ? "*" : "";
|
|
@@ -2144,7 +2170,9 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2144
2170
|
} else if (isMethod) {
|
|
2145
2171
|
returnMembers.push(`${asyncPrefix}${generatorPrefix}${outputKey}${transformedValue}`);
|
|
2146
2172
|
} else {
|
|
2147
|
-
|
|
2173
|
+
stateDeclarations.push(` let ${key} = ${transformedValue}`);
|
|
2174
|
+
returnMembers.push(`get ${key}() { return ${key} }`);
|
|
2175
|
+
returnMembers.push(`set ${key}(v) { ${key} = v }`);
|
|
2148
2176
|
}
|
|
2149
2177
|
}
|
|
2150
2178
|
const stateSection = stateDeclarations.length > 0 ? stateDeclarations.join(`
|
|
@@ -2714,9 +2742,10 @@ function transformScript(source, options = {}) {
|
|
|
2714
2742
|
const { isComponent = false } = options;
|
|
2715
2743
|
let changed = false;
|
|
2716
2744
|
const neededImports = new Set;
|
|
2745
|
+
const svelteImports = new Set;
|
|
2717
2746
|
let propsTypeDeclaration = null;
|
|
2718
2747
|
if (!isComponent) {
|
|
2719
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2748
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2720
2749
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2721
2750
|
}
|
|
2722
2751
|
if (isComponent) {
|
|
@@ -2755,10 +2784,17 @@ function transformScript(source, options = {}) {
|
|
|
2755
2784
|
`);
|
|
2756
2785
|
}
|
|
2757
2786
|
}
|
|
2758
|
-
} else if (neededImports.size > 0) {
|
|
2759
|
-
|
|
2760
|
-
|
|
2787
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2788
|
+
if (neededImports.size > 0) {
|
|
2789
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2790
|
+
s.prepend(importStatement + `
|
|
2791
|
+
`);
|
|
2792
|
+
}
|
|
2793
|
+
if (svelteImports.size > 0) {
|
|
2794
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2795
|
+
s.prepend(svelteImportStatement + `
|
|
2761
2796
|
`);
|
|
2797
|
+
}
|
|
2762
2798
|
}
|
|
2763
2799
|
if (!changed) {
|
|
2764
2800
|
return { code: source, changed: false };
|
|
@@ -2777,9 +2813,10 @@ async function transformScriptAsync(source, options) {
|
|
|
2777
2813
|
const { isComponent = false, schemaResolver } = options;
|
|
2778
2814
|
let changed = false;
|
|
2779
2815
|
const neededImports = new Set;
|
|
2816
|
+
const svelteImports = new Set;
|
|
2780
2817
|
let propsTypeDeclaration = null;
|
|
2781
2818
|
if (!isComponent) {
|
|
2782
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2819
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2783
2820
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2784
2821
|
}
|
|
2785
2822
|
if (isComponent) {
|
|
@@ -2818,10 +2855,17 @@ async function transformScriptAsync(source, options) {
|
|
|
2818
2855
|
`);
|
|
2819
2856
|
}
|
|
2820
2857
|
}
|
|
2821
|
-
} else if (neededImports.size > 0) {
|
|
2822
|
-
|
|
2823
|
-
|
|
2858
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2859
|
+
if (neededImports.size > 0) {
|
|
2860
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2861
|
+
s.prepend(importStatement + `
|
|
2862
|
+
`);
|
|
2863
|
+
}
|
|
2864
|
+
if (svelteImports.size > 0) {
|
|
2865
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2866
|
+
s.prepend(svelteImportStatement + `
|
|
2824
2867
|
`);
|
|
2868
|
+
}
|
|
2825
2869
|
}
|
|
2826
2870
|
if (!changed) {
|
|
2827
2871
|
return { code: source, changed: false };
|
|
@@ -2840,9 +2884,10 @@ async function transformScriptContent(source, options) {
|
|
|
2840
2884
|
const { isComponent = false, schemaResolver } = options;
|
|
2841
2885
|
let changed = false;
|
|
2842
2886
|
const neededImports = new Set;
|
|
2887
|
+
const svelteImports = new Set;
|
|
2843
2888
|
let propsTypeDeclaration = null;
|
|
2844
2889
|
if (!isComponent) {
|
|
2845
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2890
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2846
2891
|
}
|
|
2847
2892
|
if (isComponent) {
|
|
2848
2893
|
const result = await transformAttrsOriginCalls(s, source, neededImports, schemaResolver);
|
|
@@ -2855,11 +2900,22 @@ async function transformScriptContent(source, options) {
|
|
|
2855
2900
|
if (neededImports.size > 0) {
|
|
2856
2901
|
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2857
2902
|
s.prepend(importStatement + `
|
|
2903
|
+
`);
|
|
2904
|
+
}
|
|
2905
|
+
if (svelteImports.size > 0) {
|
|
2906
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2907
|
+
s.prepend(svelteImportStatement + `
|
|
2858
2908
|
`);
|
|
2859
2909
|
}
|
|
2860
2910
|
if (propsTypeDeclaration) {
|
|
2861
2911
|
const afterImports = findPropsInjectionPosition(source);
|
|
2862
|
-
|
|
2912
|
+
let offset = 0;
|
|
2913
|
+
if (neededImports.size > 0) {
|
|
2914
|
+
offset += generateRuntimeImport([...neededImports]).length + 1;
|
|
2915
|
+
}
|
|
2916
|
+
if (svelteImports.size > 0) {
|
|
2917
|
+
offset += `import { ${[...svelteImports].join(", ")} } from 'svelte'`.length + 1;
|
|
2918
|
+
}
|
|
2863
2919
|
s.appendLeft(afterImports + offset, propsTypeDeclaration + `
|
|
2864
2920
|
`);
|
|
2865
2921
|
}
|
package/dist/preprocess.js
CHANGED
|
@@ -1913,7 +1913,7 @@ function parseObjectMembers(source) {
|
|
|
1913
1913
|
}
|
|
1914
1914
|
|
|
1915
1915
|
// src/transform/origin-transform.ts
|
|
1916
|
-
function transformOriginCalls(s, source, neededImports) {
|
|
1916
|
+
function transformOriginCalls(s, source, neededImports, svelteImports) {
|
|
1917
1917
|
const regex = /\$origin\s*\(/g;
|
|
1918
1918
|
let match;
|
|
1919
1919
|
let changed = false;
|
|
@@ -1929,14 +1929,14 @@ function transformOriginCalls(s, source, neededImports) {
|
|
|
1929
1929
|
continue;
|
|
1930
1930
|
}
|
|
1931
1931
|
const definitionContent = source.slice(openParenIndex + 1, closeParenIndex);
|
|
1932
|
-
const transformed = transformOriginDefinition(definitionContent);
|
|
1932
|
+
const transformed = transformOriginDefinition(definitionContent, svelteImports);
|
|
1933
1933
|
s.overwrite(startIndex, closeParenIndex + 1, `__createOrigin(${transformed})`);
|
|
1934
1934
|
neededImports.add("__createOrigin");
|
|
1935
1935
|
changed = true;
|
|
1936
1936
|
}
|
|
1937
1937
|
return changed;
|
|
1938
1938
|
}
|
|
1939
|
-
function transformOriginDefinition(content) {
|
|
1939
|
+
function transformOriginDefinition(content, svelteImports) {
|
|
1940
1940
|
let parents = [];
|
|
1941
1941
|
let bodyContent = content.trim();
|
|
1942
1942
|
let initCallback = null;
|
|
@@ -2001,7 +2001,7 @@ function transformOriginDefinition(content) {
|
|
|
2001
2001
|
}
|
|
2002
2002
|
}
|
|
2003
2003
|
const attrDetails = parseAttrsSource(attrsContent);
|
|
2004
|
-
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName);
|
|
2004
|
+
const { body: createFnBody, attachments } = transformOriginBody(contentWithoutAttrs.trim(), parents, attrDetails, attrPropertyName, svelteImports);
|
|
2005
2005
|
const parentsCode = parents.length > 0 ? `[${parents.join(", ")}]` : "undefined";
|
|
2006
2006
|
let configCode = `{
|
|
2007
2007
|
__attrSchema: ${attrSchemaCode},
|
|
@@ -2021,19 +2021,35 @@ ${createFnBody}
|
|
|
2021
2021
|
}`;
|
|
2022
2022
|
return configCode;
|
|
2023
2023
|
}
|
|
2024
|
-
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props") {
|
|
2024
|
+
function transformOriginBody(content, parents = [], attrDetails = [], propName = "props", svelteImports) {
|
|
2025
2025
|
let body = content.trim();
|
|
2026
2026
|
const hasParents = parents.length > 0;
|
|
2027
|
+
const attrStateDeclarations = [];
|
|
2028
|
+
const attrSyncEffects = [];
|
|
2027
2029
|
const attrGettersSetters = [];
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} ?? ${attr.defaultValue} }`);
|
|
2031
|
-
} else {
|
|
2032
|
-
attrGettersSetters.push(`get ${attr.key}() { return __inputAttrs.${attr.key} }`);
|
|
2033
|
-
}
|
|
2034
|
-
attrGettersSetters.push(`set ${attr.key}(v) { __inputAttrs.${attr.key} = v }`);
|
|
2030
|
+
if (attrDetails.length > 0 && svelteImports) {
|
|
2031
|
+
svelteImports.add("untrack");
|
|
2035
2032
|
}
|
|
2036
|
-
const
|
|
2033
|
+
for (const attr of attrDetails) {
|
|
2034
|
+
const defaultExpr = attr.hasDefault ? ` ?? ${attr.defaultValue}` : "";
|
|
2035
|
+
attrStateDeclarations.push(`let __attr_${attr.key} = $state(__inputAttrs.${attr.key}${defaultExpr})`);
|
|
2036
|
+
attrSyncEffects.push(`$effect(() => {
|
|
2037
|
+
const __parentVal = __inputAttrs.${attr.key}
|
|
2038
|
+
const __currentVal = untrack(() => __attr_${attr.key})
|
|
2039
|
+
if (__parentVal !== __currentVal) {
|
|
2040
|
+
__attr_${attr.key} = __parentVal${defaultExpr}
|
|
2041
|
+
}
|
|
2042
|
+
})`);
|
|
2043
|
+
attrGettersSetters.push(`get ${attr.key}() { return __attr_${attr.key} }`);
|
|
2044
|
+
attrGettersSetters.push(`set ${attr.key}(v) { __attr_${attr.key} = v; __inputAttrs.${attr.key} = v }`);
|
|
2045
|
+
}
|
|
2046
|
+
const attrStateSection = attrStateDeclarations.length > 0 ? attrStateDeclarations.join(`
|
|
2047
|
+
`) + `
|
|
2048
|
+
` : "";
|
|
2049
|
+
const attrEffectSection = attrSyncEffects.length > 0 ? attrSyncEffects.join(`
|
|
2050
|
+
`) + `
|
|
2051
|
+
` : "";
|
|
2052
|
+
const propsObjectCode = attrGettersSetters.length > 0 ? `${attrStateSection}${attrEffectSection}const __props = {
|
|
2037
2053
|
${attrGettersSetters.join(`,
|
|
2038
2054
|
`)}
|
|
2039
2055
|
}` : ` const __props = __inputAttrs`;
|
|
@@ -2050,10 +2066,17 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2050
2066
|
const members = parseObjectMembers(body);
|
|
2051
2067
|
const derivedNames = new Set;
|
|
2052
2068
|
const stateNames = new Set;
|
|
2069
|
+
const valueNames = new Set;
|
|
2070
|
+
const methodNames = new Set;
|
|
2053
2071
|
for (const member of members) {
|
|
2054
2072
|
const { key, value, isGetter, isMethod, isSetter } = member;
|
|
2055
2073
|
if (!isGetter && !isMethod && !isSetter && value.startsWith("$state")) {
|
|
2056
2074
|
stateNames.add(key);
|
|
2075
|
+
} else if (!isGetter && !isMethod && !isSetter) {
|
|
2076
|
+
valueNames.add(key);
|
|
2077
|
+
}
|
|
2078
|
+
if (isMethod) {
|
|
2079
|
+
methodNames.add(key);
|
|
2057
2080
|
}
|
|
2058
2081
|
if (isGetter && /return\s+\$derived(\.by)?\s*\(/.test(value)) {
|
|
2059
2082
|
derivedNames.add(key);
|
|
@@ -2115,7 +2138,10 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2115
2138
|
if (stateNames.has(name)) {
|
|
2116
2139
|
return name;
|
|
2117
2140
|
}
|
|
2118
|
-
|
|
2141
|
+
if (valueNames.has(name)) {
|
|
2142
|
+
return name;
|
|
2143
|
+
}
|
|
2144
|
+
return `this.${name}`;
|
|
2119
2145
|
});
|
|
2120
2146
|
const asyncPrefix = isAsync ? "async " : "";
|
|
2121
2147
|
const generatorPrefix = isGenerator ? "*" : "";
|
|
@@ -2140,7 +2166,9 @@ function transformOriginBody(content, parents = [], attrDetails = [], propName =
|
|
|
2140
2166
|
} else if (isMethod) {
|
|
2141
2167
|
returnMembers.push(`${asyncPrefix}${generatorPrefix}${outputKey}${transformedValue}`);
|
|
2142
2168
|
} else {
|
|
2143
|
-
|
|
2169
|
+
stateDeclarations.push(` let ${key} = ${transformedValue}`);
|
|
2170
|
+
returnMembers.push(`get ${key}() { return ${key} }`);
|
|
2171
|
+
returnMembers.push(`set ${key}(v) { ${key} = v }`);
|
|
2144
2172
|
}
|
|
2145
2173
|
}
|
|
2146
2174
|
const stateSection = stateDeclarations.length > 0 ? stateDeclarations.join(`
|
|
@@ -2710,9 +2738,10 @@ function transformScript(source, options = {}) {
|
|
|
2710
2738
|
const { isComponent = false } = options;
|
|
2711
2739
|
let changed = false;
|
|
2712
2740
|
const neededImports = new Set;
|
|
2741
|
+
const svelteImports = new Set;
|
|
2713
2742
|
let propsTypeDeclaration = null;
|
|
2714
2743
|
if (!isComponent) {
|
|
2715
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2744
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2716
2745
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2717
2746
|
}
|
|
2718
2747
|
if (isComponent) {
|
|
@@ -2751,10 +2780,17 @@ function transformScript(source, options = {}) {
|
|
|
2751
2780
|
`);
|
|
2752
2781
|
}
|
|
2753
2782
|
}
|
|
2754
|
-
} else if (neededImports.size > 0) {
|
|
2755
|
-
|
|
2756
|
-
|
|
2783
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2784
|
+
if (neededImports.size > 0) {
|
|
2785
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2786
|
+
s.prepend(importStatement + `
|
|
2787
|
+
`);
|
|
2788
|
+
}
|
|
2789
|
+
if (svelteImports.size > 0) {
|
|
2790
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2791
|
+
s.prepend(svelteImportStatement + `
|
|
2757
2792
|
`);
|
|
2793
|
+
}
|
|
2758
2794
|
}
|
|
2759
2795
|
if (!changed) {
|
|
2760
2796
|
return { code: source, changed: false };
|
|
@@ -2773,9 +2809,10 @@ async function transformScriptAsync(source, options) {
|
|
|
2773
2809
|
const { isComponent = false, schemaResolver } = options;
|
|
2774
2810
|
let changed = false;
|
|
2775
2811
|
const neededImports = new Set;
|
|
2812
|
+
const svelteImports = new Set;
|
|
2776
2813
|
let propsTypeDeclaration = null;
|
|
2777
2814
|
if (!isComponent) {
|
|
2778
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2815
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2779
2816
|
changed = transformStandaloneAttrsCalls(s, source, neededImports) || changed;
|
|
2780
2817
|
}
|
|
2781
2818
|
if (isComponent) {
|
|
@@ -2814,10 +2851,17 @@ async function transformScriptAsync(source, options) {
|
|
|
2814
2851
|
`);
|
|
2815
2852
|
}
|
|
2816
2853
|
}
|
|
2817
|
-
} else if (neededImports.size > 0) {
|
|
2818
|
-
|
|
2819
|
-
|
|
2854
|
+
} else if (neededImports.size > 0 || svelteImports.size > 0) {
|
|
2855
|
+
if (neededImports.size > 0) {
|
|
2856
|
+
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2857
|
+
s.prepend(importStatement + `
|
|
2858
|
+
`);
|
|
2859
|
+
}
|
|
2860
|
+
if (svelteImports.size > 0) {
|
|
2861
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2862
|
+
s.prepend(svelteImportStatement + `
|
|
2820
2863
|
`);
|
|
2864
|
+
}
|
|
2821
2865
|
}
|
|
2822
2866
|
if (!changed) {
|
|
2823
2867
|
return { code: source, changed: false };
|
|
@@ -2836,9 +2880,10 @@ async function transformScriptContent(source, options) {
|
|
|
2836
2880
|
const { isComponent = false, schemaResolver } = options;
|
|
2837
2881
|
let changed = false;
|
|
2838
2882
|
const neededImports = new Set;
|
|
2883
|
+
const svelteImports = new Set;
|
|
2839
2884
|
let propsTypeDeclaration = null;
|
|
2840
2885
|
if (!isComponent) {
|
|
2841
|
-
changed = transformOriginCalls(s, source, neededImports) || changed;
|
|
2886
|
+
changed = transformOriginCalls(s, source, neededImports, svelteImports) || changed;
|
|
2842
2887
|
}
|
|
2843
2888
|
if (isComponent) {
|
|
2844
2889
|
const result = await transformAttrsOriginCalls(s, source, neededImports, schemaResolver);
|
|
@@ -2851,11 +2896,22 @@ async function transformScriptContent(source, options) {
|
|
|
2851
2896
|
if (neededImports.size > 0) {
|
|
2852
2897
|
const importStatement = generateRuntimeImport([...neededImports]);
|
|
2853
2898
|
s.prepend(importStatement + `
|
|
2899
|
+
`);
|
|
2900
|
+
}
|
|
2901
|
+
if (svelteImports.size > 0) {
|
|
2902
|
+
const svelteImportStatement = `import { ${[...svelteImports].join(", ")} } from 'svelte'`;
|
|
2903
|
+
s.prepend(svelteImportStatement + `
|
|
2854
2904
|
`);
|
|
2855
2905
|
}
|
|
2856
2906
|
if (propsTypeDeclaration) {
|
|
2857
2907
|
const afterImports = findPropsInjectionPosition(source);
|
|
2858
|
-
|
|
2908
|
+
let offset = 0;
|
|
2909
|
+
if (neededImports.size > 0) {
|
|
2910
|
+
offset += generateRuntimeImport([...neededImports]).length + 1;
|
|
2911
|
+
}
|
|
2912
|
+
if (svelteImports.size > 0) {
|
|
2913
|
+
offset += `import { ${[...svelteImports].join(", ")} } from 'svelte'`.length + 1;
|
|
2914
|
+
}
|
|
2859
2915
|
s.appendLeft(afterImports + offset, propsTypeDeclaration + `
|
|
2860
2916
|
`);
|
|
2861
2917
|
}
|
|
@@ -48,4 +48,4 @@ export interface TransformOriginBodyResult {
|
|
|
48
48
|
* })
|
|
49
49
|
* ```
|
|
50
50
|
*/
|
|
51
|
-
export declare function transformOriginCalls(s: MagicString, source: string, neededImports: Set<string>): boolean;
|
|
51
|
+
export declare function transformOriginCalls(s: MagicString, source: string, neededImports: Set<string>, svelteImports?: Set<string>): boolean;
|