diff --git a/npmextra.json b/npmextra.json index d55070a..232c526 100644 --- a/npmextra.json +++ b/npmextra.json @@ -3,9 +3,7 @@ "coverageTreshold": 50 }, "npmci": { - "npmGlobalTools": [ - "npmts" - ], + "npmGlobalTools": [], "npmAccessLevel": "public" } } \ No newline at end of file diff --git a/package.json b/package.json index 875e2ea..384e6de 100644 --- a/package.json +++ b/package.json @@ -34,4 +34,4 @@ "@pushrocks/tapbundle": "^3.0.5", "@types/node": "^10.5.8" } -} +} \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 2140c2f..2ab3393 100644 --- a/test/test.ts +++ b/test/test.ts @@ -23,17 +23,18 @@ tap.test('should post a JSON document over http', async () => { }); tap.skip.test('should deal with unix socks', async () => { - const socketResponse = await smartrequest.request('http://unix:/var/run/docker.sock:/containers/json', { - headers: { - "Content-Type": "application/json", - "Host": "docker.sock" + const socketResponse = await smartrequest.request( + 'http://unix:/var/run/docker.sock:/containers/json', + { + headers: { + 'Content-Type': 'application/json', + Host: 'docker.sock' + } } - }); + ); console.log(socketResponse.body); }); -tap.skip.test('should correctly upload a file using formData', async () => { - -}) +tap.skip.test('should correctly upload a file using formData', async () => {}); tap.start(); diff --git a/ts/smartrequest.formdata.ts b/ts/smartrequest.formdata.ts index bed2eee..c0f44ee 100644 --- a/ts/smartrequest.formdata.ts +++ b/ts/smartrequest.formdata.ts @@ -1,25 +1,20 @@ -import * as plugins from "./smartrequest.plugins"; -import * as interfaces from "./smartrequest.interfaces"; -import { request } from "./smartrequest.request"; +import * as plugins from './smartrequest.plugins'; +import * as interfaces from './smartrequest.interfaces'; +import { request } from './smartrequest.request'; /** * the interfae for FormFieldData */ export interface IFormField { name: string; - type: "string" | "filePath" | "Buffer"; + type: 'string' | 'filePath' | 'Buffer'; payload: string; } -const appendFormField = async ( - formDataArg: plugins.formData, - formDataField: IFormField -) => { - if (formDataField.type === "filePath") { - let fileData = plugins.fs.readFileSync( - plugins.path.join(process.cwd(), formDataField.payload) - ); - formDataArg.append("file", fileData, { +const appendFormField = async (formDataArg: plugins.formData, formDataField: IFormField) => { + if (formDataField.type === 'filePath') { + let fileData = plugins.fs.readFileSync(plugins.path.join(process.cwd(), formDataField.payload)); + formDataArg.append('file', fileData, { filename: 'upload.pdf', contentType: 'application/pdf' }); @@ -38,7 +33,7 @@ export const postFormData = async ( const requestOptions = Object.assign({}, optionsArg, { method: 'POST', headers: { - ...(optionsArg.headers), + ...optionsArg.headers, ...form.getHeaders() }, requestBody: form diff --git a/ts/smartrequest.plugins.ts b/ts/smartrequest.plugins.ts index dc7fb57..a2762eb 100644 --- a/ts/smartrequest.plugins.ts +++ b/ts/smartrequest.plugins.ts @@ -7,4 +7,4 @@ import * as url from 'url'; import * as smartpromise from '@pushrocks/smartpromise'; -export {formData, http, https, fs, path, url, smartpromise }; +export { formData, http, https, fs, path, url, smartpromise }; diff --git a/ts/smartrequest.request.ts b/ts/smartrequest.request.ts index 2d4b140..20cbd17 100644 --- a/ts/smartrequest.request.ts +++ b/ts/smartrequest.request.ts @@ -1,8 +1,8 @@ -import * as https from "https"; -import * as plugins from "./smartrequest.plugins"; -import * as interfaces from "./smartrequest.interfaces"; +import * as https from 'https'; +import * as plugins from './smartrequest.plugins'; +import * as interfaces from './smartrequest.interfaces'; -import { IncomingMessage } from "http"; +import { IncomingMessage } from 'http'; export interface IExtendedIncomingMessage extends IncomingMessage { body: any; @@ -13,12 +13,12 @@ const buildUtf8Response = ( ): Promise => { let done = plugins.smartpromise.defer(); // Continuously update stream with data - let body = ""; - incomingMessageArg.on("data", function(chunkArg) { + let body = ''; + incomingMessageArg.on('data', function(chunkArg) { body += chunkArg; }); - incomingMessageArg.on("end", function() { + incomingMessageArg.on('end', function() { try { (incomingMessageArg as IExtendedIncomingMessage).body = JSON.parse(body); } catch (err) { @@ -47,8 +47,8 @@ const parseSocketPathAndRoute = (stringToParseArg: string) => { return { socketPath: result[1], path: result[2] - } -} + }; +}; export let request = async ( domainArg: string, @@ -67,31 +67,30 @@ export let request = async ( optionsArg.path = parsedUrl.path; // determine if unixsock - if(testForUnixSock(domainArg)) { - const detailedUnixPath = parseSocketPathAndRoute(optionsArg.path) + if (testForUnixSock(domainArg)) { + const detailedUnixPath = parseSocketPathAndRoute(optionsArg.path); optionsArg.socketPath = detailedUnixPath.socketPath; optionsArg.path = detailedUnixPath.path; } - + // lets determine the request module to use const requestModule = (() => { - if (parsedUrl.protocol === "https:") { + if (parsedUrl.protocol === 'https:') { return plugins.https; - } else if (parsedUrl.protocol === "http:") { + } else if (parsedUrl.protocol === 'http:') { return plugins.http; } else { throw new Error(`unsupported protocol: ${parsedUrl.protocol}`); } })() as typeof plugins.https; - // lets perform the actual request let request = requestModule.request(optionsArg); // lets write the requestBody if (optionsArg.requestBody) { if (!(optionsArg.requestBody instanceof plugins.formData)) { - if(typeof optionsArg.requestBody !== "string") { + if (typeof optionsArg.requestBody !== 'string') { optionsArg.requestBody = JSON.stringify(optionsArg.requestBody); } request.write(optionsArg.requestBody); @@ -106,16 +105,16 @@ export let request = async ( } // lets handle an error - request.on("error", e => { + request.on('error', e => { console.error(e); }); // lets handle the response - request.on("response", async response => { + request.on('response', async response => { if (streamArg) { done.resolve(response); } else { - const builtResponse = await buildUtf8Response(response) + const builtResponse = await buildUtf8Response(response); done.resolve(builtResponse); } });