Skip to content

Add TypeScript Type Definitions for formidable-serverless #13

@Dhinesh-Dhinesh

Description

@Dhinesh-Dhinesh

Currently, the formidable-serverless package does not include TypeScript type definitions, and there are no type declarations available via @types/formidable-serverless. This makes it difficult for TypeScript users to use the package without manually creating custom declaration files.

Adding built-in type definitions or publishing a corresponding @types package would significantly enhance the developer experience.

Example: formidable-serverless.d.ts

declare module 'formidable-serverless' {
  import { IncomingMessage } from 'http';

  type Fields = { [key: string]: string | string[] };
  type Files = { [key: string]: any };

  interface Options {
    multiples?: boolean;
    uploadDir?: string;
    keepExtensions?: boolean;
    maxFileSize?: number;
    maxFieldsSize?: number;
    maxFields?: number;
    hash?: boolean | 'sha1' | 'md5';
    fileWriteStreamHandler?: any;
  }

  export class IncomingForm {
    constructor(options?: Options);

    parse(
      req: IncomingMessage,
      callback: (err: Error | null, fields: Fields, files: Files) => void
    ): void;

    on(event: 'field', listener: (name: string, value: string) => void): this;
    on(event: 'file', listener: (name: string, file: any) => void): this;
    on(event: 'end', listener: () => void): this;
    on(event: 'error', listener: (err: Error) => void): this;

    // Add other event listeners if needed
  }

  export default IncomingForm;
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions