UNPKG

@hso/d365-cli

Version:

Dynamics 365 Command Line Interface for TypeScript projects for Dataverse

33 lines (30 loc) 1.24 kB
export const jsonHttpHeaders = { 'OData-MaxVersion': '4.0', 'OData-Version': '4.0', 'Accept': 'application/json', 'Content-Type': 'application/json; charset=utf-8' }; export class Http { public static request<D>(method: Method, url: string, data?: D, httpHeaders: HttpHeaders = {}): Promise<XMLHttpRequest> { return new Promise((resolve, reject): void => { const request = new XMLHttpRequest(), requestData = data && JSON.stringify(data), headerKeys = Object.keys(httpHeaders); request.open(method, encodeURI(url), true); for (const key of headerKeys) { request.setRequestHeader(key, httpHeaders[key]); } request.onreadystatechange = function (): void { if (this.readyState === 4) { request.onreadystatechange = null; if ([200, 201, 204, 304].includes(this.status)) { resolve(request); } else { reject(new Error(request.response)); } } }; request.send(requestData); }); } }