UNPKG

@interaktiv/mibuilder-core

Version:

Core libraries to interact with MiBuilder projects.

72 lines (59 loc) 2.14 kB
"use strict"; 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;