@netlify/content-engine
Version:
86 lines • 2.5 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isCI = isCI;
exports.getCIName = getCIName;
const ci_info_1 = __importDefault(require("ci-info"));
const CI_DEFINITIONS = [
getEnvDetect({ key: `NOW_BUILDER_ANNOTATE`, name: `ZEIT Now` }),
getEnvDetect({ key: `NOW_REGION`, name: `ZEIT Now v1` }),
getEnvDetect({ key: `VERCEL_URL`, name: `Vercel Now` }),
getEnvDetect({ key: `NOW_BUILDER`, name: `Vercel Now` }),
getEnvDetect({ key: `VERCEL_BUILDER`, name: `Vercel Now` }),
getEnvDetect({ key: `CODESANDBOX_SSE`, name: `CodeSandbox` }),
getEnvDetect({ key: `GITHUB_ACTIONS`, name: `GitHub Actions` }),
getEnvDetect({ key: `CIRCLE_BRANCH`, name: `CircleCI` }),
getEnvDetect({ key: `CIRCLECI`, name: `CircleCI` }),
envFromCIAndCIName,
herokuDetect,
getEnvFromCIInfo,
envFromCIWithNoName,
];
function lookupCI() {
for (const fn of CI_DEFINITIONS) {
try {
const res = fn();
if (res) {
return res;
}
}
catch (e) {
// ignore
}
}
return null;
}
const CIName = lookupCI();
/**
* Determines whether the environment where the code is running is in CI
* @return true if the environment is in CI, false otherwise
*/
function isCI() {
return !!CIName;
}
/**
* Gets the name of the CI environment (e.g. "Vercel", "Heroku", etc.)
* @return The name of the CI if available. Defaults to null if not in CI
*/
function getCIName() {
if (!isCI()) {
return null;
}
return CIName;
}
function getEnvFromCIInfo() {
if (ci_info_1.default.isCI)
return ci_info_1.default.name || `ci-info detected w/o name`;
return null;
}
function getEnvDetect({ key, name, }) {
return function () {
if (process.env[key]) {
return name;
}
return null;
};
}
function herokuDetect() {
return (typeof process.env.NODE === `string` &&
/\.heroku\/node\/bin\/node/.test(process.env.NODE) &&
`Heroku`);
}
function envFromCIAndCIName() {
if (process.env.CI_NAME && process.env.CI) {
return process.env.CI_NAME;
}
return null;
}
function envFromCIWithNoName() {
if (process.env.CI) {
return `CI detected without name`;
}
return null;
}
//# sourceMappingURL=ci.js.map
;