diff --git a/types/form-data/form-data-tests.ts b/types/form-data/form-data-tests.ts
index 93457df3be..526fb5bce9 100644
--- a/types/form-data/form-data-tests.ts
+++ b/types/form-data/form-data-tests.ts
@@ -1,5 +1,3 @@
-///
-
import FormData = require('form-data');
import fs = require('fs');
import http = require('http');
@@ -8,43 +6,45 @@ import fetch from 'node-fetch';
import * as ImportUsingES6Syntax from 'form-data';
-() => {
- var form = new FormData();
+(() => {
+ const form = new FormData();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
-}
-() => {
- var form = new FormData();
+ const num: number = form.getLengthSync();
+ const bool: boolean = form.hasKnownLength();
+})();
- http.request({ path: 'http://nodejs.org/images/logo.png' }, function (response) {
+(() => {
+ const form = new FormData();
+
+ http.request({ path: 'http://nodejs.org/images/logo.png' }, response => {
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_logo', response);
});
-}
+})();
-() => {
- var form = new FormData();
+(() => {
+ const form = new FormData();
form.append('my_field', 'my value');
form.append('my_buffer', new Buffer(10));
form.append('my_logo', request('http://nodejs.org/images/logo.png'));
-}
+})();
-() => {
- var form = new FormData();
- form.submit('http://example.org/', function (err, res) {
+(() => {
+ const form = new FormData();
+ form.submit('http://example.org/', (err, res) => {
// res – response object (http.IncomingMessage) //
res.resume();
});
-}
+})();
-
-() => {
- var form = new FormData();
- var request = http.request({
+(() => {
+ const form = new FormData();
+ const request = http.request({
method: 'post',
host: 'example.org',
path: '/upload',
@@ -53,89 +53,86 @@ import * as ImportUsingES6Syntax from 'form-data';
form.pipe(request);
- request.on('response', function (res: any) {
+ request.on('response', res => {
console.log(res.statusCode);
});
-}
+})();
-
-() => {
- var form = new FormData();
- form.submit('example.org/upload', function (err, res) {
+(() => {
+ const form = new FormData();
+ form.submit('example.org/upload', (err, res) => {
+ const r: http.IncomingMessage = res;
console.log(res.statusCode);
});
-}
+})();
-() => {
- var CRLF = '\r\n';
- var form = new FormData();
- var buffer = new Buffer('');
+(() => {
+ const CRLF = '\r\n';
+ const form = new FormData();
+ const buffer = new Buffer('');
- var options = {
+ const options = {
header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF,
knownLength: 1
};
form.append('my_buffer', buffer, options);
- form.submit('http://example.com/', function (err, res) {
+ form.submit('http://example.com/', (err, res) => {
if (err) throw err;
console.log('Done');
});
-}
+})();
-() => {
- var form = new FormData();
+(() => {
+ const form = new FormData();
form.submit({
host: 'example.com',
path: '/probably.php?extra=params',
auth: 'username:password'
- }, function (err, res) {
+ }, (err, res) => {
console.log(res.statusCode);
});
-}
+})();
-() => {
- var form = new FormData();
+(() => {
+ const form = new FormData();
form.submit({
host: 'example.com',
path: '/surelynot.php',
headers: { 'x-test-header': 'test-header-value' }
- }, function (err, res) {
+ }, (err, res) => {
console.log(res.statusCode);
});
-}
+})();
-() => {
- var formData = {
+(() => {
+ const formData = {
my_field: 'my_value',
my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
};
- request.post({ url: 'http://service.com/upload', formData: formData }, function (err, httpResponse, body) {
+ request.post({ url: 'http://service.com/upload', formData }, (err, httpResponse, body) => {
if (err) {
return console.error('upload failed:', err);
}
console.log('Upload successful! Server responded with:', body);
});
-}
+})();
-() => {
- var form = new FormData();
+(() => {
+ const form = new FormData();
form.append('a', 1);
fetch('http://example.com', { method: 'POST', body: form })
- .then(function (res) {
- return res.json();
- }).then(function (json) {
+ .then(res => res.json())
+ .then(json => {
console.log(json);
});
-}
+})();
-() => {
- var form = new FormData();
- form.getLength((err: Error, length: number): void => {
- // nothing
- });
-}
+(() => {
+ const form = new FormData();
+ form.getLength((err: Error, length: number): void => {});
+})();
diff --git a/types/form-data/index.d.ts b/types/form-data/index.d.ts
index e4bd6ca2e1..9b102b287f 100644
--- a/types/form-data/index.d.ts
+++ b/types/form-data/index.d.ts
@@ -1,26 +1,42 @@
-// Type definitions for form-data
-// Project: https://github.com/felixge/node-form-data
-// Definitions by: Carlos Ballesteros Velasco , Leon Yu
+// Type definitions for form-data 2.2
+// Project: https://github.com/form-data/form-data
+// Definitions by: Carlos Ballesteros Velasco
+// Leon Yu
+// BendingBender
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Imported from: https://github.com/soywiz/typescript-node-definitions/form-data.d.ts
///
+import * as stream from 'stream';
+import * as http from 'http';
export = FormData;
-import * as stream from "stream";
-
declare class FormData extends stream.Readable {
- append(key: string, value: any, options?: any): void;
- getHeaders(): FormData.Dictionary;
- submit(params: string | Object, callback: (error: any, response: any) => void): any;
+ append(key: string, value: any, options?: FormData.AppendOptions | string): void;
+ getHeaders(): FormData.Headers;
+ submit(params: string | FormData.SubmitOptions, callback?: (error: Error | undefined, response: http.IncomingMessage) => void): http.ClientRequest;
getBoundary(): string;
- getLength(callback: (err: Error, length: number) => void): void;
+ getLength(callback: (err: Error | undefined, length: number) => void): void;
+ getLengthSync(): number;
+ hasKnownLength(): boolean;
}
declare namespace FormData {
- interface Dictionary {
- [key: string]: T;
+ interface Headers {
+ [key: string]: any;
+ }
+
+ interface AppendOptions {
+ header?: string | Headers;
+ knownLength?: number;
+ filename?: string;
+ filepath?: string;
+ contentType?: string;
+ }
+
+ interface SubmitOptions extends http.RequestOptions {
+ protocol?: 'https:' | 'http:';
}
}
diff --git a/types/form-data/tslint.json b/types/form-data/tslint.json
new file mode 100644
index 0000000000..3db14f85ea
--- /dev/null
+++ b/types/form-data/tslint.json
@@ -0,0 +1 @@
+{ "extends": "dtslint/dt.json" }