view data fixes
This commit is contained in:
@@ -12,17 +12,21 @@
|
||||
* - Must be named *ViewModelBuilder
|
||||
* - Must have 'use client' directive
|
||||
* - Must implement static build() method
|
||||
* - Must use 'satisfies' for static type enforcement
|
||||
*/
|
||||
|
||||
import { ViewData } from '../view-data/ViewData';
|
||||
import { ViewModel } from '../view-models/ViewModel';
|
||||
|
||||
/**
|
||||
* ViewModel Builder Contract (Static)
|
||||
*
|
||||
* Usage:
|
||||
* export class MyViewModelBuilder {
|
||||
* static build(viewData: MyViewData): MyViewModel { ... }
|
||||
* }
|
||||
* MyViewModelBuilder satisfies ViewModelBuilder<MyViewData, MyViewModel>;
|
||||
*/
|
||||
export interface ViewModelBuilder<TViewData extends ViewData, TViewModel extends ViewModel> {
|
||||
/**
|
||||
* Transform ViewData into ViewModel
|
||||
*
|
||||
* @param viewData - ViewData (JSON-serializable template-ready data)
|
||||
* @returns ViewModel
|
||||
*/
|
||||
build(viewData: TViewData): TViewModel;
|
||||
}
|
||||
Reference in New Issue
Block a user