export const debug = makeLogger(
  "log",
  "party-debug",
  "background-color: #888; color: #fff; padding: 2px 5px; border-radius: 2px"
)

export const log = makeLogger(
  "log",
  "party-log",
  "background-color: #88F; color: #00ffff; padding: 2px 5px; border-radius: 2px"
)

export const alert = makeLogger(
  "log",
  "party-alert",
  "background-color: #FF0; color: #000; padding: 2px 5px; border-radius: 2px"
)

export const warn = makeLogger(
  "warn",
  "party-warn",
  "background-color: #FF0; color: #000; padding: 2px 5px; border-radius: 2px"
)

export const error = makeLogger(
  "error",
  "party-error",
  "background-color: #ff0000; color: #ffffff; padding: 2px 5px; border-radius: 2px"
)

type loggerType = "debug" | "log" | "warn" | "error"
function makeLogger(type: loggerType, prefix: string, style: string) {
  if (typeof window !== "undefined") {
    // eslint-disable-next-line
    return console[type].bind(window.console, `%c${prefix}`, style)
  } else {
    return console.log
  }
}

// eslint-disable-next-line
export const styled =
  typeof window !== "undefined"
    ? console.log.bind(
        window.console,
        "%cparty-log%c %c%s",
        "background-color: #88F; color: #00ffff; padding: 2px 5px; border-radius: 2px",
        "background: none;"
      )
    : console.log
