From 106e5bab8f593ddf1d5a4e039c396b1b92ead75c Mon Sep 17 00:00:00 2001 From: Zack Schuster Date: Fri, 1 May 2020 12:15:46 -0700 Subject: [PATCH] smtp: strongly type addressparser & emailjs-mime-codec --- smtp/client.ts | 3 +-- smtp/message.ts | 4 +--- smtp/typings.d.ts | 11 +++++++++++ 3 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 smtp/typings.d.ts diff --git a/smtp/client.ts b/smtp/client.ts index a141cf2..4b49569 100644 --- a/smtp/client.ts +++ b/smtp/client.ts @@ -1,4 +1,3 @@ -// @ts-ignore import addressparser from 'addressparser'; import { Message } from './message'; import type { MessageAttachment, MessageHeaders } from './message'; // eslint-disable-line no-unused-vars @@ -12,7 +11,7 @@ export interface MessageStack { text: string; returnPath: string; from: string; - to: string | { address: string }[]; + to: ReturnType; cc: string[]; bcc: string[]; } diff --git a/smtp/message.ts b/smtp/message.ts index d3d55ab..0ad034a 100644 --- a/smtp/message.ts +++ b/smtp/message.ts @@ -3,9 +3,7 @@ import { hostname } from 'os'; import { Stream } from 'stream'; import type { Duplex } from 'stream'; // eslint-disable-line no-unused-vars import type { Indexed } from '@ledge/types'; // eslint-disable-line no-unused-vars -// @ts-ignore import addressparser from 'addressparser'; -// @ts-ignore import { mimeWordEncode } from 'emailjs-mime-codec'; import { getRFC2822Date } from './date'; @@ -80,7 +78,7 @@ function generate_boundary() { function convertPersonToAddress(person: string) { return addressparser(person) - .map(({ name, address }: { name: string; address: string }) => { + .map(({ name, address }) => { return name ? `${mimeWordEncode(name).replace(/,/g, '=2C')} <${address}>` : address; diff --git a/smtp/typings.d.ts b/smtp/typings.d.ts new file mode 100644 index 0000000..9e6cab1 --- /dev/null +++ b/smtp/typings.d.ts @@ -0,0 +1,11 @@ +declare module 'addressparser' { + var addressparser: (address?: string) => { name: string; address: string }[]; + export = addressparser; +} + +declare module 'emailjs-mime-codec' { + var codec: { + mimeWordEncode: (word?: string) => string; + }; + export = codec; +}