simple-in-memory-queue
Version:
A simple in-memory queue, for nodejs and the browser, with consumers for common usecases.
41 lines • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.serviceClientStage = exports.stage = exports.Stage = void 0;
var Stage;
(function (Stage) {
Stage["PRODUCTION"] = "prod";
Stage["DEVELOPMENT"] = "dev";
Stage["TEST"] = "test";
})(Stage = exports.Stage || (exports.Stage = {}));
/**
* this allows us to infer what the stage should be in environments that do not have STAGE specified
* - e.g., when running locally
* - e.g., when running tests
*/
const inferStageFromNodeEnv = () => {
const nodeEnv = process.env.NODE_ENV; // default to test if not defined
if (!nodeEnv)
throw new Error('process.env.NODE_ENV must be defined');
if (nodeEnv === 'production')
return Stage.PRODUCTION;
if (nodeEnv === 'development')
return Stage.DEVELOPMENT;
if (nodeEnv === 'test')
return Stage.TEST;
throw new Error(`unexpected nodeEnv '${nodeEnv}'`);
};
/**
* a method that exposes relevant environmental variables in a standard way
*/
const getEnvironment = () => {
var _a;
const stage = (_a = process.env.STAGE) !== null && _a !== void 0 ? _a : inferStageFromNodeEnv(); // figure it out from NODE_ENV if not explicitly defined
if (!stage)
throw new Error('process.env.STAGE must be defined');
return { stage };
};
// export stage immediately, since it does not change
exports.stage = getEnvironment().stage;
// export service client stage
exports.serviceClientStage = exports.stage === Stage.PRODUCTION ? Stage.PRODUCTION : Stage.DEVELOPMENT; // i.e., if its prod, hit prod. otherwise, dev
//# sourceMappingURL=environment.js.map