api.client.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  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. export interface IApiInstance {
  9. user: UserModule
  10. gallery: GalleryModule
  11. ota: OTAModule
  12. branch: BranchModule
  13. timetable: TimetableModule
  14. blog: BlogModule
  15. news: NewsModule
  16. }
  17. export interface Provide {
  18. $api: IApiInstance
  19. }
  20. declare module '#app' {
  21. interface NuxtApp {
  22. api: IApiInstance
  23. }
  24. }
  25. export default defineNuxtPlugin(() => {
  26. const modules: IApiInstance = {
  27. user: new UserModule('UserModule'),
  28. gallery: new GalleryModule('GalleryModule'),
  29. ota: new OTAModule('OTAModule'),
  30. branch: new BranchModule('BranchModule'),
  31. timetable: new TimetableModule('TimetableModule'),
  32. blog: new BlogModule('BlogModule'),
  33. news: new NewsModule('NewsModule'),
  34. }
  35. return {
  36. provide: {
  37. api: modules,
  38. },
  39. }
  40. })