@dooboostore/dom-render
Version:
html view template engine
33 lines (26 loc) • 841 B
text/typescript
export class Shield {
[name: string]: any
}
export class DomRenderFinalProxy<T extends object> implements ProxyHandler<T> {
set(target: T, p: string | symbol, value: any, receiver: any): boolean {
(target as any)[p] = value;
return true;
}
get(target: T, p: string | symbol, receiver: any): any {
return (target as any)[p];
}
public static final<T = any> (obj: T): T {
(obj as any)._DomRender_isFinal = true;
return obj;
}
public static isFinal<T = any> (obj: T) {
return '_DomRender_isFinal' in (obj as any);
}
public static unFinal<T = any> (obj: T): T {
delete (obj as any)._DomRender_isFinal;
return obj;
}
has(target: T, p: string | symbol): boolean {
return p === '_DomRender_isFinal' || p in target;
}
}