@opentext/sdp-sdm-tests-to-run-conversion
Version:
JavaScript-based tool that converts the testsToRun parameter for running automated tests from OpenText Core Software Delivery Platform and OpenText Software Delivery Management.
110 lines (100 loc) • 3.49 kB
text/typescript
/*
* Copyright 2016-2025 Open Text.
*
* The only warranties for products and services of Open Text and
* its affiliates and licensors (“Open Text”) are as may be set forth
* in the express warranty statements accompanying such products and services.
* Nothing herein should be construed as constituting an additional warranty.
* Open Text shall not be liable for technical or editorial errors or
* omissions contained herein. The information contained herein is subject
* to change without notice.
*
* Except as specifically indicated otherwise, this document contains
* confidential information and a valid license is required for possession,
* use or copying. If this work is provided to the U.S. Government,
* consistent with FAR 12.211 and 12.212, Commercial Computer Software,
* Computer Software Documentation, and Technical Data for Commercial Items are
* licensed to the U.S. Government under vendor's standard commercial license.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { getConfig } from "../config/config";
enum LogLevel {
DISABLED = 0,
TRACE = 1,
DEBUG = 2,
INFO = 3,
WARN = 4,
ERROR = 5,
}
export default class Logger {
private module: string;
private readonly levels: {
[key: number]: { value: number; display: string };
} = {
1: { value: 1, display: "TRACE" },
2: { value: 2, display: "DEBUG" },
3: { value: 3, display: "INFO" },
4: { value: 4, display: "WARNING" },
5: { value: 5, display: "ERROR" },
};
constructor(module: string) {
this.module = module;
}
public trace(message: string): void {
this.log(LogLevel.TRACE, message);
}
public debug(message: string): void {
this.log(LogLevel.DEBUG, message);
}
public info(message: string): void {
this.log(LogLevel.INFO, message);
}
public warn(message: string): void {
this.log(LogLevel.WARN, message);
}
public error(message: string): void {
this.log(LogLevel.ERROR, message);
}
/**
* Log a message at a certain logging level.
*
* @param logLevel Level to log at
* @param message Message to log
*/
private log(logLevel: LogLevel, message: string): void {
const minLevel = getConfig().logLevel;
const level = this.getLevel(logLevel);
if (!level || minLevel === LogLevel.DISABLED || level.value < minLevel)
return;
this.emit(level.display, message);
}
/**
* Converts a string level (trace/debug/info/warn/error) into a number and display value
*
* @param minLevel
*/
private getLevel(
minLevel: LogLevel,
): { value: number; display: string } | undefined {
if (minLevel in this.levels) return this.levels[minLevel];
else return undefined;
}
/**
* Emits a log message.
*
* @param logLevelPrefix Display name of the log level
* @param message Message to log
*/
private emit(logLevelPrefix: string, message: string): void {
console.log(`[${logLevelPrefix}][${this.module}] ${message}`);
}
}