UNPKG

@augment-vir/node

Version:

A collection of augments, helpers types, functions, and classes only for Node.js (backend) JavaScript environments.

82 lines (81 loc) 1.97 kB
// cspell:disable import { arrayToObject } from '@augment-vir/common'; /** * These are all the env flags that Prisma reads for determining if it's being executed within a CI * environment. This list was retrieved from * https://github.com/prisma/prisma/blob/075d31287c90b757fd9bd8d9b36032e6349fa671/packages/internals/src/utils/isCi.ts. */ const prismaCiFlags = [ 'CI', 'CONTINUOUS_INTEGRATION', 'BUILD_NUMBER', 'RUN_ID', 'AGOLA_GIT_REF', 'AC_APPCIRCLE', 'APPVEYOR', 'CODEBUILD', 'TF_BUILD', 'bamboo_planKey', 'BITBUCKET_COMMIT', 'BITRISE_IO', 'BUDDY_WORKSPACE_ID', 'BUILDKITE', 'CIRCLECI', 'CIRRUS_CI', 'CF_BUILD_ID', 'CM_BUILD_ID', 'CI_NAME', 'DRONE', 'DSARI', 'EARTHLY_CI', 'EAS_BUILD', 'GERRIT_PROJECT', 'GITEA_ACTIONS', 'GITHUB_ACTIONS', 'GITLAB_CI', 'GOCD', 'BUILDER_OUTPUT', 'HARNESS_BUILD_ID', 'JENKINS_URL', 'BUILD_ID', 'LAYERCI', 'MAGNUM', 'NETLIFY', 'NEVERCODE', 'PROW_JOB_ID', 'RELEASE_BUILD_ID', 'RENDER', 'SAILCI', 'HUDSON', 'JENKINS_URL', 'BUILD_ID', 'SCREWDRIVER', 'SEMAPHORE', 'SOURCEHUT', 'STRIDER', 'TASK_ID', 'RUN_ID', 'TEAMCITY_VERSION', 'TRAVIS', 'VELA', 'NOW_BUILDER', 'APPCENTER_BUILD_ID', 'CI_XCODE_PROJECT', 'XCS', ]; export function testWithNonCiEnv(callback) { return async () => { const usedKeys = prismaCiFlags.filter((ciFlag) => ciFlag in process.env); /** For already non-CI environments. */ /* node:coverage ignore next 6 */ const originalEnvValues = arrayToObject(usedKeys, (key) => { return { key, value: process.env[key], }; }); usedKeys.forEach((key) => delete process.env[key]); await callback(); usedKeys.forEach((key) => (process.env[key] = originalEnvValues[key])); }; }