@typegoose/typegoose
Version:
Define Mongoose models using TypeScript classes
63 lines • 4.45 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.mapValueToSeverity = exports.parseENV = exports.setGlobalOptions = void 0;
const constants_1 = require("./internal/constants");
const data_1 = require("./internal/data");
const errors_1 = require("./internal/errors");
const utils_1 = require("./internal/utils");
const logSettings_1 = require("./logSettings");
/**
* Set Typegoose's global Options
*/
function setGlobalOptions(options) {
(0, utils_1.assertion)(!(0, utils_1.isNullOrUndefined)(options) && typeof options === 'object', () => new errors_1.ExpectedTypeError('options', 'object', options));
logSettings_1.logger.info('"setGlobalOptions" got called with', options);
for (const key of Object.keys(options)) {
data_1.globalOptions[key] = Object.assign({}, data_1.globalOptions[key], options[key]);
}
logSettings_1.logger.info('new Global Options:', options);
}
exports.setGlobalOptions = setGlobalOptions;
/**
* Parse Typegoose Environment Variables and apply them
*/
function parseENV() {
logSettings_1.logger.info('"parseENV" got called');
// do nothing if no process variable existing
if (typeof process === 'undefined' || (0, utils_1.isNullOrUndefined)(process?.env)) {
return;
}
const options = {
globalOptions: {},
options: {
allowMixed: process.env.TG_ALLOW_MIXED && process.env.TG_ALLOW_MIXED in constants_1.Severity
? mapValueToSeverity(process.env.TG_ALLOW_MIXED)
: data_1.globalOptions.options?.allowMixed,
},
};
setGlobalOptions(options);
}
exports.parseENV = parseENV;
/**
* Maps strings to the number of "Severity"
* -> This function is specifically build for "Severity"-Enum
* @throws {Error} if not in range of the "Severity"-Enum
* @example
* ```ts
* mapValueToSeverity("WARN") === 1
* mapValueToSeverity("1") === 1
* // now internal use
* mapValueToSeverity(1) === 1
* ```
* @param value The Value to translate
* @internal
*/
function mapValueToSeverity(value) {
(0, utils_1.assertion)(value in constants_1.Severity, () => new Error(`"value" is not in range of "Severity"! (got: ${value})`));
if (typeof value === 'number') {
return value;
}
return mapValueToSeverity(constants_1.Severity[value]);
}
exports.mapValueToSeverity = mapValueToSeverity;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nbG9iYWxPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUFnRDtBQUNoRCwwQ0FBZ0Q7QUFDaEQsOENBQXNEO0FBQ3RELDRDQUFnRTtBQUNoRSwrQ0FBdUM7QUFHdkM7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUF1QjtJQUN0RCxJQUFBLGlCQUFTLEVBQUMsQ0FBQyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBCQUFpQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVqSSxvQkFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUzRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxvQkFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLG9CQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELG9CQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFWRCw0Q0FVQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsUUFBUTtJQUN0QixvQkFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXJDLDZDQUE2QztJQUM3QyxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsSUFBSSxJQUFBLHlCQUFpQixFQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3RFLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQW1CO1FBQzlCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLFVBQVUsRUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxvQkFBUTtnQkFDbEUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsb0JBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVTtTQUN4QztLQUNGLENBQUM7SUFFRixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBbkJELDRCQW1CQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFzQjtJQUN2RCxJQUFBLGlCQUFTLEVBQUMsS0FBSyxJQUFJLG9CQUFRLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsZ0RBQWdELEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV4RyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE9BQU8sa0JBQWtCLENBQUMsb0JBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFSRCxnREFRQyJ9
;