diff --git a/__tests__/basics.test.ts b/__tests__/basics.test.ts index f70d653..a260fc4 100644 --- a/__tests__/basics.test.ts +++ b/__tests__/basics.test.ts @@ -1,4 +1,5 @@ import * as httpm from '../_out'; +import * as ifm from '../_out/interfaces' import * as path from 'path'; import * as fs from 'fs'; @@ -201,21 +202,21 @@ describe('basics', () => { }); it('gets a json object', async() => { - let jsonObj: httpm.ITypedResponse = await _http.getJson('https://httpbin.org/get'); + let jsonObj: ifm.ITypedResponse = await _http.getJson('https://httpbin.org/get'); expect(jsonObj.statusCode).toBe(200); expect(jsonObj.result).toBeDefined(); expect(jsonObj.result.url).toBe('https://httpbin.org/get'); }); it('getting a non existent json object returns null', async() => { - let jsonObj: httpm.ITypedResponse = await _http.getJson('https://httpbin.org/status/404'); + let jsonObj: ifm.ITypedResponse = await _http.getJson('https://httpbin.org/status/404'); expect(jsonObj.statusCode).toBe(404); expect(jsonObj.result).toBeNull(); }); it('posts a json object', async() => { let res: any = { name: 'foo' }; - let restRes: httpm.ITypedResponse = await _http.postJson('https://httpbin.org/post', res); + let restRes: ifm.ITypedResponse = await _http.postJson('https://httpbin.org/post', res); expect(restRes.statusCode).toBe(200); expect(restRes.result).toBeDefined(); expect(restRes.result.url).toBe('https://httpbin.org/post'); @@ -224,7 +225,7 @@ describe('basics', () => { it('puts a json object', async() => { let res: any = { name: 'foo' }; - let restRes: httpm.ITypedResponse = await _http.putJson('https://httpbin.org/put', res); + let restRes: ifm.ITypedResponse = await _http.putJson('https://httpbin.org/put', res); expect(restRes.statusCode).toBe(200); expect(restRes.result).toBeDefined(); expect(restRes.result.url).toBe('https://httpbin.org/put'); @@ -233,7 +234,7 @@ describe('basics', () => { it('patch a json object', async() => { let res: any = { name: 'foo' }; - let restRes: httpm.ITypedResponse = await _http.patchJson('https://httpbin.org/patch', res); + let restRes: ifm.ITypedResponse = await _http.patchJson('https://httpbin.org/patch', res); expect(restRes.statusCode).toBe(200); expect(restRes.result).toBeDefined(); expect(restRes.result.url).toBe('https://httpbin.org/patch'); diff --git a/index.ts b/index.ts index fdf8408..8507e02 100644 --- a/index.ts +++ b/index.ts @@ -71,12 +71,6 @@ export class HttpClientResponse implements ifm.IHttpClientResponse { } } -export interface ITypedResponse { - statusCode: number, - result: T | null, - headers: Object -} - export function isHttps(requestUrl: string) { let parsedUrl: url.Url = url.parse(requestUrl); return parsedUrl.protocol === 'https:'; @@ -172,24 +166,24 @@ export class HttpClient { * Gets a typed object from an endpoint * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise */ - public async getJson(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise> { + public async getJson(requestUrl: string, additionalHeaders?: ifm.IHeaders): Promise> { let res: ifm.IHttpClientResponse = await this.get(requestUrl, additionalHeaders); return this._processResponse(res, this.requestOptions); } - public async postJson(requestUrl: string, obj:T, additionalHeaders?: ifm.IHeaders): Promise> { + public async postJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise> { let data: string = JSON.stringify(obj, null, 2); let res: ifm.IHttpClientResponse = await this.post(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); } - public async putJson(requestUrl: string, obj:T, additionalHeaders?: ifm.IHeaders): Promise> { + public async putJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise> { let data: string = JSON.stringify(obj, null, 2); let res: ifm.IHttpClientResponse = await this.put(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); } - public async patchJson(requestUrl: string, obj:T, additionalHeaders?: ifm.IHeaders): Promise> { + public async patchJson(requestUrl: string, obj: any, additionalHeaders?: ifm.IHeaders): Promise> { let data: string = JSON.stringify(obj, null, 2); let res: ifm.IHttpClientResponse = await this.patch(requestUrl, data, additionalHeaders); return this._processResponse(res, this.requestOptions); @@ -513,11 +507,11 @@ export class HttpClient { return value; } - private async _processResponse(res: ifm.IHttpClientResponse, options: ifm.IRequestOptions): Promise> { - return new Promise>(async (resolve, reject) => { + private async _processResponse(res: ifm.IHttpClientResponse, options: ifm.IRequestOptions): Promise> { + return new Promise>(async (resolve, reject) => { const statusCode: number = res.message.statusCode; - const response: ITypedResponse = { + const response: ifm.ITypedResponse = { statusCode: statusCode, result: null, headers: {} diff --git a/interfaces.ts b/interfaces.ts index 9369d11..733d76b 100644 --- a/interfaces.ts +++ b/interfaces.ts @@ -47,3 +47,9 @@ export interface IRequestOptions { allowRetries?: boolean; maxRetries?: number; } + +export interface ITypedResponse { + statusCode: number, + result: T | null, + headers: Object +} diff --git a/package-lock.json b/package-lock.json index cfc5cea..755e0b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@actions/http-client", - "version": "1.0.3", + "version": "1.0.4", "lockfileVersion": 1, "requires": true, "dependencies": {