Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 18x 18x 2x 18x 116x 1x | import type { FieldRenderer } from "./renderField";
/** Custom renderer map keyed by schema field type. */
export type RendererMap = Record<string, FieldRenderer>;
export interface RendererRegistry {
/** Return a renderer for the given field type, if one was registered. */
get(type: string): FieldRenderer | undefined;
/** Register or replace a renderer for a custom field type. */
register(type: string, renderer: FieldRenderer): void;
}
/** Create the small renderer lookup used by built-in and custom fields. */
export function createRendererRegistry(renderers: RendererMap = {}): RendererRegistry {
const registry = new Map<string, FieldRenderer>();
Object.entries(renderers).forEach(([type, renderer]) => {
registry.set(type, renderer);
});
return {
get(type) {
return registry.get(type);
},
register(type, renderer) {
registry.set(type, renderer);
}
};
}
|