@intuitionrobotics/ts-common
Version:
54 lines • 2.04 kB
JavaScript
/*
* ts-common is the basic building blocks of our typescript projects
*
* Copyright (C) 2020 Intuition Robotics
*
* 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 { LogLevel } from "./types.js";
import { LogClient } from "./LogClient.js";
import { _logger_logException } from "./utils.js";
class LogClient_Function_class extends LogClient {
constructor() {
super();
this.setComposer((tag, level) => `${level} ${tag}: `);
}
logMessage(level, bold, prefix, toLog) {
for (const logParam of toLog) {
if (logParam)
// @ts-expect-error TS struggles with this dynamic typing
if (logParam.stack) {
console.log(`${prefix}${_logger_logException(logParam)}`);
continue;
}
switch (typeof logParam) {
case "undefined":
case "function":
case "symbol":
case "bigint":
console.log(`${prefix}${typeof logParam}`);
continue;
case "boolean":
case "number":
case "string":
console.log(`${prefix}${logParam}`);
continue;
case "object":
console.log(`${prefix}${JSON.stringify(logParam)}`);
continue;
}
}
}
}
export const LogClient_Function = new LogClient_Function_class();
//# sourceMappingURL=LogClient_Function.js.map