@vxrn/vite-plugin-metro 2.0.0-beta.45.1 → 2.0.0-beta.50.1
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/env/platformEnv.cjs +4 -4
- package/dist/cjs/env/platformEnv.native.cjs +4 -4
- package/dist/cjs/env/platformEnv.native.js +4 -4
- package/dist/cjs/env/platformEnv.native.js.map +1 -1
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.cjs +14 -3
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.cjs +48 -20
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js +48 -20
- package/dist/cjs/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
- package/dist/cjs/transformer/metroNativeWorker.cjs +4 -15
- package/dist/cjs/transformer/metroNativeWorker.native.cjs +5 -16
- package/dist/cjs/transformer/metroNativeWorker.native.js +5 -16
- package/dist/cjs/transformer/metroNativeWorker.native.js.map +1 -1
- package/dist/esm/env/platformEnv.mjs +4 -4
- package/dist/esm/env/platformEnv.mjs.map +1 -1
- package/dist/esm/env/platformEnv.native.js +4 -4
- package/dist/esm/env/platformEnv.native.js.map +1 -1
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs +14 -3
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.mjs.map +1 -1
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js +48 -20
- package/dist/esm/metro-config/getMetroBabelConfigFromViteConfig.native.js.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.mjs +4 -15
- package/dist/esm/transformer/metroNativeWorker.mjs.map +1 -1
- package/dist/esm/transformer/metroNativeWorker.native.js +5 -16
- package/dist/esm/transformer/metroNativeWorker.native.js.map +1 -1
- package/package.json +16 -16
- package/src/babel-plugins/import-meta-env-plugin.ts +1 -1
- package/src/env/platformEnv.test.ts +34 -0
- package/src/env/platformEnv.ts +5 -5
- package/src/metro-config/getMetroBabelConfigFromViteConfig.test.ts +58 -0
- package/src/metro-config/getMetroBabelConfigFromViteConfig.ts +24 -4
- package/src/transformer/metroNativeWorker.test.ts +40 -0
- package/src/transformer/metroNativeWorker.ts +20 -22
- package/types/babel-plugins/import-meta-env-plugin.d.ts +1 -1
- package/types/env/platformEnv.d.ts +1 -1
- package/types/env/platformEnv.d.ts.map +1 -1
- package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts +1 -1
- package/types/metro-config/getMetroBabelConfigFromViteConfig.d.ts.map +1 -1
- package/types/transformer/metroNativeWorker.d.ts +9 -8
- package/types/transformer/metroNativeWorker.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vxrn/vite-plugin-metro",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.50.1",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/cjs",
|
|
@@ -61,11 +61,11 @@
|
|
|
61
61
|
"typecheck": "tsc --noEmit"
|
|
62
62
|
},
|
|
63
63
|
"peerDependencies": {
|
|
64
|
-
"@expo/metro-config": "
|
|
65
|
-
"expo": "
|
|
66
|
-
"metro": "^0.
|
|
67
|
-
"metro-config": "^0.
|
|
68
|
-
"react-native": "0.
|
|
64
|
+
"@expo/metro-config": "58.0.0-canary-20260909-ea7a89a",
|
|
65
|
+
"expo": "58.0.0-canary-20260909-ea7a89a",
|
|
66
|
+
"metro": "^0.87.0",
|
|
67
|
+
"metro-config": "^0.87.0",
|
|
68
|
+
"react-native": "0.87.1",
|
|
69
69
|
"vite": "^8.2.2"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
@@ -74,10 +74,10 @@
|
|
|
74
74
|
"@jridgewell/remapping": "^2.3.0",
|
|
75
75
|
"@jridgewell/trace-mapping": "^0.3.25",
|
|
76
76
|
"@oxc-project/runtime": "^0.112.0",
|
|
77
|
-
"@vxrn/compiler": "2.0.0-beta.
|
|
78
|
-
"@vxrn/debug": "2.0.0-beta.
|
|
79
|
-
"@vxrn/utils": "2.0.0-beta.
|
|
80
|
-
"babel-preset-expo": "
|
|
77
|
+
"@vxrn/compiler": "2.0.0-beta.50.1",
|
|
78
|
+
"@vxrn/debug": "2.0.0-beta.50.1",
|
|
79
|
+
"@vxrn/utils": "2.0.0-beta.50.1",
|
|
80
|
+
"babel-preset-expo": "58.0.0-canary-20260909-ea7a89a",
|
|
81
81
|
"esbuild": "^0.25.12",
|
|
82
82
|
"launch-editor": "^2.10.0",
|
|
83
83
|
"magic-string": "^0.30.21",
|
|
@@ -88,16 +88,16 @@
|
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
90
|
"@biomejs/biome": "2.3.3",
|
|
91
|
-
"@expo/metro-config": "
|
|
92
|
-
"@react-native/dev-middleware": "^0.
|
|
91
|
+
"@expo/metro-config": "58.0.0-canary-20260909-ea7a89a",
|
|
92
|
+
"@react-native/dev-middleware": "^0.87.1",
|
|
93
93
|
"@tamagui/build": "3.0.0-beta.1309.1",
|
|
94
94
|
"@types/babel__helper-plugin-utils": "^7",
|
|
95
95
|
"@types/node": "^24.10.0",
|
|
96
96
|
"depcheck": "^1.4.7",
|
|
97
|
-
"expo": "
|
|
98
|
-
"metro": "^0.
|
|
99
|
-
"metro-config": "^0.
|
|
100
|
-
"react-native": "0.
|
|
97
|
+
"expo": "58.0.0-canary-20260909-ea7a89a",
|
|
98
|
+
"metro": "^0.87.0",
|
|
99
|
+
"metro-config": "^0.87.0",
|
|
100
|
+
"react-native": "0.87.1",
|
|
101
101
|
"vite": "^8.2.2",
|
|
102
102
|
"vitest": "^4.1.0"
|
|
103
103
|
},
|
|
@@ -9,7 +9,7 @@ type PluginOptions = {
|
|
|
9
9
|
/**
|
|
10
10
|
* Babel plugin to replace `import.meta.env.*` and `process.env.*` with env values.
|
|
11
11
|
*
|
|
12
|
-
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE,
|
|
12
|
+
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE, ONE_PLATFORM, TAMAGUI_ENVIRONMENT)
|
|
13
13
|
* are automatically injected based on the babel caller's platform.
|
|
14
14
|
*
|
|
15
15
|
* This plugin is referenced by name since Metro runs transformers in separate workers:
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import {
|
|
3
|
+
getPlatformEnv,
|
|
4
|
+
getPlatformEnvDefine,
|
|
5
|
+
metroPlatformToViteEnvironment,
|
|
6
|
+
} from './platformEnv'
|
|
7
|
+
|
|
8
|
+
describe('one platform env contract', () => {
|
|
9
|
+
it('exposes ONE_PLATFORM for every vite environment', () => {
|
|
10
|
+
expect(getPlatformEnv('ios').ONE_PLATFORM).toBe('ios')
|
|
11
|
+
expect(getPlatformEnv('android').ONE_PLATFORM).toBe('android')
|
|
12
|
+
expect(getPlatformEnv('client').ONE_PLATFORM).toBe('web')
|
|
13
|
+
expect(getPlatformEnv('ssr').ONE_PLATFORM).toBe('web')
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
it('never defines EXPO_OS', () => {
|
|
17
|
+
for (const environment of ['client', 'ssr', 'ios', 'android'] as const) {
|
|
18
|
+
expect(getPlatformEnv(environment)).not.toHaveProperty('EXPO_OS')
|
|
19
|
+
const define = getPlatformEnvDefine(environment)
|
|
20
|
+
expect(define).not.toHaveProperty('process.env.EXPO_OS')
|
|
21
|
+
expect(define).not.toHaveProperty('import.meta.env.EXPO_OS')
|
|
22
|
+
}
|
|
23
|
+
const define = getPlatformEnvDefine('ios')
|
|
24
|
+
expect(define['process.env.ONE_PLATFORM']).toBe('"ios"')
|
|
25
|
+
expect(define['import.meta.env.ONE_PLATFORM']).toBe('"ios"')
|
|
26
|
+
})
|
|
27
|
+
|
|
28
|
+
it('maps metro platforms to vite environments without probing', () => {
|
|
29
|
+
expect(metroPlatformToViteEnvironment('ios')).toBe('ios')
|
|
30
|
+
expect(metroPlatformToViteEnvironment('android')).toBe('android')
|
|
31
|
+
expect(metroPlatformToViteEnvironment(null)).toBe('client')
|
|
32
|
+
expect(metroPlatformToViteEnvironment(undefined)).toBe('client')
|
|
33
|
+
})
|
|
34
|
+
})
|
package/src/env/platformEnv.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type ViteEnvironment = 'client' | 'ssr' | 'ios' | 'android'
|
|
|
4
4
|
export type PlatformEnv = {
|
|
5
5
|
VITE_ENVIRONMENT: ViteEnvironment
|
|
6
6
|
VITE_NATIVE: '' | '1'
|
|
7
|
-
|
|
7
|
+
ONE_PLATFORM: 'web' | 'ios' | 'android'
|
|
8
8
|
TAMAGUI_TARGET: 'web' | 'native'
|
|
9
9
|
TAMAGUI_ENVIRONMENT: ViteEnvironment
|
|
10
10
|
}
|
|
@@ -13,28 +13,28 @@ const platformEnvMap: Record<ViteEnvironment, PlatformEnv> = {
|
|
|
13
13
|
client: {
|
|
14
14
|
VITE_ENVIRONMENT: 'client',
|
|
15
15
|
VITE_NATIVE: '',
|
|
16
|
-
|
|
16
|
+
ONE_PLATFORM: 'web',
|
|
17
17
|
TAMAGUI_TARGET: 'web',
|
|
18
18
|
TAMAGUI_ENVIRONMENT: 'client',
|
|
19
19
|
},
|
|
20
20
|
ssr: {
|
|
21
21
|
VITE_ENVIRONMENT: 'ssr',
|
|
22
22
|
VITE_NATIVE: '',
|
|
23
|
-
|
|
23
|
+
ONE_PLATFORM: 'web',
|
|
24
24
|
TAMAGUI_TARGET: 'web',
|
|
25
25
|
TAMAGUI_ENVIRONMENT: 'ssr',
|
|
26
26
|
},
|
|
27
27
|
ios: {
|
|
28
28
|
VITE_ENVIRONMENT: 'ios',
|
|
29
29
|
VITE_NATIVE: '1',
|
|
30
|
-
|
|
30
|
+
ONE_PLATFORM: 'ios',
|
|
31
31
|
TAMAGUI_TARGET: 'native',
|
|
32
32
|
TAMAGUI_ENVIRONMENT: 'ios',
|
|
33
33
|
},
|
|
34
34
|
android: {
|
|
35
35
|
VITE_ENVIRONMENT: 'android',
|
|
36
36
|
VITE_NATIVE: '1',
|
|
37
|
-
|
|
37
|
+
ONE_PLATFORM: 'android',
|
|
38
38
|
TAMAGUI_TARGET: 'native',
|
|
39
39
|
TAMAGUI_ENVIRONMENT: 'android',
|
|
40
40
|
},
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { getMetroBabelConfigFromViteConfig } from './getMetroBabelConfigFromViteConfig'
|
|
3
|
+
|
|
4
|
+
function viteConfig(overrides: Record<string, any> = {}) {
|
|
5
|
+
return {
|
|
6
|
+
mode: 'development',
|
|
7
|
+
base: '/',
|
|
8
|
+
env: {},
|
|
9
|
+
define: {},
|
|
10
|
+
...overrides,
|
|
11
|
+
} as any
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function pluginEnv(config: any): Record<string, any> {
|
|
15
|
+
const babelConfig = getMetroBabelConfigFromViteConfig(config)
|
|
16
|
+
const plugin = (babelConfig.plugins as any[])[0]
|
|
17
|
+
return plugin[1].env
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
describe('metro babel env contract', () => {
|
|
21
|
+
it('picks up ONE_PUBLIC_ keys by default and never copies expo keys', () => {
|
|
22
|
+
process.env.ONE_PUBLIC_API = 'https://api.test'
|
|
23
|
+
try {
|
|
24
|
+
const env = pluginEnv(
|
|
25
|
+
viteConfig({ env: { ONE_PUBLIC_API: 'https://api.test' } })
|
|
26
|
+
)
|
|
27
|
+
expect(env.ONE_PUBLIC_API).toBe('https://api.test')
|
|
28
|
+
expect(env).not.toHaveProperty('EXPO_OS')
|
|
29
|
+
} finally {
|
|
30
|
+
delete process.env.ONE_PUBLIC_API
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('harvests ONE_PLATFORM from defines for parity with rolldown', () => {
|
|
35
|
+
const env = pluginEnv(
|
|
36
|
+
viteConfig({ define: { 'process.env.ONE_PLATFORM': '"ios"' } })
|
|
37
|
+
)
|
|
38
|
+
expect(env.ONE_PLATFORM).toBe('ios')
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
it('rejects an expo env prefix instead of copying it', () => {
|
|
42
|
+
expect(() =>
|
|
43
|
+
pluginEnv(viteConfig({ envPrefix: ['VITE_', 'EXPO_PUBLIC_'] }))
|
|
44
|
+
).toThrow(/rename it to ONE_PUBLIC_\*/)
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('rejects expo keys hiding in the loaded env', () => {
|
|
48
|
+
expect(() =>
|
|
49
|
+
pluginEnv(viteConfig({ env: { EXPO_PUBLIC_API: 'x' } }))
|
|
50
|
+
).toThrow(/rename it to ONE_PUBLIC_\*/)
|
|
51
|
+
})
|
|
52
|
+
|
|
53
|
+
it('rejects expo keys hiding in defines', () => {
|
|
54
|
+
expect(() =>
|
|
55
|
+
pluginEnv(viteConfig({ define: { 'process.env.EXPO_OS': '"ios"' } }))
|
|
56
|
+
).toThrow(/ONE_PUBLIC_\* or ONE_PLATFORM/)
|
|
57
|
+
})
|
|
58
|
+
})
|
|
@@ -4,7 +4,7 @@ import type { TransformOptions } from '@babel/core'
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates babel config for Metro transforms from Vite config.
|
|
6
6
|
*
|
|
7
|
-
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE,
|
|
7
|
+
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE, ONE_PLATFORM, TAMAGUI_ENVIRONMENT)
|
|
8
8
|
* are handled by the import-meta-env-plugin based on caller.platform and always take precedence.
|
|
9
9
|
*/
|
|
10
10
|
export function getMetroBabelConfigFromViteConfig(
|
|
@@ -18,10 +18,25 @@ export function getMetroBabelConfigFromViteConfig(
|
|
|
18
18
|
SSR: false,
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
const envPrefix = config.envPrefix || ['VITE_', '
|
|
21
|
+
const envPrefix = config.envPrefix || ['VITE_', 'ONE_PUBLIC_']
|
|
22
22
|
const prefixes = Array.isArray(envPrefix) ? envPrefix : [envPrefix]
|
|
23
23
|
|
|
24
|
+
// expo-prefixed public vars fail with a migration error instead of being
|
|
25
|
+
// copied, ignored, or aliased into the bundle.
|
|
26
|
+
for (const prefix of prefixes) {
|
|
27
|
+
if (prefix.startsWith('EXPO_')) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
`[vxrn/metro] env prefix "${prefix}" is removed. rename it to ONE_PUBLIC_*`
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
for (const key of Object.keys(config.env)) {
|
|
35
|
+
if (key.startsWith('EXPO_PUBLIC_')) {
|
|
36
|
+
throw new Error(
|
|
37
|
+
`[vxrn/metro] ${key} uses the removed expo prefix. rename it to ONE_PUBLIC_*`
|
|
38
|
+
)
|
|
39
|
+
}
|
|
25
40
|
if (prefixes.some((p) => key.startsWith(p))) {
|
|
26
41
|
importMetaEnv[key] = process.env[key]
|
|
27
42
|
}
|
|
@@ -29,15 +44,20 @@ export function getMetroBabelConfigFromViteConfig(
|
|
|
29
44
|
|
|
30
45
|
// also harvest keys from config.define (populated by env-defining plugins like one's).
|
|
31
46
|
// we union the user's envPrefix with framework-level defaults so we still pick up
|
|
32
|
-
// VITE_/ONE_
|
|
47
|
+
// VITE_/ONE_PUBLIC_/ONE_ even when another plugin replaces envPrefix wholesale
|
|
33
48
|
// (e.g. some plugins set it to a single project-specific prefix).
|
|
34
49
|
const definePrefixes = Array.from(
|
|
35
|
-
new Set([...prefixes, 'VITE_', '
|
|
50
|
+
new Set([...prefixes, 'VITE_', 'ONE_PUBLIC_', 'ONE_'])
|
|
36
51
|
)
|
|
37
52
|
for (const defineKey of Object.keys(config.define || {})) {
|
|
38
53
|
const m = defineKey.match(/^process\.env\.([A-Z][A-Z0-9_]*)$/)
|
|
39
54
|
if (!m) continue
|
|
40
55
|
const key = m[1]
|
|
56
|
+
if (key.startsWith('EXPO_PUBLIC_') || key === 'EXPO_OS') {
|
|
57
|
+
throw new Error(
|
|
58
|
+
`[vxrn/metro] ${key} uses the removed expo contract. rename it to ONE_PUBLIC_* or ONE_PLATFORM`
|
|
59
|
+
)
|
|
60
|
+
}
|
|
41
61
|
if (key in importMetaEnv) continue
|
|
42
62
|
if (!definePrefixes.some((p) => key.startsWith(p))) continue
|
|
43
63
|
const raw = config.define![defineKey]
|
|
@@ -1516,3 +1516,43 @@ describe('metro babel fallback config names', () => {
|
|
|
1516
1516
|
}
|
|
1517
1517
|
})
|
|
1518
1518
|
})
|
|
1519
|
+
|
|
1520
|
+
describe('one public env contract in the metro worker', () => {
|
|
1521
|
+
it('inlines ONE_PUBLIC_ reads in dev and prod with no virtual module', () => {
|
|
1522
|
+
for (const isProduction of [false, true]) {
|
|
1523
|
+
const out = applyInlineEnvVars(
|
|
1524
|
+
'export const api = process.env.ONE_PUBLIC_API;',
|
|
1525
|
+
'env.ts',
|
|
1526
|
+
isProduction,
|
|
1527
|
+
{ ONE_PUBLIC_API: 'https://api.test' }
|
|
1528
|
+
)
|
|
1529
|
+
expect(out).toBe('export const api = "https://api.test";')
|
|
1530
|
+
expect(out).not.toContain('expo/virtual/env')
|
|
1531
|
+
expect(out).not.toContain('_$$_EXPO_ENV')
|
|
1532
|
+
}
|
|
1533
|
+
})
|
|
1534
|
+
|
|
1535
|
+
it('rejects EXPO_PUBLIC_ reads instead of copying or ignoring them', () => {
|
|
1536
|
+
for (const isProduction of [false, true]) {
|
|
1537
|
+
expect(() =>
|
|
1538
|
+
applyInlineEnvVars(
|
|
1539
|
+
'export const api = process.env.EXPO_PUBLIC_API;',
|
|
1540
|
+
'env.ts',
|
|
1541
|
+
isProduction,
|
|
1542
|
+
{}
|
|
1543
|
+
)
|
|
1544
|
+
).toThrow(/rename it to ONE_PUBLIC_\*/)
|
|
1545
|
+
}
|
|
1546
|
+
})
|
|
1547
|
+
|
|
1548
|
+
it('carries ONE_PLATFORM through the whole import.meta.env object', () => {
|
|
1549
|
+
const out = applyInlineEnvVars(
|
|
1550
|
+
'export const all = { ...import.meta.env };',
|
|
1551
|
+
'env.ts',
|
|
1552
|
+
true,
|
|
1553
|
+
{ ONE_PLATFORM: 'android' }
|
|
1554
|
+
)
|
|
1555
|
+
expect(out).toContain('"ONE_PLATFORM":"android"')
|
|
1556
|
+
expect(out).not.toContain('EXPO_OS')
|
|
1557
|
+
})
|
|
1558
|
+
})
|
|
@@ -515,16 +515,17 @@ export function applyModuleResolverAliases(
|
|
|
515
515
|
}
|
|
516
516
|
|
|
517
517
|
/**
|
|
518
|
-
* Native port of
|
|
519
|
-
*
|
|
520
|
-
*
|
|
521
|
-
*
|
|
522
|
-
*
|
|
523
|
-
* and every EXPO_PUBLIC_ value is undefined at runtime.
|
|
518
|
+
* Native port of one's `babel-plugin-inline-one-server-url` for public env.
|
|
519
|
+
* Every `process.env.ONE_PUBLIC_*` read is inlined as a literal in both modes,
|
|
520
|
+
* matching the rolldown native defines: a native runtime has no `process.env`
|
|
521
|
+
* to read it back out of, and without this the reads survive into the bundle
|
|
522
|
+
* and every ONE_PUBLIC_ value is undefined at runtime.
|
|
524
523
|
*
|
|
525
524
|
* `process.env.ONE_SERVER_URL` is inlined in both modes, matching one's plugin:
|
|
526
|
-
* it is how a native bundle knows where to fetch loader data from
|
|
527
|
-
*
|
|
525
|
+
* it is how a native bundle knows where to fetch loader data from.
|
|
526
|
+
*
|
|
527
|
+
* `process.env.EXPO_PUBLIC_*` reads fail with a migration error instead of
|
|
528
|
+
* being copied, ignored, or aliased.
|
|
528
529
|
*
|
|
529
530
|
* Both live in one pass because they are the same rewrite over the same walk,
|
|
530
531
|
* and a second parse of every file is the cost this transformer exists to avoid.
|
|
@@ -544,7 +545,6 @@ export function applyInlineEnvVars(
|
|
|
544
545
|
if (!parsed?.program) return code
|
|
545
546
|
|
|
546
547
|
const ms = new MagicString(code)
|
|
547
|
-
let needsEnvImport = false
|
|
548
548
|
|
|
549
549
|
// edits are collected rather than written straight through, because a folded
|
|
550
550
|
// dead branch swallows the range an inner edit sits in and MagicString throws
|
|
@@ -598,12 +598,13 @@ export function applyInlineEnvVars(
|
|
|
598
598
|
}
|
|
599
599
|
|
|
600
600
|
if (isProcessEnv && !isAssignmentTarget && key?.startsWith('EXPO_PUBLIC_')) {
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
601
|
+
throw new Error(
|
|
602
|
+
`[vxrn/metro] ${key} uses the removed expo prefix. rename it to ONE_PUBLIC_*`
|
|
603
|
+
)
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
if (isProcessEnv && !isAssignmentTarget && key?.startsWith('ONE_PUBLIC_')) {
|
|
607
|
+
replace(node, env[key] ?? process.env[key] ?? undefined)
|
|
607
608
|
return
|
|
608
609
|
}
|
|
609
610
|
|
|
@@ -627,7 +628,7 @@ export function applyInlineEnvVars(
|
|
|
627
628
|
}
|
|
628
629
|
|
|
629
630
|
// `process.env.X` for anything the vite env map defines. runs after the
|
|
630
|
-
//
|
|
631
|
+
// branches above so ONE_SERVER_URL and ONE_PUBLIC_* keep their own
|
|
631
632
|
// handling.
|
|
632
633
|
if (isProcessEnv && !isAssignmentTarget && key !== undefined && key in env) {
|
|
633
634
|
replace(node, env[key])
|
|
@@ -726,9 +727,6 @@ export function applyInlineEnvVars(
|
|
|
726
727
|
ms.overwrite(edit.start, edit.end, edit.text)
|
|
727
728
|
}
|
|
728
729
|
|
|
729
|
-
if (needsEnvImport) {
|
|
730
|
-
ms.prepend(`import { env as _$$_EXPO_ENV } from "expo/virtual/env";\n`)
|
|
731
|
-
}
|
|
732
730
|
return ms.hasChanged() ? ms.toString() : code
|
|
733
731
|
}
|
|
734
732
|
|
|
@@ -2177,9 +2175,9 @@ export const env = !dotEnvModules.keys().length ? process.env : { ...process.env
|
|
|
2177
2175
|
}
|
|
2178
2176
|
}
|
|
2179
2177
|
|
|
2180
|
-
// Step A2:
|
|
2181
|
-
// after flow stripping so the parse succeeds, before extraction so
|
|
2182
|
-
//
|
|
2178
|
+
// Step A2: one public env vars, one's server url, and `import.meta.env`.
|
|
2179
|
+
// after flow stripping so the parse succeeds, before extraction so any
|
|
2180
|
+
// folded-away dead branch is seen.
|
|
2183
2181
|
// the substring guards keep the extra parse off files with no such read at all.
|
|
2184
2182
|
if (code.includes('process.env') || code.includes('import.meta')) {
|
|
2185
2183
|
code = applyInlineEnvVars(code, filename, !options.dev, getImportMetaEnv(options))
|
|
@@ -5,7 +5,7 @@ type PluginOptions = {
|
|
|
5
5
|
/**
|
|
6
6
|
* Babel plugin to replace `import.meta.env.*` and `process.env.*` with env values.
|
|
7
7
|
*
|
|
8
|
-
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE,
|
|
8
|
+
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE, ONE_PLATFORM, TAMAGUI_ENVIRONMENT)
|
|
9
9
|
* are automatically injected based on the babel caller's platform.
|
|
10
10
|
*
|
|
11
11
|
* This plugin is referenced by name since Metro runs transformers in separate workers:
|
|
@@ -3,7 +3,7 @@ export type ViteEnvironment = 'client' | 'ssr' | 'ios' | 'android';
|
|
|
3
3
|
export type PlatformEnv = {
|
|
4
4
|
VITE_ENVIRONMENT: ViteEnvironment;
|
|
5
5
|
VITE_NATIVE: '' | '1';
|
|
6
|
-
|
|
6
|
+
ONE_PLATFORM: 'web' | 'ios' | 'android';
|
|
7
7
|
TAMAGUI_TARGET: 'web' | 'native';
|
|
8
8
|
TAMAGUI_ENVIRONMENT: ViteEnvironment;
|
|
9
9
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platformEnv.d.ts","sourceRoot":"","sources":["../../src/env/platformEnv.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAA;AAChD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAElE,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,eAAe,CAAA;IACjC,WAAW,EAAE,EAAE,GAAG,GAAG,CAAA;IACrB,
|
|
1
|
+
{"version":3,"file":"platformEnv.d.ts","sourceRoot":"","sources":["../../src/env/platformEnv.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,KAAK,CAAA;AAChD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;AAElE,MAAM,MAAM,WAAW,GAAG;IACxB,gBAAgB,EAAE,eAAe,CAAA;IACjC,WAAW,EAAE,EAAE,GAAG,GAAG,CAAA;IACrB,YAAY,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,KAAK,GAAG,QAAQ,CAAA;IAChC,mBAAmB,EAAE,eAAe,CAAA;CACrC,CAAA;AAiCD,wBAAgB,cAAc,CAAC,WAAW,EAAE,eAAe,GAAG,WAAW,CAExE;AAED,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAC7C,eAAe,CAIjB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,eAAe,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUxB"}
|
|
@@ -3,7 +3,7 @@ import type { TransformOptions } from '@babel/core';
|
|
|
3
3
|
/**
|
|
4
4
|
* Creates babel config for Metro transforms from Vite config.
|
|
5
5
|
*
|
|
6
|
-
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE,
|
|
6
|
+
* Platform-specific env vars (VITE_ENVIRONMENT, VITE_NATIVE, ONE_PLATFORM, TAMAGUI_ENVIRONMENT)
|
|
7
7
|
* are handled by the import-meta-env-plugin based on caller.platform and always take precedence.
|
|
8
8
|
*/
|
|
9
9
|
export declare function getMetroBabelConfigFromViteConfig(config: ResolvedConfig): TransformOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMetroBabelConfigFromViteConfig.d.ts","sourceRoot":"","sources":["../../src/metro-config/getMetroBabelConfigFromViteConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,cAAc,GACrB,gBAAgB,
|
|
1
|
+
{"version":3,"file":"getMetroBabelConfigFromViteConfig.d.ts","sourceRoot":"","sources":["../../src/metro-config/getMetroBabelConfigFromViteConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,MAAM,CAAA;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAEnD;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,cAAc,GACrB,gBAAgB,CAmElB"}
|
|
@@ -124,16 +124,17 @@ export declare function resolveAliasSpecifier(specifier: string, filename: strin
|
|
|
124
124
|
*/
|
|
125
125
|
export declare function applyModuleResolverAliases(code: string, filename: string, projectRoot: string, aliases: Record<string, string>): string;
|
|
126
126
|
/**
|
|
127
|
-
* Native port of
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* and every EXPO_PUBLIC_ value is undefined at runtime.
|
|
127
|
+
* Native port of one's `babel-plugin-inline-one-server-url` for public env.
|
|
128
|
+
* Every `process.env.ONE_PUBLIC_*` read is inlined as a literal in both modes,
|
|
129
|
+
* matching the rolldown native defines: a native runtime has no `process.env`
|
|
130
|
+
* to read it back out of, and without this the reads survive into the bundle
|
|
131
|
+
* and every ONE_PUBLIC_ value is undefined at runtime.
|
|
133
132
|
*
|
|
134
133
|
* `process.env.ONE_SERVER_URL` is inlined in both modes, matching one's plugin:
|
|
135
|
-
* it is how a native bundle knows where to fetch loader data from
|
|
136
|
-
*
|
|
134
|
+
* it is how a native bundle knows where to fetch loader data from.
|
|
135
|
+
*
|
|
136
|
+
* `process.env.EXPO_PUBLIC_*` reads fail with a migration error instead of
|
|
137
|
+
* being copied, ignored, or aliased.
|
|
137
138
|
*
|
|
138
139
|
* Both live in one pass because they are the same rewrite over the same walk,
|
|
139
140
|
* and a second parse of every file is the cost this transformer exists to avoid.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metroNativeWorker.d.ts","sourceRoot":"","sources":["../../src/transformer/metroNativeWorker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"metroNativeWorker.d.ts","sourceRoot":"","sources":["../../src/transformer/metroNativeWorker.ts"],"names":[],"mappings":"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"}
|