UNPKG

whodis-sdk

Version:

A simple sdk for easy, secure authentication with the whodis platform. Setup secure authentication for your app in seconds.

44 lines 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.serviceClientStage = exports.stage = exports.isOfStage = exports.Stage = void 0; const type_fns_1 = require("type-fns"); var Stage; (function (Stage) { Stage["PRODUCTION"] = "prod"; Stage["DEVELOPMENT"] = "dev"; Stage["TEST"] = "test"; })(Stage || (exports.Stage = Stage = {})); exports.isOfStage = (0, type_fns_1.createIsOfEnum)(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 = () => { const stage = process.env.STAGE ?? inferStageFromNodeEnv(); // figure it out from NODE_ENV if not explicitly defined if (!stage) throw new Error('process.env.STAGE must be defined'); if (!(0, exports.isOfStage)(stage)) throw new Error(`invalid stage defined '${stage}'`); 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