Files
Romhack-Plaza---WordPress-P…/ts/submissions/class-uploader-data.ts

64 lines
1.6 KiB
TypeScript
Raw Normal View History

export class Uploader_Data {
[x: string]: any // @ts-ignore
;
// @ts-ignore
private data: object;
constructor() {
this.data = {};
return new Proxy( this, {
get: ( target, p, receiver ) => {
if (p in target) {
return Reflect.get(target, p, receiver);
}
return target.get( p as string );
},
set: ( target, p, v , receiver) => {
if (p in target) {
return Reflect.set(target, p, v, receiver);
}
target.set( p as string, v );
return true
}
});
}
// @ts-ignore
add_field( field_name: string, field_value: any, readonly: boolean ){
// @ts-ignore
if( !this.data[field_name] )
// @ts-ignore
this.data[field_name] = { "data": field_value, can_write: ( readonly ? 1 : -1 ) };
}
// @ts-ignore
get( field_name : string ): any {
// @ts-ignore
if( this.data[field_name] )
// @ts-ignore
return this.data[field_name]['data'];
return undefined;
}
// @ts-ignore
set( field_name: string, field_value: any ){
// @ts-ignore
if( this.data[field_name] && this.data[field_name]['can_write'] != 0 ){
// @ts-ignore
this.data[field_name]['data'] = field_value;
// @ts-ignore
if( this.data[field_name]['can_write'] == 1 )
// @ts-ignore
this.data[field_name]['can_write'] = 0;
}
}
}