import { TypeList } from "docs-ui" # DevServerUtils ## Functions - [registerDevServerResource](page.mdx#registerdevserverresource) - [registerResourceTypeHandler](page.mdx#registerresourcetypehandler) ## Interfaces - [BaseResourceData](../DevServerUtils/interfaces/utils.DevServerUtils.BaseResourceData/page.mdx) - [ResourceTypeHandler](../DevServerUtils/interfaces/utils.DevServerUtils.ResourceTypeHandler/page.mdx) ## Type Aliases - [ResourceEntry](../DevServerUtils/types/utils.DevServerUtils.ResourceEntry/page.mdx) - [ResourceMap](../DevServerUtils/types/utils.DevServerUtils.ResourceMap/page.mdx) - [ResourcePath](../DevServerUtils/types/utils.DevServerUtils.ResourcePath/page.mdx) - [ResourceType](../DevServerUtils/types/utils.DevServerUtils.ResourceType/page.mdx) ## Variables - [globalDevServerRegistry](page.mdx#globaldevserverregistry) - [inverseDevServerRegistry](page.mdx#inversedevserverregistry) ## Functions ### registerDevServerResource `**registerDevServerResource**(data): `void`` Register a resource in the dev server for hot module reloading This function uses a strategy pattern where each resource type has its own handler. The handler is responsible for: - Validating the registration data - Resolving the source path - Creating the registry entry - Generating the inverse registry key #### Example ```typescript // Register a workflow registerDevServerResource({ type: "workflow", id: "create-product", sourcePath: "/src/workflows/create-product.ts" }) // Register a step registerDevServerResource({ type: "step", id: "validate-product", workflowId: "create-product" }) ``` #### Parameters #### Throws Error if validation fails or handler is not found `**registerDevServerResource**(data): `void`` Register a resource in the dev server for hot module reloading This function uses a strategy pattern where each resource type has its own handler. The handler is responsible for: - Validating the registration data - Resolving the source path - Creating the registry entry - Generating the inverse registry key #### Example ```typescript // Register a workflow registerDevServerResource({ type: "workflow", id: "create-product", sourcePath: "/src/workflows/create-product.ts" }) // Register a step registerDevServerResource({ type: "step", id: "validate-product", workflowId: "create-product" }) ``` #### Type Parameters #### Parameters #### Throws Error if validation fails or handler is not found ### registerResourceTypeHandler Register a resource type handler #### Example ```typescript class RouteHandler implements ResourceTypeHandler { readonly type = "route" validate(data: RouteData): void { ... } resolveSourcePath(data: RouteData): string { ... } createEntry(data: RouteData): ResourceEntry { ... } getInverseKey(data: RouteData): string { ... } } registerResourceTypeHandler(new RouteHandler()) ``` #### Parameters ___ ## Variables ### globalDevServerRegistry `Const` **globalDevServerRegistry**: Map<string, [ResourceMap](../DevServerUtils/types/utils.DevServerUtils.ResourceMap/page.mdx)> Maps source file paths to their registered resources Structure: sourcePath -> Map<resourceType, ResourceEntry[]> ### inverseDevServerRegistry `Const` **inverseDevServerRegistry**: Map<string, string[]> Inverse registry for looking up source paths by resource Structure: "type:id" -> sourcePath[] Used to find which files contain a specific resource