Compare commits

...

12 Commits

Author SHA1 Message Date
a8291febec 1.1.12 2018-07-20 01:06:25 +02:00
c0704eb2d8 fix(core): update 2018-07-20 01:06:25 +02:00
9eeb9c16b6 1.1.11 2018-07-20 00:50:36 +02:00
52bf520eb9 fix(small fix): update 2018-07-20 00:50:36 +02:00
c9f6198114 1.1.10 2018-07-20 00:35:24 +02:00
0a17591eae fix(formData): refactor formData 2018-07-20 00:35:23 +02:00
3417f09cdb 1.1.9 2018-07-20 00:04:37 +02:00
20dc3c9230 fix(now including right headers): update 2018-07-20 00:04:37 +02:00
6f865a356f 1.1.8 2018-07-20 00:01:41 +02:00
71a6ffef96 fix(core): update 2018-07-20 00:01:41 +02:00
189916e62b 1.1.7 2018-07-19 23:32:44 +02:00
33e36b5d44 fix(formData): return response 2018-07-19 23:32:43 +02:00
4 changed files with 20 additions and 30 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartrequest",
"version": "1.1.6",
"version": "1.1.12",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartrequest",
"version": "1.1.6",
"version": "1.1.12",
"private": false,
"description": "dropin replacement for request",
"main": "dist/index.js",

View File

@ -11,35 +11,18 @@ export interface IFormField {
payload: string;
}
/**
* retrieve the FormData headers in reliable way
* @param formDataArg
*/
const getFormDataHeaders = (formDataArg: plugins.formData) => {
const done = plugins.smartpromise.defer();
formDataArg.getLength((err, length) => {
if (err) {
done.reject(err);
}
const headers = Object.assign(
{ "Content-Length": length },
formDataArg.getHeaders()
);
done.resolve(headers);
});
return done.promise;
};
const appendFormField = async (
formDataArg: plugins.formData,
formDataField: IFormField
) => {
if (formDataField.type === "filePath") {
formDataArg.append("type", "image");
let fileData = plugins.fs.createReadStream(
let fileData = plugins.fs.readFileSync(
plugins.path.join(process.cwd(), formDataField.payload)
);
formDataArg.append("media", fileData, "upload.pdf");
formDataArg.append("file", fileData, {
filename: 'upload.pdf',
contentType: 'application/pdf'
});
}
};
@ -52,11 +35,16 @@ export const postFormData = async (
for (const formField of payloadArg) {
await appendFormField(form, formField);
}
const pipeLog: any = async (...args) => {
console.log(args);
};
const requestOptions = Object.assign({}, optionsArg, { requestBody: form });
const requestOptions = Object.assign({}, optionsArg, {
method: 'POST',
headers: {
...(optionsArg.headers),
...form.getHeaders()
},
requestBody: form
});
// lets fire the actual request for sending the formdata
request(urlArg, requestOptions);
const response = await request(urlArg, requestOptions);
return response;
};

View File

@ -98,7 +98,9 @@ export let request = async (
request.write(optionsArg.requestBody);
request.end();
} else if (optionsArg.requestBody instanceof plugins.formData) {
optionsArg.requestBody.pipe(request);
optionsArg.requestBody.pipe(request).on('finish', event => {
request.end();
});
}
} else {
request.end();