MCPcopy Create free account
hub / github.com/RtlZeroMemory/Rezi / createReloadAdapter

Function createReloadAdapter

packages/node/src/dev/hotStateReload.ts:261–293  ·  view source on GitHub ↗
(opts: HotStateReloadOptions<S>)

Source from the content-addressed store, hash-verified

259}
260
261function createReloadAdapter<S>(opts: HotStateReloadOptions<S>): Readonly<{
262 entryModule: string | URL;
263 targetLabel: "view" | "routes";
264 applyReload: (moduleNs: unknown) => void;
265}> {
266 if (isViewReloadOptions(opts)) {
267 const resolveView = opts.resolveView ?? defaultResolveView<S>;
268 return Object.freeze({
269 entryModule: opts.viewModule,
270 targetLabel: "view" as const,
271 applyReload: (moduleNs: unknown) => {
272 const nextView = resolveView(moduleNs);
273 opts.app.replaceView(nextView);
274 opts.onReload?.(nextView);
275 },
276 });
277 }
278
279 if (isRoutesReloadOptions(opts)) {
280 const resolveRoutes = opts.resolveRoutes ?? defaultResolveRoutes<S>;
281 return Object.freeze({
282 entryModule: opts.routesModule,
283 targetLabel: "routes" as const,
284 applyReload: (moduleNs: unknown) => {
285 const nextRoutes = resolveRoutes(moduleNs);
286 opts.app.replaceRoutes(nextRoutes);
287 opts.onReload?.(nextRoutes);
288 },
289 });
290 }
291
292 throw new Error("HSR options must provide either `viewModule` or `routesModule`");
293}
294
295export function createHotStateReload<S>(opts: HotStateReloadOptions<S>): HotStateReloadController {
296 const reloadAdapter = createReloadAdapter(opts);

Callers 1

createHotStateReloadFunction · 0.85

Calls 4

isViewReloadOptionsFunction · 0.85
isRoutesReloadOptionsFunction · 0.85
replaceViewMethod · 0.80
replaceRoutesMethod · 0.80

Tested by

no test coverage detected