@@ -220,6 +220,17 @@ export const build = async (...files) => {
220220 }
221221 }
222222
223+ const envOverride = {
224+ FORCE_COLOR : '0' ,
225+ NO_COLOR : '1' ,
226+ EXODUS_TEST_CONTEXT : 'pure' ,
227+ EXODUS_TEST_ENVIRONMENT : 'bundle' , // always 'bundle'
228+ EXODUS_TEST_JEST_CONFIG : JSON . stringify ( options . jestConfig ) ,
229+ NODE_DEBUG : undefined ,
230+ DEBUG : undefined ,
231+ READABLE_STREAM : undefined ,
232+ }
233+
223234 specificLoadPipeline . push ( async ( source , filepath ) => {
224235 for ( const m of source . matchAll ( / r e a d F i l e S y n c \( \s * (?: " ( [ ^ " \\ ] + ) " | ' ( [ ^ ' \\ ] + ) ' ) [ ) , ] / gu) ) {
225236 await fsFilesAdd ( resolve ( m [ 1 ] || m [ 2 ] ) ) // resolves from cwd
@@ -237,7 +248,8 @@ export const build = async (...files) => {
237248 if ( / ( r e a d d i r | r e a d F i l e | e x i s t s ) S y n c / u. test ( source ) ) await fsFilesBundleFixtures ( 'fs' )
238249 if ( fixturesRegex . test ( source ) ) await fsFilesBundleFixtures ( 'fixtures' )
239250
240- return source
251+ const getEnv = ( key ) => ( Object . hasOwn ( envOverride , key ) ? envOverride [ key ] : process . env [ key ] ) // We know key is safe as it comes from regex below
252+ return source . replace ( / \b (?: p r o c e s s \. e n v \. ( [ A - Z 0 - 9 _ ] + ) ) \b / gu, ( _ , x ) => stringify ( getEnv ( x ) ) )
241253 } )
242254
243255 if ( files . length === 1 ) {
@@ -285,24 +297,6 @@ export const build = async (...files) => {
285297 platform : 'neutral' ,
286298 mainFields : [ 'browser' , 'module' , 'main' ] ,
287299 define : {
288- 'process.env.FORCE_COLOR' : stringify ( '0' ) ,
289- 'process.env.NO_COLOR' : stringify ( '1' ) ,
290- 'process.env.NODE_ENV' : stringify ( process . env . NODE_ENV ) ,
291- 'process.env.EXODUS_TEST_CONTEXT' : stringify ( 'pure' ) ,
292- 'process.env.EXODUS_TEST_ENVIRONMENT' : stringify ( 'bundle' ) , // always 'bundle'
293- 'process.env.EXODUS_TEST_PLATFORM' : stringify ( process . env . EXODUS_TEST_PLATFORM ) , // e.g. 'hermes', 'node'
294- 'process.env.EXODUS_TEST_ENGINE' : stringify ( process . env . EXODUS_TEST_ENGINE ) , // e.g. 'hermes:bundle', 'node:bundle'
295- 'process.env.EXODUS_TEST_IS_BROWSER' : stringify ( process . env . EXODUS_TEST_IS_BROWSER ) , // '1' or ''
296- 'process.env.EXODUS_TEST_IS_BAREBONE' : stringify ( process . env . EXODUS_TEST_IS_BAREBONE ) , // '1' or ''
297- 'process.env.EXODUS_TEST_JEST_CONFIG' : stringify ( JSON . stringify ( options . jestConfig ) ) ,
298- 'process.env.EXODUS_TEST_EXECARGV' : stringify ( process . env . EXODUS_TEST_EXECARGV ) ,
299- 'process.env.EXODUS_TEST_ONLY' : stringify ( process . env . EXODUS_TEST_ONLY ) ,
300- 'process.env.EXODUS_TEST_TIMEOUT' : stringify ( process . env . EXODUS_TEST_TIMEOUT ) ,
301- 'process.env.NODE_DEBUG' : stringify ( ) ,
302- 'process.env.DEBUG' : stringify ( ) ,
303- 'process.env.READABLE_STREAM' : stringify ( ) ,
304- 'process.env.CI' : stringify ( process . env . CI ) ,
305- 'process.env.CI_ENABLE_VERBOSE_LOGS' : stringify ( process . env . CI_ENABLE_VERBOSE_LOGS ) ,
306300 'process.browser' : stringify ( true ) ,
307301 'process.emitWarning' : 'undefined' ,
308302 'process.stderr' : 'undefined' ,
0 commit comments