Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 17 additions & 4 deletions types/mailparser/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Type definitions for mailparser 3.0
// Type definitions for mailparser 3.4
// Project: https://github.com/nodemailer/mailparser
// Definitions by: Peter Snider <https://github.com/psnider>
// Andrey Volynkin <https://github.com/Avol-V>
Expand All @@ -7,6 +7,7 @@
/// <reference types="node" />

import StreamModule = require('stream');
import { DecoderStream } from 'iconv-lite';
import Stream = StreamModule.Stream;

/**
Expand Down Expand Up @@ -292,7 +293,7 @@ export interface MessageText {
* and emits data objects for attachments and text contents.
*/
export class MailParser extends StreamModule.Transform {
constructor(options?: StreamModule.TransformOptions);
constructor(options?: MailParserOptions);
on(event: string, callback: (any: any) => void): this;
on(event: 'headers', callback: (headers: Headers) => void): this;
on(event: 'data' | 'readable', callback: (data: AttachmentStream | MessageText) => void): this;
Expand All @@ -304,12 +305,24 @@ export class MailParser extends StreamModule.Transform {
export type Source = Buffer | Stream | string;

/**
* Options object for simpleParser.
* Options object for MailParser.
*/
export interface SimpleParserOptions extends StreamModule.TransformOptions {
export interface MailParserOptions extends StreamModule.TransformOptions {
skipHtmlToText?: boolean | undefined;
maxHtmlLengthToParse?: number | undefined;
formatDateString?: ((d: Date) => string) | undefined;
skipImageLinks?: boolean | undefined;
skipTextToHtml?: boolean | undefined;
skipTextLinks?: boolean | undefined;
Iconv?: DecoderStream | undefined;
keepCidLinks?: boolean | undefined;
}

/**
* Options for SimpleParser.
*/
export type SimpleParserOptions = MailParserOptions;

/**
* Parse email message to structure object.
*
Expand Down
15 changes: 15 additions & 0 deletions types/mailparser/mailparser-tests.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { MailParser, simpleParser } from 'mailparser';
import { getDecoder } from 'iconv-lite';

const mailparser = new MailParser();

Expand All @@ -21,6 +22,20 @@ mailparser.on('data', data => {
}
});

// Validate options
const mailparser2 = new MailParser(
{
skipHtmlToText: true,
maxHtmlLengthToParse: 88,
formatDateString: (d: Date) => d.toDateString(),
skipImageLinks: true,
skipTextToHtml: true,
skipTextLinks: true,
Iconv: getDecoder("ascii"),
keepCidLinks: true
}
);

// Pipe file to MailParser
// This example pipes a readableStream file to MailParser
import fs = require('fs');
Expand Down
6 changes: 6 additions & 0 deletions types/mailparser/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"private": true,
"dependencies": {
"iconv-lite": "^0.6.3"
}
}