| // Copyright 2025 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| import { existsSync } from 'node:fs'; |
| import { loadEnvFile } from 'node:process'; |
| |
| // Make sure that the file exist else the `loadEnvFile` |
| // throws an error |
| if (existsSync('.env')) { |
| // Side-effect of importing this file. |
| loadEnvFile(); |
| } |
| |
| /** |
| * |
| * @param {string} variable |
| * @param {boolean} fallback |
| * @returns {boolean} |
| */ |
| export function getEnvBoolean(variable, fallback) { |
| if (process.env[variable] === 'true') { |
| return true; |
| } |
| if (process.env[variable] === 'false') { |
| return false; |
| } |
| return fallback; |
| } |
| |
| /** |
| * @param {string} variable |
| * @param {string} fallback |
| */ |
| export function getEnvString(variable, fallback) { |
| if (process.env[variable]) { |
| return process.env[variable]; |
| } |
| return fallback; |
| } |
| |
| /** |
| * Default env that we expect to exist in the .env config |
| */ |
| export const ENV = { |
| BROWSER: 'DEVTOOLS_BROWSER', |
| UNSTABLE_FEATURES: 'DEVTOOLS_UNSTABLE_FEATURES', |
| ENABLE_FEATURES: 'DEVTOOLS_ENABLE_FEATURES', |
| DISABLE_FEATURES: 'DEVTOOLS_DISABLE_FEATURES', |
| AUTO_OPEN_DEVTOOLS: 'DEVTOOLS_AUTO_OPEN_DEVTOOLS', |
| TARGET: 'DEVTOOLS_TARGET', |
| USER_DATA_DIR: 'DEVTOOLS_USER_DATA_DIR' |
| }; |