Add type definitions of express-fileupload (#18641)

* Add type definitions of express-fileupload

* Fixed all lint errors
This commit is contained in:
Gintautas Miselis
2017-08-09 18:48:12 +01:00
committed by Mohamed Hegazy
parent 07ba976efb
commit 03e66c690a
4 changed files with 88 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
import * as express from 'express';
import { RequestHandler, Request, Response, NextFunction } from 'express-serve-static-core';
import { fileUpload, UploadedFile } from 'express-fileupload';
const app: express.Express = express();
app.use(fileUpload({debug: true}));
function isUploadedFile(file: UploadedFile | UploadedFile[]): file is UploadedFile {
return typeof file === 'object' && (<UploadedFile> file).name !== undefined;
}
const uploadHandler: RequestHandler = (req: Request, res: Response, next: NextFunction) => {
if (typeof req.files === 'object') {
const fileField = req.files.field;
if (isUploadedFile(fileField)) {
console.log(fileField.name);
}
const fileList = req.files.fileList;
if (Array.isArray(fileList)) {
for (const file of fileList) {
console.log(file.name);
}
}
}
};
app.post('/upload', uploadHandler);

36
types/express-fileupload/index.d.ts vendored Normal file
View File

@@ -0,0 +1,36 @@
// Type definitions for express-fileupload 0.1
// Project: https://github.com/richardgirges/express-fileupload#readme
// Definitions by: Gintautas Miselis <https://github.com/Naktibalda>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
import express = require('express');
declare global {
namespace Express {
interface Request {
files?: FileArray;
}
}
}
export class FileArray {
[index: string]: UploadedFile | UploadedFile[]
}
export interface UploadedFile {
name: string;
encoding: string;
mimetype: string;
data: Buffer;
mv(path: string, callback: (err: any) => {}): void;
}
export interface Options {
debug?: boolean;
safeFileNames?: boolean;
preserveExtension?: boolean | string | number;
[property: string]: any;
}
export function fileUpload(options?: Options): express.RequestHandler;

View File

@@ -0,0 +1,22 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"express-fileupload-tests.ts"
]
}

View File

@@ -0,0 +1 @@
{ "extends": "dtslint/dt.json" }