Skip to content

[codemod][FP/FN] nuxt/4/migration-recipe #70

@baixiaoyu2997

Description

@baixiaoyu2997

Issue Description

Select one of:
[x] Generated codemod is not correct
[ ] Bug in Codemod Studio
[ ] UI/UX improvement request
[ ] Feature request

use nuxt/4/[email protected]
code from :

const {
    data: continuousKLinesData,
    status: originDataStatus,
    execute,
  } = useAsyncData(() => getContinuousKLines(symbol.value, interval.value), {
    immediate: false,
    default: () => [] satisfies Array<WSContinuousKLineDataK>,
    watch: [symbol, interval],
  })

change to:

const {
    data: continuousKLinesData,
    status: originDataStatus,
    execute,
// issue here, `.params.slug`
  } = useAsyncData(.params.slug, () => getContinuousKLines(symbol.value, interval.value), {
    immediate: false,
    default: () => [] satisfies Array<WSContinuousKLineDataK>,
    watch: [symbol, interval],
  })

Source

import dayjs from 'dayjs'
import type { LWChartDataItem } from '#layers/chart/components/LWChart.vue'
import type { UTCTimestamp } from 'lightweight-charts'
import type { WSContinuousKLineDataK } from '~/apis/binance-ws'
import { getContinuousKLines } from '~/apis/binace'
import type { ContinuousKLinesItem } from '~/apis/binace'

export function useKLineChart(options: { symbol: Ref<string>; interval: Ref<string> }) {
  const { symbol, interval } = toRefs(options)
  const allOriginData = ref<Array<WSContinuousKLineDataK>>([])

  const {
    data: continuousKLinesData,
    status: originDataStatus,
    execute,
  } = useAsyncData(() => getContinuousKLines(symbol.value, interval.value), {
    immediate: false,
    default: () => [] satisfies Array<WSContinuousKLineDataK>,
    watch: [symbol, interval],
  })
  const originData = computed(() => {
    return continuousKLinesData.value.map(formatContinuousKLinesToWSData)
  })
  const initChartData = computed(() => {
    return originData.value.map(formatKToChartData)
  })

  watch(
    originDataStatus,
    (status) => {
      if (status === 'success' && originData.value.length > 0) {
        allOriginData.value = originData.value
      }
    },
    {
      immediate: true,
    },
  )

  onBeforeMount(() => {
    execute()
  })

  return {
    allOriginData,
    originData,
    originDataStatus,
    initChartData,
    getInitChartData: execute,
  }
}

export const formatKToChartData = (item: WSContinuousKLineDataK) => {
  return {
    time: dayjs(item.T).unix() as UTCTimestamp,
    open: Number(item.o),
    high: Number(item.h),
    low: Number(item.l),
    close: Number(item.c),
  } satisfies LWChartDataItem<'Candlestick'>
}
export const formatContinuousKLinesToWSData = (item: ContinuousKLinesItem) => {
  return {
    t: item[0],
    T: item[6],
    i: '', // not used
    f: 0, // not used
    L: 0, // not used
    o: item[1],
    c: item[4],
    h: item[2],
    l: item[3],
    v: item[5],
    n: item[8],
    x: false, // not used
    q: item[7],
    V: item[9],
    Q: item[10],
  }
}

Technical details



Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions