fix(types): use auto-generated schema for NodeInfo (About pages; store instance init)
This commit is contained in:
		
							parent
							
								
									2960b939d9
								
							
						
					
					
						commit
						910a6ab157
					
				| 
						 | 
				
			
			@ -5,9 +5,10 @@ import { get } from 'lodash-es'
 | 
			
		|||
import { humanSize } from '~/utils/filters'
 | 
			
		||||
import { computed } from 'vue'
 | 
			
		||||
 | 
			
		||||
import type { components } from '~/generated/types.ts'
 | 
			
		||||
 | 
			
		||||
import SignupForm from '~/components/auth/SignupForm.vue'
 | 
			
		||||
import LogoText from '~/components/LogoText.vue'
 | 
			
		||||
import type { NodeInfo } from '~/store/instance'
 | 
			
		||||
import useMarkdown from '~/composables/useMarkdown'
 | 
			
		||||
 | 
			
		||||
import Link from '~/components/ui/Link.vue'
 | 
			
		||||
| 
						 | 
				
			
			@ -36,15 +37,15 @@ const stats = computed(() => {
 | 
			
		|||
    return null
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  const info = nodeinfo.value ?? {} as NodeInfo
 | 
			
		||||
  const info = nodeinfo.value ?? {} as components['schemas']['NodeInfo20']
 | 
			
		||||
 | 
			
		||||
  const data = {
 | 
			
		||||
    users: get(info, 'usage.users.activeMonth', null),
 | 
			
		||||
    hours: get(info, 'metadata.content.local.hoursOfContent', null),
 | 
			
		||||
    artists: get(info, 'metadata.content.local.artists.total', null),
 | 
			
		||||
    albums: get(info, 'metadata.content.local.albums.total', null),
 | 
			
		||||
    tracks: get(info, 'metadata.content.local.tracks.total', null),
 | 
			
		||||
    listenings: get(info, 'metadata.usage.listenings.total', null)
 | 
			
		||||
    users: info.usage.users.activeMonth || null,
 | 
			
		||||
    hours: info.metadata.library.music.hours || null,
 | 
			
		||||
    artists: info.metadata.library.artists.total || null,
 | 
			
		||||
    albums: info.metadata.library.albums.total || null,
 | 
			
		||||
    tracks: info.metadata.library.tracks.total || null,
 | 
			
		||||
    listenings: info.metadata.usage?.listenings.total || null
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return { users, hours, data }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,9 @@ import { useStore } from '~/store'
 | 
			
		|||
import { get } from 'lodash-es'
 | 
			
		||||
import { computed } from 'vue'
 | 
			
		||||
 | 
			
		||||
import type { components } from '~/generated/types.ts'
 | 
			
		||||
 | 
			
		||||
import useMarkdown from '~/composables/useMarkdown'
 | 
			
		||||
import type { NodeInfo } from '~/store/instance'
 | 
			
		||||
import { useI18n } from 'vue-i18n'
 | 
			
		||||
 | 
			
		||||
const store = useStore()
 | 
			
		||||
| 
						 | 
				
			
			@ -40,7 +41,7 @@ const federationEnabled = computed(() => {
 | 
			
		|||
const onDesktop = computed(() => window.innerWidth > 800)
 | 
			
		||||
 | 
			
		||||
const stats = computed(() => {
 | 
			
		||||
  const info = nodeinfo.value ?? {} as NodeInfo
 | 
			
		||||
  const info = nodeinfo.value ?? {} as components['schemas']['NodeInfo20']
 | 
			
		||||
 | 
			
		||||
  const data = {
 | 
			
		||||
    users: get(info, 'usage.users.activeMonth', null),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
import type { NodeInfo } from '~/store/instance'
 | 
			
		||||
import type { schemas } from '~/generated/types'
 | 
			
		||||
import type { InitModule } from '~/types'
 | 
			
		||||
 | 
			
		||||
import { whenever } from '@vueuse/core'
 | 
			
		||||
| 
						 | 
				
			
			@ -15,7 +16,7 @@ export const install: InitModule = async ({ store, router }) => {
 | 
			
		|||
  const fetchNodeInfo = async () => {
 | 
			
		||||
    try {
 | 
			
		||||
      const [{ data }] = await Promise.all([
 | 
			
		||||
        axios.get<NodeInfo>('instance/nodeinfo/2.1/'),
 | 
			
		||||
        axios.get<schemas['NodeInfo20']>('instance/nodeinfo/2.1/'),
 | 
			
		||||
        store.dispatch('instance/fetchSettings')
 | 
			
		||||
      ])
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -66,7 +66,7 @@ export type Usage = components['schemas']['Usage']
 | 
			
		|||
export type LibraryScan = components['schemas']['LibraryScan']
 | 
			
		||||
export type LibraryFollow = components["schemas"]["LibraryFollow"]
 | 
			
		||||
export type Cover = components["schemas"]["CoverField"]
 | 
			
		||||
export type RateLimitStatus = components["schemas"]["RateLimit"]
 | 
			
		||||
export type RateLimitStatus = components["schemas"]["RateLimit"]['scopes'][number]
 | 
			
		||||
export type PaginatedAlbumList = components["schemas"]["PaginatedAlbumList"]
 | 
			
		||||
export type SimpleArtist = components["schemas"]["SimpleArtist"]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue