@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
JavaScript
// 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]));
};
}