@vc-shell/migrate 2.0.0-alpha.33 → 2.0.0-alpha.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/CHANGELOG.md +96 -58
- package/README.md +65 -40
- package/dist/baseline-versions.d.ts +11 -0
- package/dist/baseline-versions.js +52 -0
- package/dist/baseline-versions.js.map +1 -0
- package/dist/dep-updater.d.ts +7 -0
- package/dist/dep-updater.js +44 -15
- package/dist/dep-updater.js.map +1 -1
- package/dist/file-scanner.js.map +1 -1
- package/dist/report-generator.js +41 -1
- package/dist/report-generator.js.map +1 -1
- package/dist/runner.js +123 -109
- package/dist/runner.js.map +1 -1
- package/dist/transforms/blade-events-cleanup.d.ts +4 -0
- package/dist/transforms/blade-events-cleanup.js +50 -0
- package/dist/transforms/blade-events-cleanup.js.map +1 -0
- package/dist/transforms/blade-props-simplification.js.map +1 -1
- package/dist/transforms/define-app-module.js.map +1 -1
- package/dist/transforms/define-expose-to-children.js +18 -4
- package/dist/transforms/define-expose-to-children.js.map +1 -1
- package/dist/transforms/icon-replace.d.ts +4 -0
- package/dist/transforms/icon-replace.js +108 -0
- package/dist/transforms/icon-replace.js.map +1 -0
- package/dist/transforms/registry.js +57 -2
- package/dist/transforms/registry.js.map +1 -1
- package/dist/transforms/remove-app-module-options.d.ts +16 -0
- package/dist/transforms/remove-app-module-options.js +50 -0
- package/dist/transforms/remove-app-module-options.js.map +1 -0
- package/dist/transforms/remove-expose-title.d.ts +4 -0
- package/dist/transforms/remove-expose-title.js +52 -0
- package/dist/transforms/remove-expose-title.js.map +1 -0
- package/dist/transforms/remove-global-components.d.ts +8 -0
- package/dist/transforms/remove-global-components.js +236 -0
- package/dist/transforms/remove-global-components.js.map +1 -0
- package/dist/transforms/replace-cover-method.js +2 -6
- package/dist/transforms/replace-cover-method.js.map +1 -1
- package/dist/transforms/use-blade-form.js +2 -2
- package/dist/transforms/use-blade-form.js.map +1 -1
- package/dist/transforms/use-data-table-pagination-audit.d.ts +4 -0
- package/dist/transforms/use-data-table-pagination-audit.js +42 -0
- package/dist/transforms/use-data-table-pagination-audit.js.map +1 -0
- package/dist/transforms/vc-blade-loading-prop.d.ts +4 -0
- package/dist/transforms/vc-blade-loading-prop.js +89 -0
- package/dist/transforms/vc-blade-loading-prop.js.map +1 -0
- package/dist/transforms/widgets-migration.js +3 -2
- package/dist/transforms/widgets-migration.js.map +1 -1
- package/dist/utils/import-dedup.js +1 -1
- package/dist/utils/import-dedup.js.map +1 -1
- package/dist/utils/test-helpers.js +17 -1
- package/dist/utils/test-helpers.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-expose-to-children.js","sourceRoot":"","sources":["../../src/transforms/define-expose-to-children.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"define-expose-to-children.js","sourceRoot":"","sources":["../../src/transforms/define-expose-to-children.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mechanically replace well-known non-lucide icons with lucide equivalents.
|
|
3
|
+
* Only replaces icons that have an unambiguous 1:1 mapping.
|
|
4
|
+
* Unknown icons are left for the AI migration-agent (reported by icon-audit).
|
|
5
|
+
*/
|
|
6
|
+
const REPLACEMENTS = {
|
|
7
|
+
"material-add": "lucide-plus",
|
|
8
|
+
"material-refresh": "lucide-refresh-cw",
|
|
9
|
+
"material-delete": "lucide-trash-2",
|
|
10
|
+
"material-save": "lucide-save",
|
|
11
|
+
"material-send": "lucide-send",
|
|
12
|
+
"material-edit": "lucide-pencil",
|
|
13
|
+
"material-edit_square": "lucide-square-pen",
|
|
14
|
+
"material-mail": "lucide-mail",
|
|
15
|
+
"material-schedule": "lucide-clock",
|
|
16
|
+
"material-person_add": "lucide-user-plus",
|
|
17
|
+
"material-content_copy": "lucide-copy",
|
|
18
|
+
"material-close": "lucide-x",
|
|
19
|
+
"material-check": "lucide-check",
|
|
20
|
+
"material-search": "lucide-search",
|
|
21
|
+
"material-settings": "lucide-settings",
|
|
22
|
+
"material-file_export": "lucide-file-output",
|
|
23
|
+
"material-inventory_2": "lucide-package",
|
|
24
|
+
"material-how_to_reg": "lucide-user-check",
|
|
25
|
+
"material-person": "lucide-user",
|
|
26
|
+
"material-group": "lucide-users",
|
|
27
|
+
"material-visibility": "lucide-eye",
|
|
28
|
+
"material-visibility_off": "lucide-eye-off",
|
|
29
|
+
"material-info": "lucide-info",
|
|
30
|
+
"material-warning": "lucide-alert-triangle",
|
|
31
|
+
"material-error": "lucide-alert-circle",
|
|
32
|
+
"material-help": "lucide-help-circle",
|
|
33
|
+
"material-arrow_back": "lucide-arrow-left",
|
|
34
|
+
"material-arrow_forward": "lucide-arrow-right",
|
|
35
|
+
"material-expand_more": "lucide-chevron-down",
|
|
36
|
+
"material-expand_less": "lucide-chevron-up",
|
|
37
|
+
"material-more_vert": "lucide-more-vertical",
|
|
38
|
+
"material-more_horiz": "lucide-more-horizontal",
|
|
39
|
+
"material-filter_list": "lucide-filter",
|
|
40
|
+
"material-sort": "lucide-arrow-up-down",
|
|
41
|
+
"material-link": "lucide-link",
|
|
42
|
+
"material-open_in_new": "lucide-external-link",
|
|
43
|
+
"material-lock": "lucide-lock",
|
|
44
|
+
"material-lock_open": "lucide-unlock",
|
|
45
|
+
"material-star": "lucide-star",
|
|
46
|
+
"material-favorite": "lucide-heart",
|
|
47
|
+
"material-shopping_cart": "lucide-shopping-cart",
|
|
48
|
+
"material-dashboard": "lucide-layout-dashboard",
|
|
49
|
+
"material-home": "lucide-home",
|
|
50
|
+
"material-list": "lucide-list",
|
|
51
|
+
"material-calendar_today": "lucide-calendar",
|
|
52
|
+
"material-image": "lucide-image",
|
|
53
|
+
"material-photo": "lucide-image",
|
|
54
|
+
"material-play_arrow": "lucide-play",
|
|
55
|
+
"material-pause": "lucide-pause",
|
|
56
|
+
"material-stop": "lucide-square",
|
|
57
|
+
"material-receipt": "lucide-receipt",
|
|
58
|
+
"fa-check": "lucide-check",
|
|
59
|
+
"fa-times": "lucide-x",
|
|
60
|
+
"fa-plus": "lucide-plus",
|
|
61
|
+
"fa-edit": "lucide-pencil",
|
|
62
|
+
"fa-trash": "lucide-trash-2",
|
|
63
|
+
"fa-trash-alt": "lucide-trash-2",
|
|
64
|
+
"fa-search": "lucide-search",
|
|
65
|
+
"fa-save": "lucide-save",
|
|
66
|
+
"fa-cog": "lucide-settings",
|
|
67
|
+
"fa-user": "lucide-user",
|
|
68
|
+
"fa-download": "lucide-download",
|
|
69
|
+
"fa-upload": "lucide-upload",
|
|
70
|
+
"bi-plus": "lucide-plus",
|
|
71
|
+
"bi-trash": "lucide-trash-2",
|
|
72
|
+
"bi-pencil": "lucide-pencil",
|
|
73
|
+
"bi-search": "lucide-search",
|
|
74
|
+
"bi-x": "lucide-x",
|
|
75
|
+
"bi-check": "lucide-check",
|
|
76
|
+
"bi-gear": "lucide-settings",
|
|
77
|
+
"bi-person": "lucide-user",
|
|
78
|
+
};
|
|
79
|
+
const transform = (fileInfo, api, _options) => {
|
|
80
|
+
let source = fileInfo.source;
|
|
81
|
+
let count = 0;
|
|
82
|
+
for (const [oldIcon, newIcon] of Object.entries(REPLACEMENTS)) {
|
|
83
|
+
const escaped = oldIcon.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
84
|
+
const pattern = new RegExp(`(["'])${escaped}\\1`, "g");
|
|
85
|
+
if (pattern.test(source)) {
|
|
86
|
+
pattern.lastIndex = 0;
|
|
87
|
+
source = source.replace(pattern, `$1${newIcon}$1`);
|
|
88
|
+
count++;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Handle FA class syntax: "fas fa-check" → "lucide-check"
|
|
92
|
+
source = source.replace(/["'](?:fas?|far|fal|fab)\s+(fa-[\w-]+)["']/g, (match, faIcon) => {
|
|
93
|
+
const replacement = REPLACEMENTS[faIcon];
|
|
94
|
+
if (replacement) {
|
|
95
|
+
count++;
|
|
96
|
+
const quote = match[0];
|
|
97
|
+
return `${quote}${replacement}${quote}`;
|
|
98
|
+
}
|
|
99
|
+
return match;
|
|
100
|
+
});
|
|
101
|
+
if (count === 0)
|
|
102
|
+
return null;
|
|
103
|
+
api.report(`${fileInfo.path}: Replaced ${count} icon(s) with lucide equivalents`);
|
|
104
|
+
return source;
|
|
105
|
+
};
|
|
106
|
+
export default transform;
|
|
107
|
+
export const parser = "tsx";
|
|
108
|
+
//# sourceMappingURL=icon-replace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"icon-replace.js","sourceRoot":"","sources":["../../src/transforms/icon-replace.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,14 @@ export const transforms = [
|
|
|
60
60
|
fileExtensions: [".vue"],
|
|
61
61
|
after: ["define-options-to-blade"],
|
|
62
62
|
},
|
|
63
|
+
{
|
|
64
|
+
name: "blade-events-cleanup",
|
|
65
|
+
description: "Remove @parent:call, @close:blade, @collapse:blade, @expand:blade from all .vue files",
|
|
66
|
+
introducedIn: "2.0.0",
|
|
67
|
+
transformPath: t("blade-events-cleanup"),
|
|
68
|
+
fileExtensions: [".vue"],
|
|
69
|
+
after: ["blade-props-simplification"],
|
|
70
|
+
},
|
|
63
71
|
{
|
|
64
72
|
name: "define-options-to-blade",
|
|
65
73
|
description: "defineOptions() → defineBlade() for blade pages (removes notifyType)",
|
|
@@ -69,6 +77,12 @@ export const transforms = [
|
|
|
69
77
|
fileExtensions: [".vue"],
|
|
70
78
|
after: ["use-blade-migration"],
|
|
71
79
|
},
|
|
80
|
+
{
|
|
81
|
+
name: "icon-replace",
|
|
82
|
+
description: "Replace well-known material-/bi-/fa- icons with lucide equivalents",
|
|
83
|
+
introducedIn: "2.0.0",
|
|
84
|
+
transformPath: t("icon-replace"),
|
|
85
|
+
},
|
|
72
86
|
{
|
|
73
87
|
name: "icon-audit",
|
|
74
88
|
description: "Detect non-lucide icons (material-/bi-/fa-) and suggest lucide replacements (diagnostic-only)",
|
|
@@ -76,6 +90,7 @@ export const transforms = [
|
|
|
76
90
|
diagnosticOnly: true,
|
|
77
91
|
migrationGuideSection: "Section 2",
|
|
78
92
|
transformPath: t("icon-audit"),
|
|
93
|
+
after: ["icon-replace"],
|
|
79
94
|
},
|
|
80
95
|
{
|
|
81
96
|
name: "scss-safe-use",
|
|
@@ -200,12 +215,12 @@ export const transforms = [
|
|
|
200
215
|
},
|
|
201
216
|
{
|
|
202
217
|
name: "use-blade-form",
|
|
203
|
-
description: "Detect useForm + useBeforeUnload patterns for migration to useBladeForm()",
|
|
218
|
+
description: "Detect useForm + useBeforeUnload + useModificationTracker patterns for migration to useBladeForm()",
|
|
204
219
|
introducedIn: "2.0.0-alpha.31",
|
|
205
220
|
diagnosticOnly: true,
|
|
206
221
|
migrationGuideSection: "Guide 37",
|
|
207
222
|
transformPath: t("use-blade-form"),
|
|
208
|
-
fileExtensions: [".vue"],
|
|
223
|
+
fileExtensions: [".vue", ".ts"],
|
|
209
224
|
},
|
|
210
225
|
{
|
|
211
226
|
name: "remove-pathmatch-route",
|
|
@@ -239,6 +254,46 @@ export const transforms = [
|
|
|
239
254
|
migrationGuideSection: "Guide 04",
|
|
240
255
|
transformPath: t("window-globals"),
|
|
241
256
|
},
|
|
257
|
+
{
|
|
258
|
+
name: "remove-global-components",
|
|
259
|
+
description: "Add explicit imports for globally registered Vc* components and directives",
|
|
260
|
+
introducedIn: "2.0.0-alpha.32",
|
|
261
|
+
migrationGuideSection: "Guide 40",
|
|
262
|
+
transformPath: t("remove-global-components"),
|
|
263
|
+
fileExtensions: [".vue"],
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
name: "remove-expose-title",
|
|
267
|
+
description: "Remove deprecated `title` from exposeToChildren({...}) — computed refs no longer allowed",
|
|
268
|
+
introducedIn: "2.0.0-alpha.33",
|
|
269
|
+
transformPath: t("remove-expose-title"),
|
|
270
|
+
fileExtensions: [".vue", ".ts"],
|
|
271
|
+
after: ["define-expose-to-children"],
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
name: "remove-app-module-options",
|
|
275
|
+
description: "Remove `{ router }` second argument from .use(AppModule, { router }) — defineAppModule takes no options",
|
|
276
|
+
introducedIn: "2.0.0-alpha.33",
|
|
277
|
+
transformPath: t("remove-app-module-options"),
|
|
278
|
+
fileExtensions: [".ts"],
|
|
279
|
+
after: ["define-app-module"],
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
name: "vc-blade-loading-prop",
|
|
283
|
+
description: 'Convert <VcBlade v-loading="X"> to <VcBlade :loading="X"> — use built-in blade loading prop',
|
|
284
|
+
introducedIn: "2.0.0-alpha.33",
|
|
285
|
+
transformPath: t("vc-blade-loading-prop"),
|
|
286
|
+
fileExtensions: [".vue"],
|
|
287
|
+
},
|
|
288
|
+
{
|
|
289
|
+
name: "use-data-table-pagination-audit",
|
|
290
|
+
description: "Detect manual pagination boilerplate (totalCount/pages/currentPage triple, onPaginationClick) — migrate to useDataTablePagination",
|
|
291
|
+
introducedIn: "2.0.0-alpha.33",
|
|
292
|
+
diagnosticOnly: true,
|
|
293
|
+
migrationGuideSection: "Guide 41",
|
|
294
|
+
transformPath: t("use-data-table-pagination-audit"),
|
|
295
|
+
fileExtensions: [".ts", ".vue"],
|
|
296
|
+
},
|
|
242
297
|
];
|
|
243
298
|
export function selectTransforms(currentVersion, targetVersion) {
|
|
244
299
|
const current = semver.parse(currentVersion);
|
|
@@ -1 +1 @@
|
|
|
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,uBAAuB;QAC7B,WAAW,EAAE,mEAAmE;QAChF,YAAY,EAAE,OAAO;QACrB,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,CAAC,CAAC,uBAAuB,CAAC;KAC1C;IACD;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;QAC9C,KAAK,EAAE,CAAC,yBAAyB,CAAC;KACnC;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,oEAAoE;QACjF,YAAY,EAAE,OAAO;QACrB,qBAAqB,EAAE,UAAU;QACjC,aAAa,EAAE,CAAC,CAAC,2BAA2B,CAAC;QAC7C,cAAc,EAAE,CAAC,MAAM,CAAC;QACxB,KAAK,EAAE,CAAC,yBAAyB,CAAC;KACnC;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;QACxB,KAAK,EAAE,CAAC,qBAAqB,CAAC;KAC/B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,WAAW,EAAE,+FAA+F;QAC5G,YAAY,EAAE,OAAO;QACrB,cAAc,EAAE,IAAI;QACpB,qBAAqB,EAAE,WAAW;QAClC,aAAa,EAAE,CAAC,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/transforms/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Transform } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Remove `{ router }` second argument from `.use(SomeAppModule, { router })`.
|
|
4
|
+
*
|
|
5
|
+
* `defineAppModule()` in v2 returns `{ install(app: App): void }` — it takes
|
|
6
|
+
* NO options. The legacy `{ router }` argument is a leftover from the older
|
|
7
|
+
* module shape and now causes a TS2769 overload error.
|
|
8
|
+
*
|
|
9
|
+
* Narrow match: only when the second argument is an ObjectExpression with a
|
|
10
|
+
* single property named `router` (shorthand or explicit). This avoids
|
|
11
|
+
* touching framework-style calls like `.use(VirtoShellFramework, { router, i18n: {...} })`
|
|
12
|
+
* which legitimately accept multi-key options.
|
|
13
|
+
*/
|
|
14
|
+
declare const transform: Transform;
|
|
15
|
+
export default transform;
|
|
16
|
+
export declare const parser = "tsx";
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Remove `{ router }` second argument from `.use(SomeAppModule, { router })`.
|
|
3
|
+
*
|
|
4
|
+
* `defineAppModule()` in v2 returns `{ install(app: App): void }` — it takes
|
|
5
|
+
* NO options. The legacy `{ router }` argument is a leftover from the older
|
|
6
|
+
* module shape and now causes a TS2769 overload error.
|
|
7
|
+
*
|
|
8
|
+
* Narrow match: only when the second argument is an ObjectExpression with a
|
|
9
|
+
* single property named `router` (shorthand or explicit). This avoids
|
|
10
|
+
* touching framework-style calls like `.use(VirtoShellFramework, { router, i18n: {...} })`
|
|
11
|
+
* which legitimately accept multi-key options.
|
|
12
|
+
*/
|
|
13
|
+
const transform = (fileInfo, api, _options) => {
|
|
14
|
+
if (!fileInfo.path.endsWith(".ts"))
|
|
15
|
+
return null;
|
|
16
|
+
const j = api.jscodeshift;
|
|
17
|
+
const root = j(fileInfo.source);
|
|
18
|
+
let modified = false;
|
|
19
|
+
root.find(j.CallExpression).forEach((path) => {
|
|
20
|
+
const callee = path.node.callee;
|
|
21
|
+
// Match `<something>.use(X, Y)` — callee is MemberExpression with property `.use`
|
|
22
|
+
if (callee.type !== "MemberExpression")
|
|
23
|
+
return;
|
|
24
|
+
if (callee.property.type !== "Identifier" || callee.property.name !== "use")
|
|
25
|
+
return;
|
|
26
|
+
const args = path.node.arguments;
|
|
27
|
+
if (args.length !== 2)
|
|
28
|
+
return;
|
|
29
|
+
const secondArg = args[1];
|
|
30
|
+
if (secondArg.type !== "ObjectExpression")
|
|
31
|
+
return;
|
|
32
|
+
if (secondArg.properties.length !== 1)
|
|
33
|
+
return;
|
|
34
|
+
const prop = secondArg.properties[0];
|
|
35
|
+
const isProperty = prop.type === "ObjectProperty" || prop.type === "Property";
|
|
36
|
+
if (!isProperty)
|
|
37
|
+
return;
|
|
38
|
+
if (prop.key?.type !== "Identifier" || prop.key.name !== "router")
|
|
39
|
+
return;
|
|
40
|
+
// Remove the second argument — .use(X, { router }) → .use(X)
|
|
41
|
+
path.node.arguments = [args[0]];
|
|
42
|
+
modified = true;
|
|
43
|
+
});
|
|
44
|
+
if (!modified)
|
|
45
|
+
return null;
|
|
46
|
+
return root.toSource();
|
|
47
|
+
};
|
|
48
|
+
export default transform;
|
|
49
|
+
export const parser = "tsx";
|
|
50
|
+
//# sourceMappingURL=remove-app-module-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-app-module-options.js","sourceRoot":"","sources":["../../src/transforms/remove-app-module-options.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AAEH,MAAM,SAAS,GAAc,CAAC,QAAkB,EAAE,GAAQ,EAAE,QAAiB,EAAiB,EAAE;IAC9F,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhD,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAChC,kFAAkF;QAClF,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB;YAAE,OAAO;QAC/C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK;YAAE,OAAO;QAEpF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1B,IAAI,SAAS,CAAC,IAAI,KAAK,kBAAkB;YAAE,OAAO;QAClD,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9C,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAQ,CAAC;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,gBAAgB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC;QAC9E,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QAE1E,6DAA6D;QAC7D,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,QAAQ,GAAG,IAAI,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC;AACzB,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { wrapForSFC } from "../utils/vue-sfc-wrapper.js";
|
|
2
|
+
/**
|
|
3
|
+
* Remove `title` property from `exposeToChildren({...})` calls.
|
|
4
|
+
*
|
|
5
|
+
* In v2, exposeToChildren is function-only — it registers callable methods in
|
|
6
|
+
* the blade messaging system. Passing a reactive `title` (ComputedRef<string>)
|
|
7
|
+
* trips the TS signature `(...args: any[]) => any` check, and the value is no
|
|
8
|
+
* longer used by the blade chrome anyway.
|
|
9
|
+
*
|
|
10
|
+
* If `title` is the only property, the entire exposeToChildren() call is
|
|
11
|
+
* removed. Otherwise, only the `title` key is stripped.
|
|
12
|
+
*/
|
|
13
|
+
function coreTransform(fileInfo, api, _options) {
|
|
14
|
+
const j = api.jscodeshift;
|
|
15
|
+
const root = j(fileInfo.source);
|
|
16
|
+
const calls = root.find(j.CallExpression, { callee: { name: "exposeToChildren" } });
|
|
17
|
+
if (calls.size() === 0)
|
|
18
|
+
return null;
|
|
19
|
+
let modified = false;
|
|
20
|
+
calls.forEach((path) => {
|
|
21
|
+
const args = path.node.arguments;
|
|
22
|
+
if (args.length === 0)
|
|
23
|
+
return;
|
|
24
|
+
const arg = args[0];
|
|
25
|
+
if (arg.type !== "ObjectExpression")
|
|
26
|
+
return;
|
|
27
|
+
const titleIdx = arg.properties.findIndex((p) => (p.type === "ObjectProperty" || p.type === "Property") &&
|
|
28
|
+
p.key?.type === "Identifier" &&
|
|
29
|
+
p.key.name === "title");
|
|
30
|
+
if (titleIdx === -1)
|
|
31
|
+
return;
|
|
32
|
+
arg.properties.splice(titleIdx, 1);
|
|
33
|
+
modified = true;
|
|
34
|
+
// If nothing else remains, remove the whole statement
|
|
35
|
+
if (arg.properties.length === 0) {
|
|
36
|
+
// Walk up to the enclosing ExpressionStatement (if any) and remove it
|
|
37
|
+
let parent = path.parent;
|
|
38
|
+
while (parent && parent.node.type !== "ExpressionStatement" && parent.node.type !== "Program") {
|
|
39
|
+
parent = parent.parent;
|
|
40
|
+
}
|
|
41
|
+
if (parent && parent.node.type === "ExpressionStatement") {
|
|
42
|
+
j(parent).remove();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
if (!modified)
|
|
47
|
+
return null;
|
|
48
|
+
return root.toSource();
|
|
49
|
+
}
|
|
50
|
+
export default wrapForSFC(coreTransform);
|
|
51
|
+
export const parser = "tsx";
|
|
52
|
+
//# sourceMappingURL=remove-expose-title.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-expose-title.js","sourceRoot":"","sources":["../../src/transforms/remove-expose-title.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD;;;;;;;;;;GAUG;AAEH,SAAS,aAAa,CAAC,QAAkB,EAAE,GAAQ,EAAE,QAAiB;IACpE,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACpF,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE9B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,CAAC,IAAI,KAAK,kBAAkB;YAAE,OAAO;QAE5C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC,SAAS,CACvC,CAAC,CAAM,EAAE,EAAE,CACT,CAAC,CAAC,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;YACtD,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,YAAY;YAC5B,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CACzB,CAAC;QAEF,IAAI,QAAQ,KAAK,CAAC,CAAC;YAAE,OAAO;QAE5B,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACnC,QAAQ,GAAG,IAAI,CAAC;QAEhB,sDAAsD;QACtD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,sEAAsE;YACtE,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YACzB,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9F,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,CAAC;YACD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACzD,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,eAAe,UAAU,CAAC,aAAa,CAAc,CAAC;AACtD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Transform } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Codemod: add explicit imports for globally registered Vc* components and directives.
|
|
4
|
+
* Also moves component/directive imports from @vc-shell/framework to @vc-shell/framework/ui.
|
|
5
|
+
*/
|
|
6
|
+
declare const transform: Transform;
|
|
7
|
+
export default transform;
|
|
8
|
+
export declare const parser = "tsx";
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { parse as parseSFC } from "@vue/compiler-sfc";
|
|
2
|
+
/**
|
|
3
|
+
* All Vc* component names exported from @vc-shell/framework/ui.
|
|
4
|
+
* Used to detect usage in templates and add explicit imports.
|
|
5
|
+
*/
|
|
6
|
+
const UI_COMPONENTS = new Set([
|
|
7
|
+
// Atoms
|
|
8
|
+
"VcBadge",
|
|
9
|
+
"VcBanner",
|
|
10
|
+
"VcButton",
|
|
11
|
+
"VcButtonGroup",
|
|
12
|
+
"VcCard",
|
|
13
|
+
"VcCol",
|
|
14
|
+
"VcContainer",
|
|
15
|
+
"VcHint",
|
|
16
|
+
"VcIcon",
|
|
17
|
+
"VcImage",
|
|
18
|
+
"VcLabel",
|
|
19
|
+
"VcLink",
|
|
20
|
+
"VcLoading",
|
|
21
|
+
"VcProgress",
|
|
22
|
+
"VcRow",
|
|
23
|
+
"VcScrollableContainer",
|
|
24
|
+
"VcSkeleton",
|
|
25
|
+
"VcStatus",
|
|
26
|
+
"VcStatusIcon",
|
|
27
|
+
"VcTooltip",
|
|
28
|
+
"VcVideo",
|
|
29
|
+
"VcWidget",
|
|
30
|
+
// Molecules
|
|
31
|
+
"VcLanguageSelector",
|
|
32
|
+
"VcAccordion",
|
|
33
|
+
"VcAccordionItem",
|
|
34
|
+
"VcBreadcrumbs",
|
|
35
|
+
"VcCheckbox",
|
|
36
|
+
"VcCheckboxGroup",
|
|
37
|
+
"VcColorInput",
|
|
38
|
+
"VcDatePicker",
|
|
39
|
+
"VcDropdown",
|
|
40
|
+
"VcDropdownItem",
|
|
41
|
+
"VcDropdownPanel",
|
|
42
|
+
"VcEditor",
|
|
43
|
+
"VcField",
|
|
44
|
+
"VcFileUpload",
|
|
45
|
+
"VcForm",
|
|
46
|
+
"VcImageTile",
|
|
47
|
+
"VcInput",
|
|
48
|
+
"VcInputCurrency",
|
|
49
|
+
"VcInputGroup",
|
|
50
|
+
"VcMenu",
|
|
51
|
+
"VcMenuItem",
|
|
52
|
+
"VcMenuGroup",
|
|
53
|
+
"VcMultivalue",
|
|
54
|
+
"VcPagination",
|
|
55
|
+
"VcRadioButton",
|
|
56
|
+
"VcRadioGroup",
|
|
57
|
+
"VcRating",
|
|
58
|
+
"VcSelect",
|
|
59
|
+
"VcSlider",
|
|
60
|
+
"VcSwitch",
|
|
61
|
+
"VcTextarea",
|
|
62
|
+
"VcToast",
|
|
63
|
+
// Organisms
|
|
64
|
+
"VcApp",
|
|
65
|
+
"VcAuthLayout",
|
|
66
|
+
"VcBlade",
|
|
67
|
+
"VcTable",
|
|
68
|
+
"VcDataTable",
|
|
69
|
+
"VcColumn",
|
|
70
|
+
"VcDynamicProperty",
|
|
71
|
+
"VcGallery",
|
|
72
|
+
"VcImageUpload",
|
|
73
|
+
"VcPopup",
|
|
74
|
+
"VcSidebar",
|
|
75
|
+
]);
|
|
76
|
+
/**
|
|
77
|
+
* Directives exported from @vc-shell/framework/ui.
|
|
78
|
+
* Template directive name (without v-) -> script variable name.
|
|
79
|
+
*/
|
|
80
|
+
const DIRECTIVES = {
|
|
81
|
+
loading: "vLoading",
|
|
82
|
+
autofocus: "vAutofocus",
|
|
83
|
+
};
|
|
84
|
+
const FRAMEWORK_UI_SOURCE = "@vc-shell/framework/ui";
|
|
85
|
+
const FRAMEWORK_MAIN_SOURCE = "@vc-shell/framework";
|
|
86
|
+
/** Convert kebab-case to PascalCase: "vc-button" -> "VcButton" */
|
|
87
|
+
function kebabToPascal(name) {
|
|
88
|
+
return name
|
|
89
|
+
.split("-")
|
|
90
|
+
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
|
|
91
|
+
.join("");
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Scan template string for Vc* component tags and framework directives.
|
|
95
|
+
*/
|
|
96
|
+
function scanTemplate(templateContent) {
|
|
97
|
+
const components = new Set();
|
|
98
|
+
const directives = new Set();
|
|
99
|
+
// Match <VcFoo or <vc-foo (self-closing and open tags)
|
|
100
|
+
const tagRegex = /<(Vc[A-Z]\w+|vc-[\w-]+)[\s/>]/g;
|
|
101
|
+
let match;
|
|
102
|
+
while ((match = tagRegex.exec(templateContent)) !== null) {
|
|
103
|
+
let name = match[1];
|
|
104
|
+
if (name.includes("-")) {
|
|
105
|
+
name = kebabToPascal(name);
|
|
106
|
+
}
|
|
107
|
+
if (UI_COMPONENTS.has(name)) {
|
|
108
|
+
components.add(name);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Match v-loading, v-autofocus
|
|
112
|
+
for (const [directiveName, varName] of Object.entries(DIRECTIVES)) {
|
|
113
|
+
const re = new RegExp(`v-${directiveName}(?=[\\s=>/"'])`, "g");
|
|
114
|
+
if (re.test(templateContent)) {
|
|
115
|
+
directives.add(varName);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return { components, directives };
|
|
119
|
+
}
|
|
120
|
+
/** Set of all names that belong in @vc-shell/framework/ui */
|
|
121
|
+
const UI_NAMES = new Set([...UI_COMPONENTS, ...Object.values(DIRECTIVES)]);
|
|
122
|
+
/**
|
|
123
|
+
* Codemod: add explicit imports for globally registered Vc* components and directives.
|
|
124
|
+
* Also moves component/directive imports from @vc-shell/framework to @vc-shell/framework/ui.
|
|
125
|
+
*/
|
|
126
|
+
const transform = (fileInfo, api, _options) => {
|
|
127
|
+
if (!fileInfo.path.endsWith(".vue"))
|
|
128
|
+
return null;
|
|
129
|
+
const { descriptor } = parseSFC(fileInfo.source, { filename: fileInfo.path });
|
|
130
|
+
const scriptBlock = descriptor.scriptSetup ?? descriptor.script;
|
|
131
|
+
if (!scriptBlock)
|
|
132
|
+
return null;
|
|
133
|
+
const templateContent = descriptor.template?.content;
|
|
134
|
+
if (!templateContent)
|
|
135
|
+
return null;
|
|
136
|
+
const { components: usedComponents, directives: usedDirectives } = scanTemplate(templateContent);
|
|
137
|
+
if (usedComponents.size === 0 && usedDirectives.size === 0)
|
|
138
|
+
return null;
|
|
139
|
+
const j = api.jscodeshift;
|
|
140
|
+
const root = j(scriptBlock.content);
|
|
141
|
+
let changed = false;
|
|
142
|
+
// Track what is already imported (from any source)
|
|
143
|
+
const alreadyImported = new Set();
|
|
144
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
145
|
+
for (const spec of path.node.specifiers || []) {
|
|
146
|
+
if (spec.type === "ImportSpecifier" && spec.imported.type === "Identifier") {
|
|
147
|
+
alreadyImported.add(spec.imported.name);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
// Track UI names that need to be moved from @vc-shell/framework to /ui
|
|
152
|
+
const movedToUi = new Set();
|
|
153
|
+
// Move component/directive imports from @vc-shell/framework -> /ui
|
|
154
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
155
|
+
if (path.node.source.value !== FRAMEWORK_MAIN_SOURCE)
|
|
156
|
+
return;
|
|
157
|
+
const specifiers = path.node.specifiers || [];
|
|
158
|
+
const uiSpecs = specifiers.filter((s) => s.type === "ImportSpecifier" && s.imported.type === "Identifier" && UI_NAMES.has(s.imported.name));
|
|
159
|
+
if (uiSpecs.length === 0)
|
|
160
|
+
return;
|
|
161
|
+
// Track moved specifiers — they need to go into /ui import
|
|
162
|
+
for (const s of uiSpecs) {
|
|
163
|
+
if (s.type === "ImportSpecifier" && s.imported.type === "Identifier") {
|
|
164
|
+
movedToUi.add(s.imported.name);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
const nonUiSpecs = specifiers.filter((s) => !(s.type === "ImportSpecifier" && s.imported.type === "Identifier" && UI_NAMES.has(s.imported.name)));
|
|
168
|
+
if (nonUiSpecs.length === 0) {
|
|
169
|
+
// All specifiers are UI -> rewrite source
|
|
170
|
+
path.node.source = j.literal(FRAMEWORK_UI_SOURCE);
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Split: keep non-UI in original, UI will be added to /ui import below
|
|
174
|
+
path.node.specifiers = nonUiSpecs;
|
|
175
|
+
}
|
|
176
|
+
changed = true;
|
|
177
|
+
});
|
|
178
|
+
// Determine what still needs to be added to /ui
|
|
179
|
+
const missingComponents = [...usedComponents].filter((c) => !alreadyImported.has(c));
|
|
180
|
+
const missingDirectives = [...usedDirectives].filter((d) => !alreadyImported.has(d));
|
|
181
|
+
// Include moved specifiers (split from main entry) that weren't rewritten in-place
|
|
182
|
+
const splitNames = [...movedToUi].filter((name) => {
|
|
183
|
+
// Only add if not already in a /ui import (rewrite-all case rewrites in-place)
|
|
184
|
+
const uiImportExists = root
|
|
185
|
+
.find(j.ImportDeclaration)
|
|
186
|
+
.filter((p) => p.node.source.value === FRAMEWORK_UI_SOURCE)
|
|
187
|
+
.some((p) => (p.node.specifiers || []).some((s) => s.type === "ImportSpecifier" && s.imported.type === "Identifier" && s.imported.name === name));
|
|
188
|
+
return !uiImportExists;
|
|
189
|
+
});
|
|
190
|
+
const toAdd = [...new Set([...missingComponents, ...missingDirectives, ...splitNames])].sort();
|
|
191
|
+
if (toAdd.length > 0 || changed) {
|
|
192
|
+
// Find or create @vc-shell/framework/ui import
|
|
193
|
+
const uiImports = root.find(j.ImportDeclaration).filter((path) => path.node.source.value === FRAMEWORK_UI_SOURCE);
|
|
194
|
+
if (uiImports.length > 0) {
|
|
195
|
+
// Merge into existing
|
|
196
|
+
const existingSpecs = uiImports.get().node.specifiers || [];
|
|
197
|
+
const existingNames = new Set(existingSpecs.filter((s) => s.type === "ImportSpecifier").map((s) => s.imported.name));
|
|
198
|
+
for (const name of toAdd) {
|
|
199
|
+
if (!existingNames.has(name)) {
|
|
200
|
+
existingSpecs.push(j.importSpecifier(j.identifier(name)));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
// Sort specifiers alphabetically
|
|
204
|
+
existingSpecs.sort((a, b) => {
|
|
205
|
+
const aName = a.imported?.name || "";
|
|
206
|
+
const bName = b.imported?.name || "";
|
|
207
|
+
return aName.localeCompare(bName);
|
|
208
|
+
});
|
|
209
|
+
changed = true;
|
|
210
|
+
}
|
|
211
|
+
else if (toAdd.length > 0) {
|
|
212
|
+
// Create new import
|
|
213
|
+
const importDecl = j.importDeclaration(toAdd.map((name) => j.importSpecifier(j.identifier(name))), j.literal(FRAMEWORK_UI_SOURCE));
|
|
214
|
+
const imports = root.find(j.ImportDeclaration);
|
|
215
|
+
if (imports.length > 0) {
|
|
216
|
+
j(imports.at(-1).get()).insertAfter(importDecl);
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
root.find(j.Program).get("body").unshift(importDecl);
|
|
220
|
+
}
|
|
221
|
+
changed = true;
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
if (!changed)
|
|
225
|
+
return null;
|
|
226
|
+
// Splice script back into SFC
|
|
227
|
+
const newScriptContent = root.toSource();
|
|
228
|
+
if (newScriptContent === scriptBlock.content)
|
|
229
|
+
return null;
|
|
230
|
+
const scriptStart = scriptBlock.loc.start.offset;
|
|
231
|
+
const scriptEnd = scriptBlock.loc.end.offset;
|
|
232
|
+
return fileInfo.source.substring(0, scriptStart) + newScriptContent + fileInfo.source.substring(scriptEnd);
|
|
233
|
+
};
|
|
234
|
+
export default transform;
|
|
235
|
+
export const parser = "tsx";
|
|
236
|
+
//# sourceMappingURL=remove-global-components.js.map
|