12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- import { App } from "vue"
- import { pipe } from "fp-ts/function"
- import * as A from "fp-ts/Array"
- import { RouteLocationNormalized, Router } from "vue-router"
- export type HoppModule = {
- /**
- * Define this function to get access to Vue App instance and augment
- * it (installing components, directives and plugins). Also useful for
- * early generic initializations. This function should be called first
- */
- onVueAppInit?: (app: App) => void
- /**
- * Called when the router is done initializing.
- * Used if a module requires access to the router instance
- */
- onRouterInit?: (app: App, router: Router) => void
- /**
- * Called when the root component (App.vue) is running setup.
- * This function is generally called last in the lifecycle.
- * This function executes with a component setup context, so you can
- * run composables within this and it should just be scoped to the
- * root component
- */
- onRootSetup?: () => void
- /**
- * Called by the router to tell all the modules before a route navigation
- * is made.
- */
- onBeforeRouteChange?: (
- to: RouteLocationNormalized,
- from: RouteLocationNormalized,
- router: Router
- ) => void
- /**
- * Called by the router to tell all the modules that a route navigation has completed
- */
- onAfterRouteChange?: (to: RouteLocationNormalized, router: Router) => void
- }
- /**
- * All the modules Hoppscotch loads into the app
- */
- export const HOPP_MODULES = pipe(
- import.meta.glob("@modules/*.ts", { eager: true }),
- Object.values,
- A.map(({ default: defaultVal }) => defaultVal as HoppModule)
- )
|