view data fixes
This commit is contained in:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user