80 lines
2.2 KiB
TypeScript
80 lines
2.2 KiB
TypeScript
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,
|
|
}
|