lwc-convert 1.0.0
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/LICENSE +21 -0
- package/README.md +719 -0
- package/dist/cli/commands/aura.d.ts +6 -0
- package/dist/cli/commands/aura.d.ts.map +1 -0
- package/dist/cli/commands/aura.js +225 -0
- package/dist/cli/commands/aura.js.map +1 -0
- package/dist/cli/commands/vf.d.ts +6 -0
- package/dist/cli/commands/vf.d.ts.map +1 -0
- package/dist/cli/commands/vf.js +218 -0
- package/dist/cli/commands/vf.js.map +1 -0
- package/dist/cli/interactive.d.ts +20 -0
- package/dist/cli/interactive.d.ts.map +1 -0
- package/dist/cli/interactive.js +577 -0
- package/dist/cli/interactive.js.map +1 -0
- package/dist/cli/options.d.ts +21 -0
- package/dist/cli/options.d.ts.map +1 -0
- package/dist/cli/options.js +24 -0
- package/dist/cli/options.js.map +1 -0
- package/dist/generators/full-conversion.d.ts +41 -0
- package/dist/generators/full-conversion.d.ts.map +1 -0
- package/dist/generators/full-conversion.js +538 -0
- package/dist/generators/full-conversion.js.map +1 -0
- package/dist/generators/scaffolding.d.ts +40 -0
- package/dist/generators/scaffolding.d.ts.map +1 -0
- package/dist/generators/scaffolding.js +716 -0
- package/dist/generators/scaffolding.js.map +1 -0
- package/dist/generators/test-comparison.d.ts +47 -0
- package/dist/generators/test-comparison.d.ts.map +1 -0
- package/dist/generators/test-comparison.js +855 -0
- package/dist/generators/test-comparison.js.map +1 -0
- package/dist/generators/test-generator.d.ts +27 -0
- package/dist/generators/test-generator.d.ts.map +1 -0
- package/dist/generators/test-generator.js +385 -0
- package/dist/generators/test-generator.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +226 -0
- package/dist/index.js.map +1 -0
- package/dist/mappings/aura-to-lwc.json +321 -0
- package/dist/mappings/vf-to-lwc.json +354 -0
- package/dist/parsers/aura/controller-parser.d.ts +36 -0
- package/dist/parsers/aura/controller-parser.d.ts.map +1 -0
- package/dist/parsers/aura/controller-parser.js +269 -0
- package/dist/parsers/aura/controller-parser.js.map +1 -0
- package/dist/parsers/aura/helper-parser.d.ts +21 -0
- package/dist/parsers/aura/helper-parser.d.ts.map +1 -0
- package/dist/parsers/aura/helper-parser.js +173 -0
- package/dist/parsers/aura/helper-parser.js.map +1 -0
- package/dist/parsers/aura/markup-parser.d.ts +59 -0
- package/dist/parsers/aura/markup-parser.d.ts.map +1 -0
- package/dist/parsers/aura/markup-parser.js +279 -0
- package/dist/parsers/aura/markup-parser.js.map +1 -0
- package/dist/parsers/aura/style-parser.d.ts +37 -0
- package/dist/parsers/aura/style-parser.d.ts.map +1 -0
- package/dist/parsers/aura/style-parser.js +151 -0
- package/dist/parsers/aura/style-parser.js.map +1 -0
- package/dist/parsers/vf/apex-parser.d.ts +51 -0
- package/dist/parsers/vf/apex-parser.d.ts.map +1 -0
- package/dist/parsers/vf/apex-parser.js +251 -0
- package/dist/parsers/vf/apex-parser.js.map +1 -0
- package/dist/parsers/vf/page-parser.d.ts +61 -0
- package/dist/parsers/vf/page-parser.d.ts.map +1 -0
- package/dist/parsers/vf/page-parser.js +403 -0
- package/dist/parsers/vf/page-parser.js.map +1 -0
- package/dist/transformers/aura-to-lwc/controller.d.ts +36 -0
- package/dist/transformers/aura-to-lwc/controller.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/controller.js +372 -0
- package/dist/transformers/aura-to-lwc/controller.js.map +1 -0
- package/dist/transformers/aura-to-lwc/events.d.ts +47 -0
- package/dist/transformers/aura-to-lwc/events.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/events.js +262 -0
- package/dist/transformers/aura-to-lwc/events.js.map +1 -0
- package/dist/transformers/aura-to-lwc/markup.d.ts +51 -0
- package/dist/transformers/aura-to-lwc/markup.d.ts.map +1 -0
- package/dist/transformers/aura-to-lwc/markup.js +465 -0
- package/dist/transformers/aura-to-lwc/markup.js.map +1 -0
- package/dist/transformers/vf-to-lwc/components.d.ts +40 -0
- package/dist/transformers/vf-to-lwc/components.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/components.js +374 -0
- package/dist/transformers/vf-to-lwc/components.js.map +1 -0
- package/dist/transformers/vf-to-lwc/data-binding.d.ts +53 -0
- package/dist/transformers/vf-to-lwc/data-binding.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/data-binding.js +660 -0
- package/dist/transformers/vf-to-lwc/data-binding.js.map +1 -0
- package/dist/transformers/vf-to-lwc/markup.d.ts +44 -0
- package/dist/transformers/vf-to-lwc/markup.d.ts.map +1 -0
- package/dist/transformers/vf-to-lwc/markup.js +816 -0
- package/dist/transformers/vf-to-lwc/markup.js.map +1 -0
- package/dist/utils/confidence-scorer.d.ts +100 -0
- package/dist/utils/confidence-scorer.d.ts.map +1 -0
- package/dist/utils/confidence-scorer.js +358 -0
- package/dist/utils/confidence-scorer.js.map +1 -0
- package/dist/utils/file-io.d.ts +62 -0
- package/dist/utils/file-io.d.ts.map +1 -0
- package/dist/utils/file-io.js +248 -0
- package/dist/utils/file-io.js.map +1 -0
- package/dist/utils/logger.d.ts +34 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +130 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/open-folder.d.ts +9 -0
- package/dist/utils/open-folder.d.ts.map +1 -0
- package/dist/utils/open-folder.js +76 -0
- package/dist/utils/open-folder.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +29 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +240 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/dist/utils/session-store.d.ts +158 -0
- package/dist/utils/session-store.d.ts.map +1 -0
- package/dist/utils/session-store.js +518 -0
- package/dist/utils/session-store.js.map +1 -0
- package/dist/utils/vf-controller-resolver.d.ts +36 -0
- package/dist/utils/vf-controller-resolver.d.ts.map +1 -0
- package/dist/utils/vf-controller-resolver.js +162 -0
- package/dist/utils/vf-controller-resolver.js.map +1 -0
- package/package.json +81 -0
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Transform Aura controller/helper JavaScript to LWC JavaScript class
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.transformAuraController = transformAuraController;
|
|
7
|
+
const logger_1 = require("../../utils/logger");
|
|
8
|
+
const file_io_1 = require("../../utils/file-io");
|
|
9
|
+
/**
|
|
10
|
+
* Convert Aura type to JavaScript type comment
|
|
11
|
+
*/
|
|
12
|
+
function convertType(auraType) {
|
|
13
|
+
const typeMap = {
|
|
14
|
+
String: 'string',
|
|
15
|
+
Integer: 'number',
|
|
16
|
+
Decimal: 'number',
|
|
17
|
+
Double: 'number',
|
|
18
|
+
Long: 'number',
|
|
19
|
+
Boolean: 'boolean',
|
|
20
|
+
Date: 'Date',
|
|
21
|
+
DateTime: 'Date',
|
|
22
|
+
Object: 'Object',
|
|
23
|
+
'List<String>': 'string[]',
|
|
24
|
+
'List<Object>': 'Object[]',
|
|
25
|
+
'Map<String,Object>': 'Object',
|
|
26
|
+
'Aura.Component': 'any',
|
|
27
|
+
'Aura.Component[]': 'any[]',
|
|
28
|
+
};
|
|
29
|
+
// Check for List<X> pattern
|
|
30
|
+
const listMatch = auraType.match(/List<(\w+)>/i);
|
|
31
|
+
if (listMatch) {
|
|
32
|
+
const innerType = convertType(listMatch[1]);
|
|
33
|
+
return `${innerType}[]`;
|
|
34
|
+
}
|
|
35
|
+
return typeMap[auraType] || 'any';
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Convert Aura controller function body to LWC
|
|
39
|
+
*/
|
|
40
|
+
function convertFunctionBody(body, _func, allHelperFunctions) {
|
|
41
|
+
const warnings = [];
|
|
42
|
+
const usedLabels = [];
|
|
43
|
+
let converted = body;
|
|
44
|
+
// Replace component.get("v.x") with this.x
|
|
45
|
+
converted = converted.replace(/(?:component|cmp)\.get\s*\(\s*["']v\.(\w+)["']\s*\)/g, 'this.$1');
|
|
46
|
+
// Replace component.set("v.x", value) with this.x = value
|
|
47
|
+
converted = converted.replace(/(?:component|cmp)\.set\s*\(\s*["']v\.(\w+)["']\s*,\s*/g, 'this.$1 = ');
|
|
48
|
+
// Clean up the closing paren from set
|
|
49
|
+
converted = converted.replace(/this\.(\w+)\s*=\s*([^;]+)\s*\)/g, 'this.$1 = $2');
|
|
50
|
+
// Replace helper.methodName(component, ...) with this.methodName(...)
|
|
51
|
+
if (allHelperFunctions) {
|
|
52
|
+
for (const helperFunc of allHelperFunctions) {
|
|
53
|
+
const helperRegex = new RegExp(`helper\\.${helperFunc}\\s*\\(\\s*(?:component|cmp)\\s*,?\\s*`, 'g');
|
|
54
|
+
converted = converted.replace(helperRegex, `this.${helperFunc}(`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Handle $A.enqueueAction patterns - mark for manual conversion
|
|
58
|
+
if (converted.includes('$A.enqueueAction')) {
|
|
59
|
+
warnings.push('Server action ($A.enqueueAction) found - convert to imperative Apex call');
|
|
60
|
+
converted = converted.replace(/\$A\.enqueueAction\s*\([^)]+\)/g, '/* TODO: Convert to imperative Apex call */');
|
|
61
|
+
}
|
|
62
|
+
// Handle component.get("c.methodName") - server action setup
|
|
63
|
+
if (converted.includes('.get("c.') || converted.includes(".get('c.")) {
|
|
64
|
+
warnings.push('Server action reference found - import Apex method and call imperatively');
|
|
65
|
+
}
|
|
66
|
+
// Handle $A.get("e.c:EventName") - application events
|
|
67
|
+
converted = converted.replace(/\$A\.get\s*\(\s*["']e\.(?:c:)?(\w+)["']\s*\)/g, (_match, eventName) => {
|
|
68
|
+
warnings.push(`Application event "${eventName}" found - convert to CustomEvent or pub/sub pattern`);
|
|
69
|
+
return `/* TODO: Replace application event "${eventName}" with CustomEvent */`;
|
|
70
|
+
});
|
|
71
|
+
// Handle component.getEvent("eventName") - component events
|
|
72
|
+
converted = converted.replace(/(?:component|cmp)\.getEvent\s*\(\s*["'](\w+)["']\s*\)/g, (_match, eventName) => {
|
|
73
|
+
return `new CustomEvent('${eventName.toLowerCase()}', { detail: {} })`;
|
|
74
|
+
});
|
|
75
|
+
// Handle event.fire() - dispatch event
|
|
76
|
+
converted = converted.replace(/(\w+)\.fire\s*\(\s*\)/g, 'this.dispatchEvent($1)');
|
|
77
|
+
// Handle event.setParams({...}).fire()
|
|
78
|
+
converted = converted.replace(/(\w+)\.setParams\s*\(\s*(\{[^}]+\})\s*\)\.fire\s*\(\s*\)/g, (_match, varName, params) => {
|
|
79
|
+
return `this.dispatchEvent(new CustomEvent('${varName.toLowerCase()}', { detail: ${params} }))`;
|
|
80
|
+
});
|
|
81
|
+
// Handle event.getParam("x") - get event parameter
|
|
82
|
+
converted = converted.replace(/(?:event|evt)\.getParam\s*\(\s*["'](\w+)["']\s*\)/g, 'event.detail.$1');
|
|
83
|
+
// Handle event.getParams() - get all params
|
|
84
|
+
converted = converted.replace(/(?:event|evt)\.getParams\s*\(\s*\)/g, 'event.detail');
|
|
85
|
+
// Handle component.find("auraId") - query selector
|
|
86
|
+
converted = converted.replace(/(?:component|cmp)\.find\s*\(\s*["'](\w+)["']\s*\)/g, 'this.template.querySelector(\'[data-id="$1"]\')');
|
|
87
|
+
// Handle $A.util.isEmpty
|
|
88
|
+
converted = converted.replace(/\$A\.util\.isEmpty\s*\(\s*([^)]+)\s*\)/g, '(!$1 || $1.length === 0)');
|
|
89
|
+
// Handle $A.util.isUndefinedOrNull
|
|
90
|
+
converted = converted.replace(/\$A\.util\.isUndefinedOrNull\s*\(\s*([^)]+)\s*\)/g, '($1 === undefined || $1 === null)');
|
|
91
|
+
// Handle $A.util.addClass
|
|
92
|
+
converted = converted.replace(/\$A\.util\.addClass\s*\(\s*([^,]+)\s*,\s*["']([^"']+)["']\s*\)/g, '$1.classList.add(\'$2\')');
|
|
93
|
+
// Handle $A.util.removeClass
|
|
94
|
+
converted = converted.replace(/\$A\.util\.removeClass\s*\(\s*([^,]+)\s*,\s*["']([^"']+)["']\s*\)/g, '$1.classList.remove(\'$2\')');
|
|
95
|
+
// Handle $A.util.toggleClass
|
|
96
|
+
converted = converted.replace(/\$A\.util\.toggleClass\s*\(\s*([^,]+)\s*,\s*["']([^"']+)["']\s*\)/g, '$1.classList.toggle(\'$2\')');
|
|
97
|
+
// Handle $A.util.hasClass
|
|
98
|
+
converted = converted.replace(/\$A\.util\.hasClass\s*\(\s*([^,]+)\s*,\s*["']([^"']+)["']\s*\)/g, '$1.classList.contains(\'$2\')');
|
|
99
|
+
// Handle $A.getCallback
|
|
100
|
+
converted = converted.replace(/\$A\.getCallback\s*\(\s*/g, '(');
|
|
101
|
+
// Handle $A.get("$Label.namespace.label")
|
|
102
|
+
converted = converted.replace(/\$A\.get\s*\(\s*["']\$Label\.(\w+)\.(\w+)["']\s*\)/g, (_match, namespace, label) => {
|
|
103
|
+
const labelImport = `${namespace}.${label}`;
|
|
104
|
+
if (!usedLabels.includes(labelImport)) {
|
|
105
|
+
usedLabels.push(labelImport);
|
|
106
|
+
}
|
|
107
|
+
return `this.label${label}`;
|
|
108
|
+
});
|
|
109
|
+
// Handle force:navigateToSObject
|
|
110
|
+
if (converted.includes('e.force:navigateToSObject')) {
|
|
111
|
+
warnings.push('Navigation event found - use NavigationMixin');
|
|
112
|
+
}
|
|
113
|
+
// Handle force:showToast
|
|
114
|
+
if (converted.includes('e.force:showToast')) {
|
|
115
|
+
warnings.push('Toast event found - use ShowToastEvent from lightning/platformShowToastEvent');
|
|
116
|
+
converted = converted.replace(/\$A\.get\s*\(\s*["']e\.force:showToast["']\s*\)/g, '/* Use: import { ShowToastEvent } from "lightning/platformShowToastEvent"; */');
|
|
117
|
+
}
|
|
118
|
+
return { converted, warnings, usedLabels };
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Transform Aura controller and helper to LWC class
|
|
122
|
+
*/
|
|
123
|
+
function transformAuraController(markup, controller, helper, detectedGetters) {
|
|
124
|
+
const warnings = [];
|
|
125
|
+
const imports = ['LightningElement'];
|
|
126
|
+
const properties = [];
|
|
127
|
+
const methods = [];
|
|
128
|
+
const apexMethods = [];
|
|
129
|
+
const wireAdapters = [];
|
|
130
|
+
const allUsedLabels = new Set();
|
|
131
|
+
let usesNavigation = false;
|
|
132
|
+
// Collect helper function names for reference
|
|
133
|
+
const helperFunctions = new Set();
|
|
134
|
+
if (helper) {
|
|
135
|
+
for (const func of helper.functions) {
|
|
136
|
+
helperFunctions.add(func.name);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
// Process attributes -> properties
|
|
140
|
+
for (const attr of markup.attributes) {
|
|
141
|
+
const isPublic = !attr.access || attr.access === 'public' || attr.access === 'global';
|
|
142
|
+
const prop = {
|
|
143
|
+
name: attr.name,
|
|
144
|
+
isApi: isPublic,
|
|
145
|
+
isTrack: false,
|
|
146
|
+
type: convertType(attr.type),
|
|
147
|
+
defaultValue: attr.default,
|
|
148
|
+
description: attr.description,
|
|
149
|
+
};
|
|
150
|
+
properties.push(prop);
|
|
151
|
+
if (isPublic) {
|
|
152
|
+
if (!imports.includes('api')) {
|
|
153
|
+
imports.push('api');
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
// Process handlers for lifecycle methods
|
|
158
|
+
const initHandler = markup.handlers.find((h) => h.name === 'init');
|
|
159
|
+
const renderHandler = markup.handlers.find((h) => h.name === 'render' || h.name === 'afterRender');
|
|
160
|
+
const destroyHandler = markup.handlers.find((h) => h.name === 'destroy');
|
|
161
|
+
// Process controller functions
|
|
162
|
+
if (controller) {
|
|
163
|
+
for (const func of controller.functions) {
|
|
164
|
+
let methodName = func.name;
|
|
165
|
+
let isLifecycle = false;
|
|
166
|
+
let body = func.body;
|
|
167
|
+
// Check if this is the init handler
|
|
168
|
+
if (initHandler && initHandler.action.includes(func.name)) {
|
|
169
|
+
methodName = 'connectedCallback';
|
|
170
|
+
isLifecycle = true;
|
|
171
|
+
}
|
|
172
|
+
else if (renderHandler && renderHandler.action.includes(func.name)) {
|
|
173
|
+
methodName = 'renderedCallback';
|
|
174
|
+
isLifecycle = true;
|
|
175
|
+
warnings.push('renderedCallback converted from render handler - add isRendered flag if needed');
|
|
176
|
+
}
|
|
177
|
+
else if (destroyHandler && destroyHandler.action.includes(func.name)) {
|
|
178
|
+
methodName = 'disconnectedCallback';
|
|
179
|
+
isLifecycle = true;
|
|
180
|
+
}
|
|
181
|
+
// Convert function body
|
|
182
|
+
const { converted, warnings: bodyWarnings, usedLabels } = convertFunctionBody(body, func, helperFunctions);
|
|
183
|
+
warnings.push(...bodyWarnings);
|
|
184
|
+
if (usedLabels) {
|
|
185
|
+
usedLabels.forEach(l => allUsedLabels.add(l));
|
|
186
|
+
}
|
|
187
|
+
if (converted.includes('NavigationMixin') || bodyWarnings.some(w => w.includes('NavigationMixin'))) {
|
|
188
|
+
usesNavigation = true;
|
|
189
|
+
}
|
|
190
|
+
// Track server calls as apex methods
|
|
191
|
+
for (const serverCall of func.serverCalls) {
|
|
192
|
+
if (serverCall.controllerMethod && !apexMethods.includes(serverCall.controllerMethod)) {
|
|
193
|
+
apexMethods.push(serverCall.controllerMethod);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
methods.push({
|
|
197
|
+
name: methodName,
|
|
198
|
+
isApi: false,
|
|
199
|
+
body: converted,
|
|
200
|
+
originalAuraMethod: func.name !== methodName ? func.name : undefined,
|
|
201
|
+
isLifecycle,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
// Process helper functions - merge into class
|
|
206
|
+
if (helper) {
|
|
207
|
+
for (const func of helper.functions) {
|
|
208
|
+
// Skip if already added via controller
|
|
209
|
+
if (methods.some((m) => m.name === func.name)) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
const { converted, warnings: bodyWarnings, usedLabels } = convertFunctionBody(func.body, func, helperFunctions);
|
|
213
|
+
warnings.push(...bodyWarnings);
|
|
214
|
+
if (usedLabels) {
|
|
215
|
+
usedLabels.forEach(l => allUsedLabels.add(l));
|
|
216
|
+
}
|
|
217
|
+
if (converted.includes('NavigationMixin') || bodyWarnings.some(w => w.includes('NavigationMixin'))) {
|
|
218
|
+
usesNavigation = true;
|
|
219
|
+
}
|
|
220
|
+
// Track server calls
|
|
221
|
+
for (const serverCall of func.serverCalls) {
|
|
222
|
+
if (!apexMethods.includes(serverCall)) {
|
|
223
|
+
apexMethods.push(serverCall);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
methods.push({
|
|
227
|
+
name: func.name,
|
|
228
|
+
isApi: false,
|
|
229
|
+
body: converted,
|
|
230
|
+
isLifecycle: false,
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// Process aura:method declarations -> @api methods
|
|
235
|
+
for (const auraMethod of markup.methods) {
|
|
236
|
+
const existingMethod = methods.find((m) => m.name === auraMethod.name);
|
|
237
|
+
if (existingMethod) {
|
|
238
|
+
existingMethod.isApi = true;
|
|
239
|
+
if (!imports.includes('api')) {
|
|
240
|
+
imports.push('api');
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
// Method declared but not implemented
|
|
245
|
+
warnings.push(`aura:method "${auraMethod.name}" declared but no implementation found`);
|
|
246
|
+
methods.push({
|
|
247
|
+
name: auraMethod.name,
|
|
248
|
+
isApi: true,
|
|
249
|
+
body: '// TODO: Implement method',
|
|
250
|
+
isLifecycle: false,
|
|
251
|
+
});
|
|
252
|
+
if (!imports.includes('api')) {
|
|
253
|
+
imports.push('api');
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
// Check for Apex controller reference
|
|
258
|
+
if (markup.controller) {
|
|
259
|
+
warnings.push(`Apex controller "${markup.controller}" referenced - import required methods with @AuraEnabled`);
|
|
260
|
+
}
|
|
261
|
+
// Build the JS class
|
|
262
|
+
const className = (0, file_io_1.toPascalCase)(markup.componentName);
|
|
263
|
+
let js = '';
|
|
264
|
+
// Add imports
|
|
265
|
+
if (usesNavigation) {
|
|
266
|
+
imports.push('NavigationMixin');
|
|
267
|
+
// NavigationMixin comes from lightning/navigation, not lwc
|
|
268
|
+
// We'll handle it separately in the import string construction
|
|
269
|
+
}
|
|
270
|
+
js += `import { ${imports.filter(i => i !== 'NavigationMixin').join(', ')} } from 'lwc';\n`;
|
|
271
|
+
if (usesNavigation) {
|
|
272
|
+
js += `import { NavigationMixin } from 'lightning/navigation';\n`;
|
|
273
|
+
}
|
|
274
|
+
// Add apex imports as TODOs
|
|
275
|
+
if (apexMethods.length > 0) {
|
|
276
|
+
js += '\n// TODO: Import Apex methods\n';
|
|
277
|
+
for (const method of apexMethods) {
|
|
278
|
+
js += `// import ${method} from '@salesforce/apex/${markup.controller || 'ControllerName'}.${method}';\n`;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// Add wire adapter imports if needed
|
|
282
|
+
if (wireAdapters.length > 0) {
|
|
283
|
+
js += '\n// Wire adapters\n';
|
|
284
|
+
for (const adapter of wireAdapters) {
|
|
285
|
+
js += `// import { ${adapter} } from 'lightning/ui*Api';\n`;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
// Add label imports
|
|
289
|
+
if (allUsedLabels.size > 0) {
|
|
290
|
+
js += '\n// Label imports\n';
|
|
291
|
+
for (const label of allUsedLabels) {
|
|
292
|
+
const [namespace, labelName] = label.split('.');
|
|
293
|
+
js += `import label${labelName} from '@salesforce/label/${namespace}.${labelName}';\n`;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
js += '\n';
|
|
297
|
+
if (usesNavigation) {
|
|
298
|
+
js += `export default class ${className} extends NavigationMixin(LightningElement) {\n`;
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
js += `export default class ${className} extends LightningElement {\n`;
|
|
302
|
+
}
|
|
303
|
+
// Add properties
|
|
304
|
+
for (const prop of properties) {
|
|
305
|
+
if (prop.description) {
|
|
306
|
+
js += ` // ${prop.description}\n`;
|
|
307
|
+
}
|
|
308
|
+
if (prop.isApi) {
|
|
309
|
+
js += ` @api `;
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
js += ' ';
|
|
313
|
+
}
|
|
314
|
+
js += prop.name;
|
|
315
|
+
// Only add default value if it exists and is not empty
|
|
316
|
+
if (prop.defaultValue !== undefined && prop.defaultValue !== '' && prop.defaultValue.trim() !== '') {
|
|
317
|
+
js += ` = ${prop.defaultValue}`;
|
|
318
|
+
}
|
|
319
|
+
js += ';\n';
|
|
320
|
+
}
|
|
321
|
+
if (properties.length > 0) {
|
|
322
|
+
js += '\n';
|
|
323
|
+
}
|
|
324
|
+
// Add getters for complex expressions
|
|
325
|
+
if (detectedGetters && detectedGetters.length > 0) {
|
|
326
|
+
js += ' // Getters for complex expressions detected in markup\n';
|
|
327
|
+
for (const getter of detectedGetters) {
|
|
328
|
+
js += ` get ${getter.name}() {\n`;
|
|
329
|
+
// Convert expression syntax to JS (basic conversion)
|
|
330
|
+
let jsExpr = getter.expression;
|
|
331
|
+
// Replace v.prop with this.prop
|
|
332
|
+
jsExpr = jsExpr.replace(/v\.(\w+)/g, 'this.$1');
|
|
333
|
+
// Replace c.method with this.method
|
|
334
|
+
jsExpr = jsExpr.replace(/c\.(\w+)/g, 'this.$1');
|
|
335
|
+
// Replace !v.prop with !this.prop
|
|
336
|
+
jsExpr = jsExpr.replace(/!v\.(\w+)/g, '!this.$1');
|
|
337
|
+
js += ` return ${jsExpr};\n`;
|
|
338
|
+
js += ` }\n\n`;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
// Add methods
|
|
342
|
+
for (const method of methods) {
|
|
343
|
+
if (method.originalAuraMethod) {
|
|
344
|
+
js += ` // Converted from: ${method.originalAuraMethod}\n`;
|
|
345
|
+
}
|
|
346
|
+
if (method.isApi && !method.isLifecycle) {
|
|
347
|
+
js += ' @api\n';
|
|
348
|
+
}
|
|
349
|
+
js += ` ${method.name}(`;
|
|
350
|
+
// Add event parameter for handlers
|
|
351
|
+
if (!method.isLifecycle && method.body.includes('event')) {
|
|
352
|
+
js += 'event';
|
|
353
|
+
}
|
|
354
|
+
js += ') {\n';
|
|
355
|
+
js += ` ${method.body.split('\n').join('\n ')}\n`;
|
|
356
|
+
js += ' }\n\n';
|
|
357
|
+
}
|
|
358
|
+
js = js.trimEnd() + '\n}\n';
|
|
359
|
+
logger_1.logger.debug(`Generated LWC class: ${className}`);
|
|
360
|
+
logger_1.logger.debug(`${properties.length} properties, ${methods.length} methods`);
|
|
361
|
+
logger_1.logger.debug(`${warnings.length} warnings generated`);
|
|
362
|
+
return {
|
|
363
|
+
js,
|
|
364
|
+
warnings,
|
|
365
|
+
imports,
|
|
366
|
+
properties,
|
|
367
|
+
methods,
|
|
368
|
+
apexMethods,
|
|
369
|
+
wireAdapters,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controller.js","sourceRoot":"","sources":["../../../src/transformers/aura-to-lwc/controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transform Aura event patterns to LWC CustomEvent
|
|
3
|
+
*/
|
|
4
|
+
import { AuraEvent, AuraHandler } from '../../parsers/aura/markup-parser';
|
|
5
|
+
export interface EventTransformation {
|
|
6
|
+
auraEventName: string;
|
|
7
|
+
auraEventType: string;
|
|
8
|
+
lwcEventName: string;
|
|
9
|
+
isApplicationEvent: boolean;
|
|
10
|
+
handlerMethod?: string;
|
|
11
|
+
warnings: string[];
|
|
12
|
+
code: EventCode;
|
|
13
|
+
}
|
|
14
|
+
export interface EventCode {
|
|
15
|
+
dispatch: string;
|
|
16
|
+
handler: string;
|
|
17
|
+
parentBinding: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Transform a registered Aura event to LWC CustomEvent
|
|
21
|
+
*/
|
|
22
|
+
export declare function transformAuraEvent(event: AuraEvent, handler?: AuraHandler): EventTransformation;
|
|
23
|
+
/**
|
|
24
|
+
* Generate pub/sub utility for application events
|
|
25
|
+
*/
|
|
26
|
+
export declare function generatePubSubUtility(): string;
|
|
27
|
+
/**
|
|
28
|
+
* Generate Lightning Message Service channel definition
|
|
29
|
+
*/
|
|
30
|
+
export declare function generateMessageChannel(eventName: string, description?: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* Generate LMS usage code for publishing
|
|
33
|
+
*/
|
|
34
|
+
export declare function generateLmsPublishCode(channelName: string): string;
|
|
35
|
+
/**
|
|
36
|
+
* Generate LMS usage code for subscribing
|
|
37
|
+
*/
|
|
38
|
+
export declare function generateLmsSubscribeCode(channelName: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Transform Aura component event handler binding
|
|
41
|
+
*/
|
|
42
|
+
export declare function transformEventHandler(handler: AuraHandler): {
|
|
43
|
+
templateBinding: string;
|
|
44
|
+
methodName: string;
|
|
45
|
+
warnings: string[];
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/transformers/aura-to-lwc/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG1E,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAwBD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,SAAS,EAChB,OAAO,CAAC,EAAE,WAAW,GACpB,mBAAmB,CAoDrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAmD9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAYtF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAiBlE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA6CpE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG;IAC3D,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CA6CA"}
|