view data fixes

This commit is contained in:
2026-01-24 00:52:27 +01:00
parent 62e8b768ce
commit ae59df61eb
321 changed files with 1157 additions and 2234 deletions

View File

@@ -12,17 +12,22 @@
* - Must be named *ViewDataBuilder
* - Must have 'use client' directive
* - Must implement static build() method
* - Must use 'satisfies' for static type enforcement
*/
import { JsonValue } from '../types/primitives';
import { ViewData } from '../view-data/ViewData';
export interface ViewDataBuilder<TDTO extends JsonValue, TViewData extends ViewData> {
/**
* Transform DTO into ViewData
*
* @param dto - API Transport DTO (JSON-serializable)
* @returns ViewData for template
*/
build(dto: TDTO): TViewData;
/**
* ViewData Builder Contract (Static)
*
* TDTO is constrained to object to ensure it is a serializable API DTO.
*
* Usage:
* export class MyViewDataBuilder {
* static build(apiDto: MyDTO): MyViewData { ... }
* }
* MyViewDataBuilder satisfies ViewDataBuilder<MyDTO, MyViewData>;
*/
export interface ViewDataBuilder<TDTO extends object, TViewData extends ViewData> {
build(apiDto: TDTO): TViewData;
}