@holographxyz/environment
Version:
Holograph Protocol
55 lines • 2.13 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.setEnvironment = exports.getEnvironment = exports.Environment = void 0;
const fs_1 = __importDefault(require("fs"));
const dotenv_1 = __importDefault(require("dotenv"));
dotenv_1.default.config();
var Environment;
(function (Environment) {
Environment["localhost"] = "localhost";
Environment["experimental"] = "experimental";
Environment["develop"] = "develop";
Environment["testnet"] = "testnet";
Environment["mainnet"] = "mainnet";
})(Environment || (Environment = {}));
exports.Environment = Environment;
const getEnvironment = () => {
if (global.__companionNetwork !== undefined && global.__companionNetwork !== '') {
return global.__companionNetwork;
}
let environment = Environment.testnet;
const acceptableBranches = new Set(Object.values(Environment));
const head = './.git/HEAD';
const env = process.env.ABI_ENVIRONMENT || process.env.HOLOGRAPH_ENVIRONMENT || '';
if (env === '') {
if (fs_1.default.existsSync(head)) {
const contents = fs_1.default.readFileSync('./.git/HEAD', 'utf8');
const branch = contents.trim().split('ref: refs/heads/')[1];
if (acceptableBranches.has(branch)) {
environment = Environment[branch];
}
}
}
else if (acceptableBranches.has(env)) {
environment = Environment[env];
}
global.__environment = environment;
return environment;
};
exports.getEnvironment = getEnvironment;
const setEnvironment = (env) => {
let environment = Environment.testnet;
if (env !== undefined) {
const acceptableBranches = new Set(Object.values(Environment));
if (acceptableBranches.has(env)) {
environment = Environment[env];
}
}
global.__environment = environment;
return environment;
};
exports.setEnvironment = setEnvironment;
//# sourceMappingURL=environment.js.map