api.client.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import GalleryModule from '@/repository/modules/gallery'
  2. import OTAModule from '@/repository/modules/ota'
  3. import UserModule from '@/repository/modules/user'
  4. import BranchModule from '@/repository/modules/branch'
  5. import TimetableModule from '@/repository/modules/timetable'
  6. import BlogModule from '@/repository/modules/blog'
  7. import NewsModule from '@/repository/modules/news'
  8. import ContactsModule from '~/repository/modules/contacts'
  9. export interface IApiInstance {
  10. user: UserModule
  11. gallery: GalleryModule
  12. ota: OTAModule
  13. branch: BranchModule
  14. timetable: TimetableModule
  15. blog: BlogModule
  16. news: NewsModule
  17. contacts: ContactsModule
  18. }
  19. export interface Provide {
  20. $api: IApiInstance
  21. }
  22. declare module '#app' {
  23. interface NuxtApp {
  24. api: IApiInstance
  25. }
  26. }
  27. export default defineNuxtPlugin(() => {
  28. const modules: IApiInstance = {
  29. user: new UserModule('UserModule'),
  30. gallery: new GalleryModule('GalleryModule'),
  31. ota: new OTAModule('OTAModule'),
  32. branch: new BranchModule('BranchModule'),
  33. timetable: new TimetableModule('TimetableModule'),
  34. blog: new BlogModule('BlogModule'),
  35. news: new NewsModule('NewsModule'),
  36. contacts: new ContactsModule('ContactsModule'),
  37. }
  38. return {
  39. provide: {
  40. api: modules,
  41. },
  42. }
  43. })