Sha256: 18520d3a1f49ce3223730ef73157d325d7ee606678ea58e4e1ffea29007c2c11

Contents?: true

Size: 1.46 KB

Versions: 18

Compression:

Stored size: 1.46 KB

Contents

import dayjs from "dayjs"
import relativeTime from "dayjs/plugin/relativeTime"
import timezone from "dayjs/plugin/timezone"
import utc from "dayjs/plugin/utc"
import type { LocationQueryValue } from "vue-router"

import { getCountryByCode } from "@/countries"
import type { GCS, IPInfo } from "@/types"

dayjs.extend(relativeTime)
dayjs.extend(timezone)
dayjs.extend(utc)

export function getLocalDatetime(datetime: string): string {
  return dayjs(datetime).local().format("YYYY-MM-DD HH:mm:ss")
}

export function getHumanizedRelativeTime(datetime: string): string {
  return dayjs(datetime).local().fromNow()
}

export function getGCSByCountryCode(countryCode: string): GCS | undefined {
  const country = getCountryByCode(countryCode)
  if (country !== undefined) {
    return { lat: country.lat, long: country.long }
  }
}

export function getGCSByIPInfo(ipinfo: IPInfo): GCS | undefined {
  if (ipinfo.loc !== undefined) {
    const numbers = ipinfo.loc.split(",")
    if (numbers.length === 2) {
      const lat = numbers[0]
      const long = numbers[1]

      return { lat: parseFloat(lat), long: parseFloat(long) }
    }
  }
  return getGCSByCountryCode(ipinfo.countryCode)
}

export function normalizeQueryParam(
  param: undefined | null | string | string[] | LocationQueryValue | LocationQueryValue[]
): string | undefined {
  if (param === undefined || param === null) {
    return undefined
  }

  if (typeof param === "string") {
    return param
  }

  return param.toString()
}

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
mihari-5.7.0 frontend/src/utils.ts
mihari-5.6.2 frontend/src/utils.ts
mihari-5.6.1 frontend/src/utils.ts
mihari-5.6.0 frontend/src/utils.ts
mihari-5.5.0 frontend/src/utils.ts
mihari-5.4.9 frontend/src/utils.ts
mihari-5.4.8 frontend/src/utils.ts
mihari-5.4.7 frontend/src/utils.ts
mihari-5.4.6 frontend/src/utils.ts
mihari-5.4.5 frontend/src/utils.ts
mihari-5.4.4 frontend/src/utils.ts
mihari-5.4.3 frontend/src/utils.ts
mihari-5.4.2 frontend/src/utils.ts
mihari-5.4.1 frontend/src/utils.ts
mihari-5.4.0 frontend/src/utils.ts
mihari-5.3.2 frontend/src/utils.ts
mihari-5.3.1 frontend/src/utils.ts
mihari-5.3.0 frontend/src/utils.ts