@vc-shell/migrate 2.0.0-alpha.27 → 2.0.0-alpha.29
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/CHANGELOG.md +10 -0
- package/dist/transforms/registry.js +8 -0
- package/dist/transforms/registry.js.map +1 -1
- package/dist/transforms/responsive-composable.d.ts +8 -0
- package/dist/transforms/responsive-composable.js +245 -0
- package/dist/transforms/responsive-composable.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
# [2.0.0-alpha.29](https://github.com/VirtoCommerce/vc-shell/compare/v2.0.0-alpha.28...v2.0.0-alpha.29) (2026-03-26)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **responsive-composable:** introduce useResponsive composable to replace global properties and injection keys ([1280853](https://github.com/VirtoCommerce/vc-shell/commit/1280853cf10ec6cf432b5e7eb88b0991430dfc20))
|
|
7
|
+
# [2.0.0-alpha.28](https://github.com/VirtoCommerce/vc-shell/compare/v2.0.0-alpha.27...v2.0.0-alpha.28) (2026-03-26)
|
|
8
|
+
|
|
9
|
+
**Note:** Version bump only for package @vc-shell/migrate
|
|
10
|
+
|
|
1
11
|
# [2.0.0-alpha.27](https://github.com/VirtoCommerce/vc-shell/compare/v2.0.0-alpha.26...v2.0.0-alpha.27) (2026-03-25)
|
|
2
12
|
|
|
3
13
|
**Note:** Version bump only for package @vc-shell/migrate
|
|
@@ -155,6 +155,14 @@ export const transforms = [
|
|
|
155
155
|
transformPath: t("app-hub-rename"),
|
|
156
156
|
fileExtensions: [".vue", ".ts"],
|
|
157
157
|
},
|
|
158
|
+
{
|
|
159
|
+
name: "responsive-composable",
|
|
160
|
+
description: "$isMobile.value / inject(IsMobileKey) / inject('isMobile') → useResponsive()",
|
|
161
|
+
introducedIn: "2.0.0",
|
|
162
|
+
migrationGuideSection: "Guide 36",
|
|
163
|
+
transformPath: t("responsive-composable"),
|
|
164
|
+
fileExtensions: [".vue"],
|
|
165
|
+
},
|
|
158
166
|
];
|
|
159
167
|
export function selectTransforms(currentVersion, targetVersion) {
|
|
160
168
|
const current = semver.parse(currentVersion);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/transforms/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/transforms/registry.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAG7C,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,KAAK,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,0DAA0D;QACvE,YAAY,EAAE,eAAe;QAC7B,qBAAqB,EAAE,8BAA8B;QACrD,aAAa,EAAE,CAAC,CAAC,mBAAmB,CAAC;KACtC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,qEAAqE;QAClF,YAAY,EAAE,eAAe;QAC7B,qBAAqB,EAAE,YAAY;QACnC,aAAa,EAAE,CAAC,CAAC,qBAAqB,CAAC;KACxC;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,0CAA0C;QACvD,YAAY,EAAE,gBAAgB;QAC9B,qBAAqB,EAAE,+BAA+B;QACtD,aAAa,EAAE,CAAC,CAAC,wBAAwB,CAAC;KAC3C;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,2DAA2D;QACxE,YAAY,EAAE,OAAO;QACrB,aAAa,EAAE,CAAC,CAAC,iBAAiB,CAAC;KACpC;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,wCAAwC;QACrD,YAAY,EAAE,OAAO;QACrB,aAAa,EAAE,CAAC,CAAC,2BAA2B,CAAC;KAC9C;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,kEAAkE;QAC/E,YAAY,EAAE,OAAO;QACrB,aAAa,EAAE,CAAC,CAAC,4BAA4B,CAAC;KAC/C;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,sEAAsE;QACnF,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,mBAAmB;QAC1C,aAAa,EAAE,CAAC,CAAC,yBAAyB,CAAC;QAC3C,cAAc,EAAE,CAAC,MAAM,CAAC;KACzB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,iFAAiF;QAC9F,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,WAAW;QAClC,aAAa,EAAE,CAAC,CAAC,YAAY,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,+CAA+C;QAC5D,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,aAAa;QACpC,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,CAAC,CAAC,eAAe,CAAC;KAClC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,iEAAiE;QAC9E,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,+BAA+B;QACtD,aAAa,EAAE,CAAC,CAAC,mBAAmB,CAAC;KACtC;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,mFAAmF;QAChG,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,yBAAyB,CAAC;KAC5C;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,kDAAkD;QAC/D,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,iBAAiB,CAAC;KACpC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,qCAAqC;QAClD,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,qBAAqB,CAAC;KACxC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,qBAAqB,CAAC;KACxC;IACD;QACE,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,mEAAmE;QAChF,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,mBAAmB,CAAC;KACtC;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,gFAAgF;QAC7F,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,CAAC,CAAC,kBAAkB,CAAC;KACrC;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,uFAAuF;QACpG,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,qBAAqB,CAAC;QACvC,cAAc,EAAE,CAAC,MAAM,CAAC;KACzB;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EAAE,mGAAmG;QAChH,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,IAAI;QACpB,aAAa,EAAE,CAAC,CAAC,wBAAwB,CAAC;KAC3C;IACD;QACE,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,sEAAsE;QACnF,YAAY,EAAE,gBAAgB;QAC9B,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,CAAC,CAAC,0BAA0B,CAAC;KAC7C;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0FAA0F;QACvG,YAAY,EAAE,gBAAgB;QAC9B,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,sBAAsB,CAAC;KACzC;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,0FAA0F;QACvG,YAAY,EAAE,gBAAgB;QAC9B,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,gBAAgB,CAAC;QAClC,cAAc,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC;KAChC;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,8EAA8E;QAC3F,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,uBAAuB,CAAC;QACzC,cAAc,EAAE,CAAC,MAAM,CAAC;KACzB;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,cAAsB,EAAE,aAAqB;IAC5E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE3C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IACnC,IAAI,MAAM,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC;QAAE,OAAO,EAAE,CAAC;IAEzD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QAC7B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,OAAO,MAAM,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Transform } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Codemod: migrate $isMobile/$isDesktop globals and inject(IsMobileKey) patterns
|
|
4
|
+
* to `const { ... } = useResponsive()` from @vc-shell/framework.
|
|
5
|
+
*/
|
|
6
|
+
declare const transform: Transform;
|
|
7
|
+
export default transform;
|
|
8
|
+
export declare const parser = "tsx";
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
import { parse as parseSFC } from "@vue/compiler-sfc";
|
|
2
|
+
/**
|
|
3
|
+
* Map of global template properties → local composable names.
|
|
4
|
+
* e.g. "$isMobile" → "isMobile"
|
|
5
|
+
*/
|
|
6
|
+
const BREAKPOINT_GLOBAL_PROPS = {
|
|
7
|
+
$isMobile: "isMobile",
|
|
8
|
+
$isDesktop: "isDesktop",
|
|
9
|
+
$isPhone: "isPhone",
|
|
10
|
+
$isTablet: "isTablet",
|
|
11
|
+
$isTouch: "isTouch",
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Map of injection key symbol names → local composable names.
|
|
15
|
+
* e.g. "IsMobileKey" → "isMobile"
|
|
16
|
+
*/
|
|
17
|
+
const INJECTION_KEY_MAP = {
|
|
18
|
+
IsMobileKey: "isMobile",
|
|
19
|
+
IsDesktopKey: "isDesktop",
|
|
20
|
+
IsPhoneKey: "isPhone",
|
|
21
|
+
IsTabletKey: "isTablet",
|
|
22
|
+
IsTouchKey: "isTouch",
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Map of string injection keys → local composable names.
|
|
26
|
+
* e.g. "isMobile" → "isMobile"
|
|
27
|
+
*/
|
|
28
|
+
const STRING_KEY_MAP = {
|
|
29
|
+
isMobile: "isMobile",
|
|
30
|
+
isDesktop: "isDesktop",
|
|
31
|
+
isPhone: "isPhone",
|
|
32
|
+
isTablet: "isTablet",
|
|
33
|
+
isTouch: "isTouch",
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Codemod: migrate $isMobile/$isDesktop globals and inject(IsMobileKey) patterns
|
|
37
|
+
* to `const { ... } = useResponsive()` from @vc-shell/framework.
|
|
38
|
+
*/
|
|
39
|
+
const transform = (fileInfo, api, _options) => {
|
|
40
|
+
if (!fileInfo.path.endsWith(".vue"))
|
|
41
|
+
return null;
|
|
42
|
+
const { descriptor } = parseSFC(fileInfo.source, { filename: fileInfo.path });
|
|
43
|
+
const scriptBlock = descriptor.scriptSetup ?? descriptor.script;
|
|
44
|
+
// 1. Scan template for $isMobile.value patterns
|
|
45
|
+
const templateNeeds = new Set();
|
|
46
|
+
let newTemplateContent;
|
|
47
|
+
if (descriptor.template) {
|
|
48
|
+
let content = descriptor.template.content;
|
|
49
|
+
for (const [globalProp, localName] of Object.entries(BREAKPOINT_GLOBAL_PROPS)) {
|
|
50
|
+
const escaped = globalProp.replace("$", "\\$");
|
|
51
|
+
const re = new RegExp(`${escaped}\\.value`, "g");
|
|
52
|
+
if (re.test(content)) {
|
|
53
|
+
templateNeeds.add(localName);
|
|
54
|
+
content = content.replace(new RegExp(`${escaped}\\.value`, "g"), localName);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
if (content !== descriptor.template.content) {
|
|
58
|
+
newTemplateContent = content;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// 2. Transform script: find inject() calls for responsive keys
|
|
62
|
+
const scriptNeeds = new Set();
|
|
63
|
+
let newScriptContent;
|
|
64
|
+
const removedKeyImports = new Set(); // injection key names to remove from imports
|
|
65
|
+
if (scriptBlock) {
|
|
66
|
+
const j = api.jscodeshift;
|
|
67
|
+
const root = j(scriptBlock.content);
|
|
68
|
+
let scriptChanged = false;
|
|
69
|
+
// Find inject() calls that match our patterns
|
|
70
|
+
// Pattern 1: inject(IsMobileKey, ref(false)) — symbol key
|
|
71
|
+
// Pattern 2: inject("isMobile", ref(false)) — string key
|
|
72
|
+
root.find(j.VariableDeclarator).forEach((path) => {
|
|
73
|
+
const init = path.node.init;
|
|
74
|
+
if (!init ||
|
|
75
|
+
init.type !== "CallExpression" ||
|
|
76
|
+
init.callee.type !== "Identifier" ||
|
|
77
|
+
init.callee.name !== "inject") {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const firstArg = init.arguments[0];
|
|
81
|
+
if (!firstArg)
|
|
82
|
+
return;
|
|
83
|
+
let localName;
|
|
84
|
+
// Symbol key: inject(IsMobileKey, ...)
|
|
85
|
+
if (firstArg.type === "Identifier" && firstArg.name in INJECTION_KEY_MAP) {
|
|
86
|
+
localName = INJECTION_KEY_MAP[firstArg.name];
|
|
87
|
+
removedKeyImports.add(firstArg.name);
|
|
88
|
+
}
|
|
89
|
+
// String key: inject("isMobile", ...)
|
|
90
|
+
else if (firstArg.type === "StringLiteral" && firstArg.value in STRING_KEY_MAP) {
|
|
91
|
+
localName = STRING_KEY_MAP[firstArg.value];
|
|
92
|
+
}
|
|
93
|
+
if (localName) {
|
|
94
|
+
scriptNeeds.add(localName);
|
|
95
|
+
// Remove the entire variable declaration statement
|
|
96
|
+
const parent = path.parent;
|
|
97
|
+
if (parent.node.type === "VariableDeclaration" && parent.node.declarations.length === 1) {
|
|
98
|
+
j(parent).remove();
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
j(path).remove();
|
|
102
|
+
}
|
|
103
|
+
scriptChanged = true;
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
// Combine all needs
|
|
107
|
+
const allNeeds = new Set([...templateNeeds, ...scriptNeeds]);
|
|
108
|
+
if (allNeeds.size > 0) {
|
|
109
|
+
// Add useResponsive destructure statement
|
|
110
|
+
const destructureNames = Array.from(allNeeds).sort();
|
|
111
|
+
const destructureStr = `const { ${destructureNames.join(", ")} } = useResponsive();`;
|
|
112
|
+
// Add useResponsive to @vc-shell/framework import
|
|
113
|
+
let hasFrameworkImport = false;
|
|
114
|
+
let hasUseResponsiveImport = false;
|
|
115
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
116
|
+
const source = path.node.source.value;
|
|
117
|
+
if (source === "@vc-shell/framework") {
|
|
118
|
+
hasFrameworkImport = true;
|
|
119
|
+
const specifiers = path.node.specifiers || [];
|
|
120
|
+
// Check if useResponsive already imported
|
|
121
|
+
for (const spec of specifiers) {
|
|
122
|
+
if (spec.type === "ImportSpecifier" && spec.imported.type === "Identifier" && spec.imported.name === "useResponsive") {
|
|
123
|
+
hasUseResponsiveImport = true;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
if (!hasUseResponsiveImport) {
|
|
127
|
+
specifiers.push(j.importSpecifier(j.identifier("useResponsive")));
|
|
128
|
+
scriptChanged = true;
|
|
129
|
+
}
|
|
130
|
+
// Remove injection key imports that are no longer used
|
|
131
|
+
if (removedKeyImports.size > 0) {
|
|
132
|
+
path.node.specifiers = specifiers.filter((spec) => {
|
|
133
|
+
if (spec.type === "ImportSpecifier" && spec.imported.type === "Identifier") {
|
|
134
|
+
return !removedKeyImports.has(spec.imported.name);
|
|
135
|
+
}
|
|
136
|
+
return true;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
if (!hasFrameworkImport) {
|
|
142
|
+
// Add new import for useResponsive
|
|
143
|
+
const importDecl = j.importDeclaration([j.importSpecifier(j.identifier("useResponsive"))], j.literal("@vc-shell/framework"));
|
|
144
|
+
const body = root.find(j.Program).get("body");
|
|
145
|
+
const imports = root.find(j.ImportDeclaration);
|
|
146
|
+
if (imports.length > 0) {
|
|
147
|
+
// Insert after last import
|
|
148
|
+
j(imports.at(-1).get()).insertAfter(importDecl);
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
body.unshift(importDecl);
|
|
152
|
+
}
|
|
153
|
+
scriptChanged = true;
|
|
154
|
+
}
|
|
155
|
+
// Remove unused `inject` import from "vue" if no other inject() calls remain
|
|
156
|
+
const remainingInjectCalls = root.find(j.CallExpression, {
|
|
157
|
+
callee: { type: "Identifier", name: "inject" },
|
|
158
|
+
});
|
|
159
|
+
if (remainingInjectCalls.length === 0) {
|
|
160
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
161
|
+
if (path.node.source.value === "vue") {
|
|
162
|
+
path.node.specifiers = (path.node.specifiers || []).filter((spec) => {
|
|
163
|
+
if (spec.type === "ImportSpecifier" && spec.imported.type === "Identifier") {
|
|
164
|
+
return spec.imported.name !== "inject";
|
|
165
|
+
}
|
|
166
|
+
return true;
|
|
167
|
+
});
|
|
168
|
+
// Also remove `ref` if it was only used as default value in inject()
|
|
169
|
+
// Check if ref is still used elsewhere
|
|
170
|
+
const refUsages = root.find(j.Identifier, { name: "ref" }).filter((refPath) => {
|
|
171
|
+
// Skip the import specifier itself
|
|
172
|
+
return refPath.parent.node.type !== "ImportSpecifier";
|
|
173
|
+
});
|
|
174
|
+
if (refUsages.length === 0) {
|
|
175
|
+
path.node.specifiers = (path.node.specifiers || []).filter((spec) => {
|
|
176
|
+
if (spec.type === "ImportSpecifier" && spec.imported.type === "Identifier") {
|
|
177
|
+
return spec.imported.name !== "ref";
|
|
178
|
+
}
|
|
179
|
+
return true;
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
// Remove the entire import if no specifiers remain
|
|
183
|
+
if ((path.node.specifiers || []).length === 0) {
|
|
184
|
+
j(path).remove();
|
|
185
|
+
}
|
|
186
|
+
scriptChanged = true;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
// Remove unused `ref` from "vue" import when ref is no longer used in remaining code
|
|
191
|
+
// (already handled above when inject is removed)
|
|
192
|
+
// Insert the destructure statement after imports
|
|
193
|
+
const sourceCode = root.toSource();
|
|
194
|
+
// Find position after last import to insert destructure
|
|
195
|
+
const lines = sourceCode.split("\n");
|
|
196
|
+
let lastImportLine = -1;
|
|
197
|
+
for (let i = 0; i < lines.length; i++) {
|
|
198
|
+
if (lines[i].trimStart().startsWith("import ")) {
|
|
199
|
+
lastImportLine = i;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (lastImportLine >= 0) {
|
|
203
|
+
lines.splice(lastImportLine + 1, 0, "", destructureStr);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
lines.unshift(destructureStr);
|
|
207
|
+
}
|
|
208
|
+
newScriptContent = lines.join("\n");
|
|
209
|
+
scriptChanged = true;
|
|
210
|
+
}
|
|
211
|
+
if (scriptChanged && !newScriptContent) {
|
|
212
|
+
newScriptContent = root.toSource();
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
else if (templateNeeds.size > 0) {
|
|
216
|
+
// No script block but template needs useResponsive — edge case, skip
|
|
217
|
+
return null;
|
|
218
|
+
}
|
|
219
|
+
// 3. Nothing changed
|
|
220
|
+
if (!newTemplateContent && !newScriptContent)
|
|
221
|
+
return null;
|
|
222
|
+
// 4. Splice back into SFC — splice from end of file backward to preserve offsets
|
|
223
|
+
let result = fileInfo.source;
|
|
224
|
+
// Determine order: which block comes later in the file
|
|
225
|
+
const templateStart = descriptor.template?.loc.start.offset;
|
|
226
|
+
const templateEnd = descriptor.template?.loc.end.offset;
|
|
227
|
+
const scriptStart = scriptBlock?.loc.start.offset;
|
|
228
|
+
const scriptEnd = scriptBlock?.loc.end.offset;
|
|
229
|
+
const splices = [];
|
|
230
|
+
if (newTemplateContent && templateStart != null && templateEnd != null) {
|
|
231
|
+
splices.push({ start: templateStart, end: templateEnd, content: newTemplateContent });
|
|
232
|
+
}
|
|
233
|
+
if (newScriptContent && scriptStart != null && scriptEnd != null) {
|
|
234
|
+
splices.push({ start: scriptStart, end: scriptEnd, content: newScriptContent });
|
|
235
|
+
}
|
|
236
|
+
// Sort descending by start offset so we splice from end first
|
|
237
|
+
splices.sort((a, b) => b.start - a.start);
|
|
238
|
+
for (const splice of splices) {
|
|
239
|
+
result = result.substring(0, splice.start) + splice.content + result.substring(splice.end);
|
|
240
|
+
}
|
|
241
|
+
return result;
|
|
242
|
+
};
|
|
243
|
+
export default transform;
|
|
244
|
+
export const parser = "tsx";
|
|
245
|
+
//# sourceMappingURL=responsive-composable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responsive-composable.js","sourceRoot":"","sources":["../../src/transforms/responsive-composable.ts"],"names":[],"mappings":"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"}
|