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; } } }