@interaktiv/mibuilder-core
Version:
Core libraries to interact with MiBuilder projects.
72 lines (59 loc) • 2.14 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createDir = exports.getEnvironmentMode = exports.MODE_TEST = exports.MODE_DEMO = exports.MODE_DEVELOPMENT = exports.MODE_PRODUCTION = void 0;
var _path = _interopRequireDefault(require("path"));
var _dxl = require("@interaktiv/dxl");
var _constants = require("./constants");
/**
* Global constants, methods, and configuration.
*/
const env = new _dxl.Env(process.env, 'MIBUILDER');
/**
* Represents an environment mode. Supports `production`, `development`, `demo`, and `test`
* with the default mode being `production`.
*
* To set the mode, `export MIBUILDER_ENV=<mode>` in your current environment.
*/
const MODE = {
PRODUCTION: 'production',
DEVELOPMENT: 'development',
DEMO: 'demo',
TEST: 'test'
};
const MODE_PRODUCTION = MODE.PRODUCTION;
exports.MODE_PRODUCTION = MODE_PRODUCTION;
const MODE_DEVELOPMENT = MODE.DEVELOPMENT;
exports.MODE_DEVELOPMENT = MODE_DEVELOPMENT;
const MODE_DEMO = MODE.DEMO;
exports.MODE_DEMO = MODE_DEMO;
const MODE_TEST = MODE.TEST;
/**
* Gets the current mode environment variable as a {@link modes} instance.
*
* ```
* console.log(Global.getEnvironmentMode() === modes.PRODUCTION);
* ```
*
* @return {String} mode
*/
exports.MODE_TEST = MODE_TEST;
const getEnvironmentMode = () => {
const currentMode = env.getKeyOf(env.getScopedEnvKey('ENV'), MODE, MODE.PRODUCTION, value => value.toUpperCase());
return MODE[currentMode];
};
/**
* Creates a directory within {@link Global.DIR}, or {@link Global.DIR} itself
* if the `dirPath` param is not provided. This is resolved or rejected when
* the directory creation operation has completed.
*
* @param {String} dirPath The directory path to be created within {@link Global.DIR}.
*/
exports.getEnvironmentMode = getEnvironmentMode;
const createDir = async dirPath => {
const dir = dirPath ? _path.default.join(_constants.GLOBAL_CONFIG_DIR, dirPath) : _constants.GLOBAL_CONFIG_DIR;
await (0, _dxl.mkdirp)(dir);
};
exports.createDir = createDir;