"use strict";
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
  for (var name in all)
    __defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
  if (from && typeof from === "object" || typeof from === "function") {
    for (let key of __getOwnPropNames(from))
      if (!__hasOwnProp.call(to, key) && key !== except)
        __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  }
  return to;
};
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
var validations_exports = {};
__export(validations_exports, {
  validateMessage: () => validateMessage,
  validateOptions: () => validateOptions
});
module.exports = __toCommonJS(validations_exports);
const validateOptions = ({
  index,
  team,
  appName,
  transport
}) => {
  if (!index) {
    throw new Error("index is required");
  }
  if (!team || !appName)
    throw new Error(
      "one of the following mandatory options are missing: team, appName"
    );
  if (!transport?.log) {
    throw new Error("transport should be of type Console or http");
  }
};
const validateMessage = (logMessage) => {
  if (!logMessage || typeof logMessage !== "object" && typeof logMessage !== "string" || typeof logMessage === "function" || Array.isArray(logMessage))
    throw new Error("input needs to be a valid log object or string");
  if (typeof logMessage === "object") {
    if (!logMessage.message) throw new Error("message is required");
    const { exception } = logMessage;
    if (exception && !(exception.message && exception.stack))
      throw new Error("exception should be of type Error");
  }
};
