Skip to content

Commit c1870e1

Browse files
pazadereyПетр Задерей
andauthored
🤖 Merge PR DefinitelyTyped#74558 fix(formidable): FormidableError became a default export in v3, add missing erorr codes, add emitting 'error' event by @pazaderey
Co-authored-by: Петр Задерей <zaderey@trueconf.ru>
1 parent ba41421 commit c1870e1

5 files changed

Lines changed: 58 additions & 3 deletions

File tree

‎types/formidable/Formidable.d.ts‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ declare class IncomingForm extends EventEmitter {
3535
on(eventName: string, listener: () => void): this;
3636

3737
emit(eventName: "data", data: EmitData): boolean;
38+
emit(eventName: "error", error: any): boolean;
3839

3940
/**
4041
* A method that allows you to extend the Formidable library. By default we include 4 plugins,

‎types/formidable/FormidableError.d.ts‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ declare class FormidableError extends Error {
66

77
declare const errors:
88
& {
9-
FormidableError: typeof FormidableError;
9+
default: typeof FormidableError;
1010
}
1111
& Record<
1212
| "missingPlugin"
@@ -17,13 +17,17 @@ declare const errors:
1717
| "filenameNotString"
1818
| "maxFieldsSizeExceeded"
1919
| "maxFieldsExceeded"
20+
| "maxFilesExceeded"
2021
| "smallerThanMinFileSize"
2122
| "biggerThanMaxFileSize"
2223
| "noEmptyFiles"
2324
| "missingContentType"
2425
| "malformedMultipart"
2526
| "missingMultipartBoundary"
26-
| "unknownTransferEncoding",
27+
| "unknownTransferEncoding"
28+
| "biggerThanTotalMaxFileSize"
29+
| "pluginFailed"
30+
| "cannotCreateDir",
2731
number
2832
>;
2933

‎types/formidable/formidable-tests.ts‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ import formidable = require("formidable");
22
import {
33
defaultOptions,
44
enabledPlugins,
5+
errors as formidableErrors,
56
File,
67
Formidable,
78
formidable as formidableAlias,
9+
FormidableError,
810
IncomingForm,
911
json,
1012
multipart,
@@ -145,6 +147,11 @@ form.on("data", data => {
145147
bytesReceived;
146148
// $ExpectType number
147149
bytesExpected;
150+
151+
form.emit(
152+
"error",
153+
new formidableErrors.default("bytes received exceeded", formidableErrors.biggerThanTotalMaxFileSize, 400),
154+
);
148155
})
149156
.on("field", (name, value) => {
150157
// $ExpectType string
@@ -233,3 +240,44 @@ querystring;
233240
multipart;
234241
// $ExpectType PluginFunction
235242
json;
243+
// $ExpectType number
244+
formidableErrors.missingPlugin;
245+
// $ExpectType number
246+
formidableErrors.pluginFunction;
247+
// $ExpectType number
248+
formidableErrors.aborted;
249+
// $ExpectType number
250+
formidableErrors.noParser;
251+
// $ExpectType number
252+
formidableErrors.uninitializedParser;
253+
// $ExpectType number
254+
formidableErrors.filenameNotString;
255+
// $ExpectType number
256+
formidableErrors.maxFieldsSizeExceeded;
257+
// $ExpectType number
258+
formidableErrors.maxFieldsExceeded;
259+
// $ExpectType number
260+
formidableErrors.maxFilesExceeded;
261+
// $ExpectType number
262+
formidableErrors.smallerThanMinFileSize;
263+
// $ExpectType number
264+
formidableErrors.biggerThanMaxFileSize;
265+
// $ExpectType number
266+
formidableErrors.noEmptyFiles;
267+
// $ExpectType number
268+
formidableErrors.missingContentType;
269+
// $ExpectType number
270+
formidableErrors.malformedMultipart;
271+
// $ExpectType number
272+
formidableErrors.missingMultipartBoundary;
273+
// $ExpectType number
274+
formidableErrors.unknownTransferEncoding;
275+
// $ExpectType number
276+
formidableErrors.biggerThanTotalMaxFileSize;
277+
// $ExpectType number
278+
formidableErrors.pluginFailed;
279+
// $ExpectType number
280+
formidableErrors.cannotCreateDir;
281+
282+
// $ExpectType FormidableError
283+
new formidableErrors.default("invalid type", 0, 400);

‎types/formidable/index.d.ts‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,8 @@ declare namespace formidable {
309309
type EnabledPlugins = {
310310
[P in Plugin]: PluginFunction;
311311
};
312+
313+
type FormidableError = InstanceType<typeof errors.default>;
312314
}
313315

314316
declare const formidable: {

‎types/formidable/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "@types/formidable",
4-
"version": "3.4.9999",
4+
"version": "3.5.9999",
55
"projects": [
66
"https://github.com/node-formidable/formidable"
77
],

0 commit comments

Comments
 (0)