export class Request { static get( url:string ):Promise { let promise = new Promise ( ( resolve, reject ) => { let xhr = new XMLHttpRequest(); console.log( "get", url ); xhr.open( "GET", url, true ); xhr.responseType = "text"; xhr.onload= () => { console.log( xhr.responseURL, xhr.responseText ); if ( xhr.status !== 200 || xhr.responseText.startsWith( "ERROR:" ) ) { reject( xhr.responseText ) } else { resolve( JSON.parse( xhr.responseText ) as O ); } }; xhr.onerror=(e)=> { reject( e ); } xhr.send(); } ); return promise; } static post( url:string, input:I ):Promise { let promise = new Promise ( ( resolve, reject ) => { let xhr = new XMLHttpRequest(); console.log( "post", url, ">>", input); xhr.open( "POST", url, true ); xhr.setRequestHeader( "Content-Type", "application/json"); xhr.responseType = "text"; xhr.onload= () => { console.log( xhr.responseURL, xhr.responseText ); if ( xhr.status !== 200 || xhr.responseText.startsWith( "ERROR:" ) ) { reject( xhr.responseText ) } else { resolve( JSON.parse( xhr.responseText ) as O ); } }; xhr.onerror=(e)=> { reject( e ); } xhr.send( JSON.stringify( input ) ); } ); return promise; } }