UNPKG

4.1 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.mapValueToSeverity = exports.parseENV = exports.setGlobalOptions = void 0;
4const constants_1 = require("./internal/constants");
5const data_1 = require("./internal/data");
6const errors_1 = require("./internal/errors");
7const utils_1 = require("./internal/utils");
8const logSettings_1 = require("./logSettings");
9/**
10 * Set Typegoose's global Options
11 */
12function setGlobalOptions(options) {
13 (0, utils_1.assertion)(!(0, utils_1.isNullOrUndefined)(options) && typeof options === 'object', () => new errors_1.ExpectedTypeError('options', 'object', options));
14 logSettings_1.logger.info('"setGlobalOptions" got called with', options);
15 for (const key of Object.keys(options)) {
16 data_1.globalOptions[key] = Object.assign({}, data_1.globalOptions[key], options[key]);
17 }
18 logSettings_1.logger.info('new Global Options:', options);
19}
20exports.setGlobalOptions = setGlobalOptions;
21/**
22 * Parse Typegoose Environment Variables and apply them
23 */
24function parseENV() {
25 logSettings_1.logger.info('"parseENV" got called');
26 const options = {
27 globalOptions: {},
28 options: {
29 allowMixed: process.env.TG_ALLOW_MIXED && process.env.TG_ALLOW_MIXED in constants_1.Severity
30 ? mapValueToSeverity(process.env.TG_ALLOW_MIXED)
31 : data_1.globalOptions.options?.allowMixed,
32 },
33 };
34 setGlobalOptions(options);
35}
36exports.parseENV = parseENV;
37/**
38 * Maps strings to the number of "Severity"
39 * -> This function is specifically build for "Severity"-Enum
40 * @throws {Error} if not in range of the "Severity"-Enum
41 * @example
42 * ```ts
43 * mapValueToSeverity("WARN") === 1
44 * mapValueToSeverity("1") === 1
45 * // now internal use
46 * mapValueToSeverity(1) === 1
47 * ```
48 * @param value The Value to translate
49 * @internal
50 */
51function mapValueToSeverity(value) {
52 (0, utils_1.assertion)(value in constants_1.Severity, () => new Error(`"value" is not in range of "Severity"! (got: ${value})`));
53 if (typeof value === 'number') {
54 return value;
55 }
56 return mapValueToSeverity(constants_1.Severity[value]);
57}
58exports.mapValueToSeverity = mapValueToSeverity;
59//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nbG9iYWxPcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG9EQUFnRDtBQUNoRCwwQ0FBZ0Q7QUFDaEQsOENBQXNEO0FBQ3RELDRDQUFnRTtBQUNoRSwrQ0FBdUM7QUFHdkM7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUF1QjtJQUN0RCxJQUFBLGlCQUFTLEVBQUMsQ0FBQyxJQUFBLHlCQUFpQixFQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLDBCQUFpQixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUVqSSxvQkFBTSxDQUFDLElBQUksQ0FBQyxvQ0FBb0MsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUzRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdEMsb0JBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxvQkFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzFFO0lBRUQsb0JBQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQVZELDRDQVVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixRQUFRO0lBQ3RCLG9CQUFNLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFFckMsTUFBTSxPQUFPLEdBQW1CO1FBQzlCLGFBQWEsRUFBRSxFQUFFO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLFVBQVUsRUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxvQkFBUTtnQkFDbEUsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsb0JBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVTtTQUN4QztLQUNGLENBQUM7SUFFRixnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM1QixDQUFDO0FBZEQsNEJBY0M7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsS0FBc0I7SUFDdkQsSUFBQSxpQkFBUyxFQUFDLEtBQUssSUFBSSxvQkFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLGdEQUFnRCxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFFeEcsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE9BQU8sa0JBQWtCLENBQUMsb0JBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFSRCxnREFRQyJ9
\No newline at end of file