/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow strict * @format */ 'use strict'; function getPreludeCode({ extraVars, isDev, }: {| +extraVars?: {[string]: mixed}, +isDev: boolean, |}): string { const vars = [ ...formatExtraVars(extraVars), `__DEV__=${String(isDev)}`, '__BUNDLE_START_TIME__=this.nativePerformanceNow?nativePerformanceNow():Date.now()', 'process=this.process||{}', ]; return `var ${vars.join(',')};${processEnv( isDev ? 'development' : 'production', )}`; } function formatExtraVars(extraVars) { const assignments = []; for (const key in extraVars) { assignments.push(`${key}=${JSON.stringify(extraVars[key])}`); } return assignments; } function processEnv(nodeEnv) { return `process.env=process.env||{};process.env.NODE_ENV=${JSON.stringify( nodeEnv, )};`; } module.exports = getPreludeCode;