@vxrn/vite-plugin-metro 2.13.8 → 2.13.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/cjs/transformer/metroNativeWorker.cjs +33 -18
- package/dist/cjs/transformer/metroNativeWorker.native.cjs +35 -18
- package/dist/cjs/transformer/metroNativeWorker.native.js +35 -18
- package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.mjs +33 -18
- package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.native.js +35 -18
- package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
- package/package.json +5 -5
- package/src/transformer/metroNativeWorker.ts +99 -36
- package/types/transformer/metroNativeWorker.d.ts.map +1 -1
|
@@ -12,6 +12,21 @@ import { substituteExpoVirtualEnvSource } from "./expoVirtualEnv.mjs";
|
|
|
12
12
|
import { rejectDOMDirective } from "./rejectDOMDirective.mjs";
|
|
13
13
|
import { getPlatformEnv, metroPlatformToViteEnvironment } from "@vxrn/utils/platformEnv";
|
|
14
14
|
|
|
15
|
+
function createTransformError(message, code, diagnostic) {
|
|
16
|
+
let loc = diagnostic.loc ?? diagnostic.errors?.[0]?.location;
|
|
17
|
+
const label = diagnostic.labels?.[0];
|
|
18
|
+
if (!loc && label) {
|
|
19
|
+
const lines = code.slice(0, label.start).split(/\r\n|[\n\r\u2028\u2029]/);
|
|
20
|
+
loc = {
|
|
21
|
+
line: lines.length,
|
|
22
|
+
column: lines.at(-1).length
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
return Object.assign(new Error(message), {
|
|
26
|
+
loc,
|
|
27
|
+
codeFrame: diagnostic.codeFrame ?? diagnostic.codeframe
|
|
28
|
+
});
|
|
29
|
+
}
|
|
15
30
|
function collectModuleLiteralBindings(program) {
|
|
16
31
|
const reassigned = /* @__PURE__ */ new Set();
|
|
17
32
|
const declCount = /* @__PURE__ */ new Map();
|
|
@@ -205,7 +220,7 @@ function resolveAliasSpecifier(specifier, filename, projectRoot, aliases) {
|
|
|
205
220
|
function applyModuleResolverAliases(code, filename, projectRoot, aliases) {
|
|
206
221
|
const parsed = parseSync(filename, code, { lang: langForFilename(filename) });
|
|
207
222
|
if (parsed?.errors?.length) {
|
|
208
|
-
throw
|
|
223
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for alias resolution: ${parsed.errors[0].message}`, code, parsed.errors[0]);
|
|
209
224
|
}
|
|
210
225
|
if (!parsed?.program) return code;
|
|
211
226
|
const ms = new MagicString(code);
|
|
@@ -240,7 +255,7 @@ function applyModuleResolverAliases(code, filename, projectRoot, aliases) {
|
|
|
240
255
|
function applyInlineEnvVars(code, filename, isProduction, env = {}) {
|
|
241
256
|
const parsed = parseSync(filename, code, { lang: langForFilename(filename) });
|
|
242
257
|
if (parsed?.errors?.length) {
|
|
243
|
-
throw
|
|
258
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for env inlining: ${parsed.errors[0].message}`, code, parsed.errors[0]);
|
|
244
259
|
}
|
|
245
260
|
if (!parsed?.program) return code;
|
|
246
261
|
const processPublicEnv = Object.fromEntries(Object.entries(process.env).filter(([key]) => key.startsWith("ONE_PUBLIC_") || key.startsWith("EXPO_PUBLIC_")));
|
|
@@ -383,7 +398,7 @@ const GUARD_SPECIFIERS = /* @__PURE__ */ new Set([
|
|
|
383
398
|
function applyEnvironmentGuard(code, filename) {
|
|
384
399
|
const parsed = parseSync(filename, code, { lang: langForFilename(filename) });
|
|
385
400
|
if (parsed?.errors?.length) {
|
|
386
|
-
throw
|
|
401
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for environment guards: ${parsed.errors[0].message}`, code, parsed.errors[0]);
|
|
387
402
|
}
|
|
388
403
|
const body = parsed?.program?.body;
|
|
389
404
|
if (!body) return code;
|
|
@@ -408,7 +423,7 @@ function applyOneRouterMetro(code, filename, options) {
|
|
|
408
423
|
if (!isMetroEntry && !isEntryCtx) return code;
|
|
409
424
|
const parsed = parseSync(filename, code, { lang: langForFilename(filename) });
|
|
410
425
|
if (parsed?.errors?.length) {
|
|
411
|
-
throw
|
|
426
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for one-router-metro: ${parsed.errors[0].message}`, code, parsed.errors[0]);
|
|
412
427
|
}
|
|
413
428
|
if (!parsed?.program) return code;
|
|
414
429
|
const ms = new MagicString(code);
|
|
@@ -699,10 +714,10 @@ function rewriteDependencyCalls(code, dependencies, depMapName = "_dependencyMap
|
|
|
699
714
|
try {
|
|
700
715
|
parsed = parseSync(filename, code, { lang: langForFilename(filename) });
|
|
701
716
|
} catch (err) {
|
|
702
|
-
throw
|
|
717
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for dependency rewriting: ${err.message || err}`, code, err);
|
|
703
718
|
}
|
|
704
719
|
if (parsed?.errors?.length) {
|
|
705
|
-
throw
|
|
720
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for dependency rewriting: ${parsed.errors[0].message}`, code, parsed.errors[0]);
|
|
706
721
|
}
|
|
707
722
|
if (!parsed?.program) return emptyResult;
|
|
708
723
|
const contextLiteralBindings = collectModuleLiteralBindings(parsed.program);
|
|
@@ -843,10 +858,10 @@ function extractDependencies(code, filename, options) {
|
|
|
843
858
|
try {
|
|
844
859
|
parseResult = parseSync(filename, code, { lang: langForFilename(filename) });
|
|
845
860
|
} catch (err) {
|
|
846
|
-
throw
|
|
861
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for dependency extraction: ${err.message || err}`, code, err);
|
|
847
862
|
}
|
|
848
863
|
if (parseResult?.errors?.length) {
|
|
849
|
-
throw
|
|
864
|
+
throw createTransformError(`[vxrn/metro] Failed to parse ${filename} for dependency extraction: ${parseResult.errors[0].message}`, code, parseResult.errors[0]);
|
|
850
865
|
}
|
|
851
866
|
if (!parseResult?.program) {
|
|
852
867
|
return [];
|
|
@@ -1118,7 +1133,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1118
1133
|
});
|
|
1119
1134
|
code2 = minified.code;
|
|
1120
1135
|
} catch (err) {
|
|
1121
|
-
throw
|
|
1136
|
+
throw createTransformError(`[vxrn/metro] Minifier failed for ${filename}: ${err.message || err}`, code2, err);
|
|
1122
1137
|
}
|
|
1123
1138
|
}
|
|
1124
1139
|
const { lineCount: lineCount2, map: map2 } = countLinesAndTerminateMap(code2, []);
|
|
@@ -1231,7 +1246,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1231
1246
|
}
|
|
1232
1247
|
}
|
|
1233
1248
|
} catch (err) {
|
|
1234
|
-
throw
|
|
1249
|
+
throw createTransformError(`[vxrn/metro] React Native codegen failed for ${filename}: ${err.message || err}`, code, err);
|
|
1235
1250
|
}
|
|
1236
1251
|
if (shouldStripFlow(filename, code)) {
|
|
1237
1252
|
try {
|
|
@@ -1243,7 +1258,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1243
1258
|
}
|
|
1244
1259
|
}
|
|
1245
1260
|
} catch (err) {
|
|
1246
|
-
throw
|
|
1261
|
+
throw createTransformError(`[vxrn/metro] Flow transform failed for ${filename}: ${err.message || err}`, code, err);
|
|
1247
1262
|
}
|
|
1248
1263
|
}
|
|
1249
1264
|
const asyncRequirePath = config.asyncRequireModulePath || "metro-runtime/src/modules/asyncRequire";
|
|
@@ -1302,7 +1317,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1302
1317
|
}
|
|
1303
1318
|
}
|
|
1304
1319
|
} catch (err) {
|
|
1305
|
-
throw
|
|
1320
|
+
throw createTransformError(`[vxrn/metro] React Compiler failed for ${filename}: ${err.message || err}`, code, err);
|
|
1306
1321
|
}
|
|
1307
1322
|
}
|
|
1308
1323
|
if (shouldRunWorklets) {
|
|
@@ -1316,7 +1331,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1316
1331
|
}
|
|
1317
1332
|
}
|
|
1318
1333
|
} catch (err) {
|
|
1319
|
-
throw
|
|
1334
|
+
throw createTransformError(`[vxrn/metro] Worklets transform failed for ${filename}: ${err.message || err}`, code, err);
|
|
1320
1335
|
}
|
|
1321
1336
|
}
|
|
1322
1337
|
const lang = langForFilename(filename);
|
|
@@ -1334,10 +1349,10 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1334
1349
|
sourcemap: true
|
|
1335
1350
|
});
|
|
1336
1351
|
} catch (err) {
|
|
1337
|
-
throw
|
|
1352
|
+
throw createTransformError(`[vxrn/metro] Oxc transform failed for ${filename}: ${err.message || err}`, code, err);
|
|
1338
1353
|
}
|
|
1339
1354
|
if (oxcRes.errors?.length) {
|
|
1340
|
-
throw
|
|
1355
|
+
throw createTransformError(`[vxrn/metro] Oxc transform failed for ${filename}: ${oxcRes.errors[0].message || oxcRes.errors[0]}`, code, oxcRes.errors[0]);
|
|
1341
1356
|
}
|
|
1342
1357
|
code = oxcRes.code || code;
|
|
1343
1358
|
if (oxcRes.map) {
|
|
@@ -1352,7 +1367,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1352
1367
|
}
|
|
1353
1368
|
}
|
|
1354
1369
|
} catch (err) {
|
|
1355
|
-
throw
|
|
1370
|
+
throw createTransformError(`[vxrn/metro] native async/CJS lowering failed for ${filename}: ${err.message || err}`, code, err);
|
|
1356
1371
|
}
|
|
1357
1372
|
try {
|
|
1358
1373
|
const loopsRes = transformHermesLoops(code, filename);
|
|
@@ -1363,7 +1378,7 @@ async function transform(config, projectRoot, filename, data, options) {
|
|
|
1363
1378
|
}
|
|
1364
1379
|
}
|
|
1365
1380
|
} catch (err) {
|
|
1366
|
-
throw
|
|
1381
|
+
throw createTransformError(`[vxrn/metro] Hermes loop-binding transform failed for ${filename}: ${err.message || err}`, code, err);
|
|
1367
1382
|
}
|
|
1368
1383
|
const finalDeps = extractDependencies(code, filename, {
|
|
1369
1384
|
asyncRequireModulePath: asyncRequirePath,
|
|
@@ -1450,7 +1465,7 @@ var require = _$$_REQUIRE;
|
|
|
1450
1465
|
intermediateMaps.length = 0;
|
|
1451
1466
|
}
|
|
1452
1467
|
} catch (err) {
|
|
1453
|
-
throw
|
|
1468
|
+
throw createTransformError(`[vxrn/metro] Minifier failed for ${filename}: ${err.message || err}`, code, err);
|
|
1454
1469
|
}
|
|
1455
1470
|
}
|
|
1456
1471
|
let rawMappings = [];
|