@lwc/sfdc-lwc-compiler 13.3.9 → 13.3.10
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/compiler/plugins/__tests__/featureFlag.spec.d.ts +1 -0
- package/dist/compiler/plugins/__tests__/featureFlag.spec.js +275 -0
- package/dist/compiler/plugins/__tests__/featureFlag.spec.js.map +1 -0
- package/dist/compiler/plugins/featureFlag.d.ts +3 -0
- package/dist/compiler/plugins/featureFlag.js +198 -0
- package/dist/compiler/plugins/featureFlag.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const common_tags_1 = require("common-tags");
|
|
4
|
+
const main_1 = require("../../../main");
|
|
5
|
+
describe('feature flag plugin', () => {
|
|
6
|
+
describe('when featureFlag option is provided', () => {
|
|
7
|
+
it('should transform default class export with feature flag check', async () => {
|
|
8
|
+
const config = {
|
|
9
|
+
bundle: {
|
|
10
|
+
namespace: 'x',
|
|
11
|
+
name: 'foo',
|
|
12
|
+
type: 'platform',
|
|
13
|
+
files: {
|
|
14
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
15
|
+
import { LightningElement } from 'lwc';
|
|
16
|
+
export default class Foo extends LightningElement {
|
|
17
|
+
connectedCallback() {
|
|
18
|
+
console.log('foo');
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
`,
|
|
22
|
+
},
|
|
23
|
+
options: {
|
|
24
|
+
featureFlag: 'my.feature.flag',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
const result = await (0, main_1.compile)(config);
|
|
29
|
+
if (!result.success) {
|
|
30
|
+
console.error('Compilation failed:', JSON.stringify(result.diagnostics, null, 2));
|
|
31
|
+
}
|
|
32
|
+
expect(result.success).toBe(true);
|
|
33
|
+
expect(result.results).toBeDefined();
|
|
34
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
35
|
+
});
|
|
36
|
+
it('should transform default class export when LightningElement is not imported', async () => {
|
|
37
|
+
const config = {
|
|
38
|
+
bundle: {
|
|
39
|
+
namespace: 'x',
|
|
40
|
+
name: 'foo',
|
|
41
|
+
type: 'platform',
|
|
42
|
+
files: {
|
|
43
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
44
|
+
export default class Foo {
|
|
45
|
+
connectedCallback() {
|
|
46
|
+
console.log('foo');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
`,
|
|
50
|
+
},
|
|
51
|
+
options: {
|
|
52
|
+
featureFlag: 'my.feature.flag',
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
const result = await (0, main_1.compile)(config);
|
|
57
|
+
if (!result.success) {
|
|
58
|
+
console.error('Compilation failed:', JSON.stringify(result.diagnostics, null, 2));
|
|
59
|
+
}
|
|
60
|
+
expect(result.success).toBe(true);
|
|
61
|
+
expect(result.results).toBeDefined();
|
|
62
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
63
|
+
});
|
|
64
|
+
it('should not add duplicate LightningElement import when already present', async () => {
|
|
65
|
+
const config = {
|
|
66
|
+
bundle: {
|
|
67
|
+
namespace: 'x',
|
|
68
|
+
name: 'foo',
|
|
69
|
+
type: 'platform',
|
|
70
|
+
files: {
|
|
71
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
72
|
+
import { LightningElement, api } from 'lwc';
|
|
73
|
+
export default class Foo extends LightningElement {
|
|
74
|
+
@api name;
|
|
75
|
+
}
|
|
76
|
+
`,
|
|
77
|
+
},
|
|
78
|
+
options: {
|
|
79
|
+
featureFlag: 'my.feature.flag',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
const result = await (0, main_1.compile)(config);
|
|
84
|
+
if (!result.success) {
|
|
85
|
+
console.error('Compilation failed:', JSON.stringify(result.diagnostics, null, 2));
|
|
86
|
+
}
|
|
87
|
+
expect(result.success).toBe(true);
|
|
88
|
+
expect(result.results).toBeDefined();
|
|
89
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
90
|
+
});
|
|
91
|
+
it('should handle feature flags with special characters', async () => {
|
|
92
|
+
const config = {
|
|
93
|
+
bundle: {
|
|
94
|
+
namespace: 'x',
|
|
95
|
+
name: 'foo',
|
|
96
|
+
type: 'platform',
|
|
97
|
+
files: {
|
|
98
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
99
|
+
import { LightningElement } from 'lwc';
|
|
100
|
+
export default class Foo extends LightningElement {}
|
|
101
|
+
`,
|
|
102
|
+
},
|
|
103
|
+
options: {
|
|
104
|
+
featureFlag: 'org.my-feature.flag_name',
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
};
|
|
108
|
+
const result = await (0, main_1.compile)(config);
|
|
109
|
+
expect(result.success).toBe(true);
|
|
110
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
111
|
+
});
|
|
112
|
+
it('should handle named class export pattern', async () => {
|
|
113
|
+
const config = {
|
|
114
|
+
bundle: {
|
|
115
|
+
namespace: 'x',
|
|
116
|
+
name: 'foo',
|
|
117
|
+
type: 'platform',
|
|
118
|
+
files: {
|
|
119
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
120
|
+
import { LightningElement } from 'lwc';
|
|
121
|
+
class MyComponent extends LightningElement {}
|
|
122
|
+
export default MyComponent;
|
|
123
|
+
`,
|
|
124
|
+
},
|
|
125
|
+
options: {
|
|
126
|
+
featureFlag: 'my.feature.flag',
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
};
|
|
130
|
+
const result = await (0, main_1.compile)(config);
|
|
131
|
+
expect(result.success).toBe(true);
|
|
132
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
133
|
+
});
|
|
134
|
+
it('should include correct error message in FeatureFlagError', async () => {
|
|
135
|
+
const config = {
|
|
136
|
+
bundle: {
|
|
137
|
+
namespace: 'x',
|
|
138
|
+
name: 'foo',
|
|
139
|
+
type: 'platform',
|
|
140
|
+
files: {
|
|
141
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
142
|
+
import { LightningElement } from 'lwc';
|
|
143
|
+
export default class Foo extends LightningElement {}
|
|
144
|
+
`,
|
|
145
|
+
},
|
|
146
|
+
options: {
|
|
147
|
+
featureFlag: 'my.special.feature',
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
const result = await (0, main_1.compile)(config);
|
|
152
|
+
expect(result.success).toBe(true);
|
|
153
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
154
|
+
});
|
|
155
|
+
it('should not transform when file has no default export', async () => {
|
|
156
|
+
const config = {
|
|
157
|
+
bundle: {
|
|
158
|
+
namespace: 'x',
|
|
159
|
+
name: 'foo',
|
|
160
|
+
type: 'platform',
|
|
161
|
+
files: {
|
|
162
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
163
|
+
export function helper() {
|
|
164
|
+
return 'help';
|
|
165
|
+
}
|
|
166
|
+
`,
|
|
167
|
+
},
|
|
168
|
+
options: {
|
|
169
|
+
featureFlag: 'my.feature.flag',
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
const result = await (0, main_1.compile)(config);
|
|
174
|
+
expect(result.success).toBe(true);
|
|
175
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
describe('when featureFlag option is not provided', () => {
|
|
179
|
+
it('should not transform code', async () => {
|
|
180
|
+
const config = {
|
|
181
|
+
bundle: {
|
|
182
|
+
namespace: 'x',
|
|
183
|
+
name: 'foo',
|
|
184
|
+
type: 'platform',
|
|
185
|
+
files: {
|
|
186
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
187
|
+
import { LightningElement } from 'lwc';
|
|
188
|
+
export default class Foo extends LightningElement {
|
|
189
|
+
connectedCallback() {
|
|
190
|
+
console.log('foo');
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
`,
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
const result = await (0, main_1.compile)(config);
|
|
198
|
+
expect(result.success).toBe(true);
|
|
199
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
200
|
+
});
|
|
201
|
+
it('should not transform when featureFlag is empty string', async () => {
|
|
202
|
+
const config = {
|
|
203
|
+
bundle: {
|
|
204
|
+
namespace: 'x',
|
|
205
|
+
name: 'foo',
|
|
206
|
+
type: 'platform',
|
|
207
|
+
files: {
|
|
208
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
209
|
+
import { LightningElement } from 'lwc';
|
|
210
|
+
export default class Foo extends LightningElement {}
|
|
211
|
+
`,
|
|
212
|
+
},
|
|
213
|
+
options: {
|
|
214
|
+
featureFlag: '',
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
};
|
|
218
|
+
const result = await (0, main_1.compile)(config);
|
|
219
|
+
expect(result.success).toBe(true);
|
|
220
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
describe('integration with compilation pipeline', () => {
|
|
224
|
+
it('should work with HTML template files', async () => {
|
|
225
|
+
const config = {
|
|
226
|
+
bundle: {
|
|
227
|
+
namespace: 'x',
|
|
228
|
+
name: 'foo',
|
|
229
|
+
type: 'platform',
|
|
230
|
+
files: {
|
|
231
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
232
|
+
import { LightningElement } from 'lwc';
|
|
233
|
+
export default class Foo extends LightningElement {}
|
|
234
|
+
`,
|
|
235
|
+
'foo.html': '<template><div>Hello</div></template>',
|
|
236
|
+
},
|
|
237
|
+
options: {
|
|
238
|
+
featureFlag: 'my.feature.flag',
|
|
239
|
+
},
|
|
240
|
+
},
|
|
241
|
+
};
|
|
242
|
+
const result = await (0, main_1.compile)(config);
|
|
243
|
+
expect(result.success).toBe(true);
|
|
244
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
245
|
+
});
|
|
246
|
+
it('should work with multiple output configs', async () => {
|
|
247
|
+
const config = {
|
|
248
|
+
bundle: {
|
|
249
|
+
namespace: 'x',
|
|
250
|
+
name: 'foo',
|
|
251
|
+
type: 'platform',
|
|
252
|
+
files: {
|
|
253
|
+
'foo.js': (0, common_tags_1.stripIndents) `
|
|
254
|
+
import { LightningElement } from 'lwc';
|
|
255
|
+
export default class Foo extends LightningElement {}
|
|
256
|
+
`,
|
|
257
|
+
},
|
|
258
|
+
options: {
|
|
259
|
+
featureFlag: 'my.feature.flag',
|
|
260
|
+
},
|
|
261
|
+
},
|
|
262
|
+
compilerConfigs: [
|
|
263
|
+
{ outputConfig: { minify: false } },
|
|
264
|
+
{ outputConfig: { minify: true } },
|
|
265
|
+
],
|
|
266
|
+
};
|
|
267
|
+
const result = await (0, main_1.compile)(config);
|
|
268
|
+
expect(result.success).toBe(true);
|
|
269
|
+
expect(result.results).toHaveLength(2);
|
|
270
|
+
expect(result.results[0].code).toMatchSnapshot();
|
|
271
|
+
expect(result.results[1].code).toMatchSnapshot();
|
|
272
|
+
});
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
//# sourceMappingURL=featureFlag.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureFlag.spec.js","sourceRoot":"","sources":["../../../../src/compiler/plugins/__tests__/featureFlag.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2024, salesforce.com, inc.
|
|
4
|
+
* All rights reserved.
|
|
5
|
+
* SPDX-License-Identifier: MIT
|
|
6
|
+
* For full license text, see the LICENSE file in the repo root or https://opensource.org/licenses/MIT
|
|
7
|
+
*/
|
|
8
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
9
|
+
if (k2 === undefined) k2 = k;
|
|
10
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
11
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
12
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
}) : (function(o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
}));
|
|
19
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
20
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
21
|
+
}) : function(o, v) {
|
|
22
|
+
o["default"] = v;
|
|
23
|
+
});
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
42
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.default = default_1;
|
|
46
|
+
const path_1 = __importDefault(require("path"));
|
|
47
|
+
const core_1 = require("@babel/core");
|
|
48
|
+
const t = __importStar(require("@babel/types"));
|
|
49
|
+
const errors_1 = require("@lwc/errors");
|
|
50
|
+
/**
|
|
51
|
+
* Checks if a file is a JS script file (the entry point)
|
|
52
|
+
*/
|
|
53
|
+
function isScriptFile(filename) {
|
|
54
|
+
const ext = path_1.default.extname(filename);
|
|
55
|
+
return ext === '.js';
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Babel plugin that transforms default exports with feature flag checks
|
|
59
|
+
*/
|
|
60
|
+
function featureFlagTransformPlugin() {
|
|
61
|
+
return {
|
|
62
|
+
manipulateOptions(_opts, parserOpts) {
|
|
63
|
+
parserOpts.plugins.push(['decorators', { decoratorsBeforeExport: true }]);
|
|
64
|
+
},
|
|
65
|
+
pre() {
|
|
66
|
+
this.defaultExportPath = null;
|
|
67
|
+
this.needsLightningElementImport = true;
|
|
68
|
+
},
|
|
69
|
+
visitor: {
|
|
70
|
+
ImportDeclaration(path, state) {
|
|
71
|
+
// Check if LightningElement is already imported
|
|
72
|
+
if (t.isStringLiteral(path.node.source) &&
|
|
73
|
+
path.node.source.value === 'lwc' &&
|
|
74
|
+
path.node.specifiers.some((spec) => {
|
|
75
|
+
if (t.isImportSpecifier(spec) && t.isIdentifier(spec.imported)) {
|
|
76
|
+
return spec.imported.name === 'LightningElement';
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
})) {
|
|
80
|
+
state.needsLightningElementImport = false;
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
ExportDefaultDeclaration(path, state) {
|
|
84
|
+
// Capture the default export path
|
|
85
|
+
state.defaultExportPath = path;
|
|
86
|
+
},
|
|
87
|
+
Program: {
|
|
88
|
+
exit(path, state) {
|
|
89
|
+
const { featureFlag, featureFlagVar } = state.opts;
|
|
90
|
+
const { needsLightningElementImport, defaultExportPath } = state;
|
|
91
|
+
if (!defaultExportPath) {
|
|
92
|
+
// No default export found, nothing to transform
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
// Create feature flag import declaration
|
|
96
|
+
const featureFlagImport = t.importDeclaration([t.importDefaultSpecifier(t.identifier(featureFlagVar))], t.stringLiteral(`@salesforce/featureFlag/${featureFlag}`));
|
|
97
|
+
// Create FeatureFlagError class
|
|
98
|
+
const featureFlagErrorClass = t.classDeclaration(t.identifier('FeatureFlagError'), t.identifier('LightningElement'), t.classBody([
|
|
99
|
+
t.classMethod('constructor', t.identifier('constructor'), [], t.blockStatement([
|
|
100
|
+
t.throwStatement(t.newExpression(t.identifier('Error'), [
|
|
101
|
+
t.templateLiteral([
|
|
102
|
+
t.templateElement({ raw: `Feature Flag `, cooked: 'Feature Flag ' }),
|
|
103
|
+
t.templateElement({ raw: ` is disabled.`, cooked: ' is disabled.' }, true),
|
|
104
|
+
], [t.stringLiteral(featureFlag)]),
|
|
105
|
+
])),
|
|
106
|
+
])),
|
|
107
|
+
]));
|
|
108
|
+
// Add imports at the beginning of the program
|
|
109
|
+
const importsToAdd = [];
|
|
110
|
+
if (needsLightningElementImport) {
|
|
111
|
+
const lightningElementImport = t.importDeclaration([t.importSpecifier(t.identifier('LightningElement'), t.identifier('LightningElement'))], t.stringLiteral('lwc'));
|
|
112
|
+
importsToAdd.push(lightningElementImport);
|
|
113
|
+
}
|
|
114
|
+
importsToAdd.push(featureFlagImport);
|
|
115
|
+
importsToAdd.push(featureFlagErrorClass);
|
|
116
|
+
// Insert imports and class at the beginning
|
|
117
|
+
path.node.body.unshift(...importsToAdd);
|
|
118
|
+
// Replace the default export with conditional expression
|
|
119
|
+
const originalDeclaration = defaultExportPath.node.declaration;
|
|
120
|
+
// Convert ClassDeclaration to ClassExpression if needed (ClassExpression can be used in conditional)
|
|
121
|
+
let expressionValue;
|
|
122
|
+
if (t.isClassDeclaration(originalDeclaration)) {
|
|
123
|
+
// Convert ClassDeclaration to ClassExpression for use in conditional
|
|
124
|
+
expressionValue = t.classExpression(originalDeclaration.id, originalDeclaration.superClass, originalDeclaration.body);
|
|
125
|
+
}
|
|
126
|
+
else if (t.isFunctionDeclaration(originalDeclaration)) {
|
|
127
|
+
// Convert FunctionDeclaration to FunctionExpression
|
|
128
|
+
expressionValue = t.functionExpression(originalDeclaration.id, originalDeclaration.params, originalDeclaration.body, originalDeclaration.generator, originalDeclaration.async);
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
// It's already an expression (Identifier, CallExpression, etc.)
|
|
132
|
+
expressionValue = originalDeclaration;
|
|
133
|
+
}
|
|
134
|
+
const conditionalExpression = t.conditionalExpression(t.identifier(featureFlagVar), expressionValue, t.identifier('FeatureFlagError'));
|
|
135
|
+
// Replace the export default declaration
|
|
136
|
+
defaultExportPath.replaceWith(t.exportDefaultDeclaration(conditionalExpression));
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Transform function using Babel transformSync
|
|
144
|
+
*/
|
|
145
|
+
function transformSync(src, id, featureFlag, sourcemap) {
|
|
146
|
+
const featureFlagVar = `__featureFlag_${featureFlag.replace(/[^a-zA-Z0-9_]/g, '_')}__`;
|
|
147
|
+
const transformOptions = {
|
|
148
|
+
filename: id,
|
|
149
|
+
sourceMaps: sourcemap,
|
|
150
|
+
// Prevent Babel from loading local configuration
|
|
151
|
+
babelrc: false,
|
|
152
|
+
configFile: false,
|
|
153
|
+
plugins: [
|
|
154
|
+
[
|
|
155
|
+
featureFlagTransformPlugin(),
|
|
156
|
+
{
|
|
157
|
+
featureFlag,
|
|
158
|
+
featureFlagVar,
|
|
159
|
+
},
|
|
160
|
+
],
|
|
161
|
+
],
|
|
162
|
+
};
|
|
163
|
+
let result;
|
|
164
|
+
try {
|
|
165
|
+
result = (0, core_1.transformSync)(src, transformOptions);
|
|
166
|
+
if (result === null || result.code === null || result.code === undefined) {
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
code: result.code,
|
|
171
|
+
map: result.map || undefined,
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
catch (e) {
|
|
175
|
+
throw (0, errors_1.normalizeToCompilerError)(errors_1.TransformerErrors.JS_TRANSFORMER_ERROR, e, { filename: id });
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function default_1(config) {
|
|
179
|
+
// Get feature flag from compile options
|
|
180
|
+
const featureFlag = config.options?.featureFlag;
|
|
181
|
+
const sourcemap = config.outputConfig?.sourcemap ?? false;
|
|
182
|
+
return {
|
|
183
|
+
name: 'feature-flag',
|
|
184
|
+
transform(code, id) {
|
|
185
|
+
// Only transform if feature flag is provided in options
|
|
186
|
+
if (!featureFlag) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
// Only process JS files
|
|
190
|
+
if (!isScriptFile(id)) {
|
|
191
|
+
return null;
|
|
192
|
+
}
|
|
193
|
+
// Use Babel transformSync
|
|
194
|
+
return transformSync(code, id, featureFlag, sourcemap);
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=featureFlag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"featureFlag.js","sourceRoot":"","sources":["../../../src/compiler/plugins/featureFlag.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lwc/sfdc-lwc-compiler",
|
|
3
3
|
"description": "LWC compiler for SFDC platform",
|
|
4
|
-
"version": "13.3.
|
|
4
|
+
"version": "13.3.10",
|
|
5
5
|
"main": "dist/main.js",
|
|
6
6
|
"typings": "dist/main.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"@babel/traverse": "7.28.5",
|
|
28
28
|
"@babel/types": "7.28.5",
|
|
29
29
|
"@komaci/esm-generator": "260.31.0",
|
|
30
|
-
"@lwc/dev-server-plugin-lex": "13.3.
|
|
30
|
+
"@lwc/dev-server-plugin-lex": "13.3.10",
|
|
31
31
|
"@lwc/eslint-plugin-lwc": "3.3.0",
|
|
32
32
|
"@lwc/eslint-plugin-lwc-platform": "6.3.0",
|
|
33
|
-
"@lwc/metadata": "13.3.
|
|
34
|
-
"@lwc/sfdc-compiler-utils": "13.3.
|
|
33
|
+
"@lwc/metadata": "13.3.10",
|
|
34
|
+
"@lwc/sfdc-compiler-utils": "13.3.10",
|
|
35
35
|
"@rollup/plugin-babel": "^6.1.0",
|
|
36
36
|
"@rollup/plugin-replace": "^6.0.3",
|
|
37
37
|
"@rollup/wasm-node": "4.52.5",
|