mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-04-13 08:57:26 +08:00
Add type definitions of express-fileupload (#18641)
* Add type definitions of express-fileupload * Fixed all lint errors
This commit is contained in:
committed by
Mohamed Hegazy
parent
07ba976efb
commit
03e66c690a
29
types/express-fileupload/express-fileupload-tests.ts
Normal file
29
types/express-fileupload/express-fileupload-tests.ts
Normal 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
36
types/express-fileupload/index.d.ts
vendored
Normal 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;
|
||||
22
types/express-fileupload/tsconfig.json
Normal file
22
types/express-fileupload/tsconfig.json
Normal 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"
|
||||
]
|
||||
}
|
||||
1
types/express-fileupload/tslint.json
Normal file
1
types/express-fileupload/tslint.json
Normal file
@@ -0,0 +1 @@
|
||||
{ "extends": "dtslint/dt.json" }
|
||||
Reference in New Issue
Block a user