import { DISPLAY_VIRTUAL_MODULE, FORM_VIRTUAL_MODULE, LINK_VIRTUAL_MODULE, MENU_ITEM_VIRTUAL_MODULE, ROUTE_VIRTUAL_MODULE, WIDGET_VIRTUAL_MODULE, } from "@medusajs/admin-shared" const RESOLVED_LINK_VIRTUAL_MODULE = `\0${LINK_VIRTUAL_MODULE}` const RESOLVED_FORM_VIRTUAL_MODULE = `\0${FORM_VIRTUAL_MODULE}` const RESOLVED_DISPLAY_VIRTUAL_MODULE = `\0${DISPLAY_VIRTUAL_MODULE}` const RESOLVED_ROUTE_VIRTUAL_MODULE = `\0${ROUTE_VIRTUAL_MODULE}` const RESOLVED_MENU_ITEM_VIRTUAL_MODULE = `\0${MENU_ITEM_VIRTUAL_MODULE}` const RESOLVED_WIDGET_VIRTUAL_MODULE = `\0${WIDGET_VIRTUAL_MODULE}` const VIRTUAL_MODULES = [ LINK_VIRTUAL_MODULE, FORM_VIRTUAL_MODULE, DISPLAY_VIRTUAL_MODULE, ROUTE_VIRTUAL_MODULE, MENU_ITEM_VIRTUAL_MODULE, WIDGET_VIRTUAL_MODULE, ] as const const RESOLVED_VIRTUAL_MODULES = [ RESOLVED_LINK_VIRTUAL_MODULE, RESOLVED_FORM_VIRTUAL_MODULE, RESOLVED_DISPLAY_VIRTUAL_MODULE, RESOLVED_ROUTE_VIRTUAL_MODULE, RESOLVED_MENU_ITEM_VIRTUAL_MODULE, RESOLVED_WIDGET_VIRTUAL_MODULE, ] as const export function resolveVirtualId(id: string) { return `\0${id}` } export function isVirtualModuleId(id: string): id is VirtualModule { return VIRTUAL_MODULES.includes(id as VirtualModule) } export function isResolvedVirtualModuleId( id: string ): id is (typeof RESOLVED_VIRTUAL_MODULES)[number] { return RESOLVED_VIRTUAL_MODULES.includes( id as (typeof RESOLVED_VIRTUAL_MODULES)[number] ) } export type VirtualModule = | typeof LINK_VIRTUAL_MODULE | typeof FORM_VIRTUAL_MODULE | typeof DISPLAY_VIRTUAL_MODULE | typeof ROUTE_VIRTUAL_MODULE | typeof MENU_ITEM_VIRTUAL_MODULE | typeof WIDGET_VIRTUAL_MODULE const resolvedVirtualModuleIds = { link: RESOLVED_LINK_VIRTUAL_MODULE, form: RESOLVED_FORM_VIRTUAL_MODULE, display: RESOLVED_DISPLAY_VIRTUAL_MODULE, route: RESOLVED_ROUTE_VIRTUAL_MODULE, menuItem: RESOLVED_MENU_ITEM_VIRTUAL_MODULE, widget: RESOLVED_WIDGET_VIRTUAL_MODULE, } as const const virtualModuleIds = { link: LINK_VIRTUAL_MODULE, form: FORM_VIRTUAL_MODULE, display: DISPLAY_VIRTUAL_MODULE, route: ROUTE_VIRTUAL_MODULE, menuItem: MENU_ITEM_VIRTUAL_MODULE, widget: WIDGET_VIRTUAL_MODULE, } as const export const vmod = { resolved: resolvedVirtualModuleIds, virtual: virtualModuleIds, }