From d80069d043d67ba08b7019a9e986816e11fd462e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ki=E1=BB=87t=20Th=C3=A0nh=20V=C3=B5?= Date: Tue, 20 Dec 2016 21:27:09 +0700 Subject: [PATCH] Add types for mailgen (#13080) --- mailgen/index.d.ts | 57 ++++++++++++++++++++++++++++++++++++++++ mailgen/mailgen-tests.ts | 20 ++++++++++++++ mailgen/tsconfig.json | 19 ++++++++++++++ mailgen/tslint.json | 1 + 4 files changed, 97 insertions(+) create mode 100644 mailgen/index.d.ts create mode 100644 mailgen/mailgen-tests.ts create mode 100644 mailgen/tsconfig.json create mode 100644 mailgen/tslint.json diff --git a/mailgen/index.d.ts b/mailgen/index.d.ts new file mode 100644 index 0000000000..1db097ffad --- /dev/null +++ b/mailgen/index.d.ts @@ -0,0 +1,57 @@ +// Type definitions for mailgen 2.0 +// Project: https://github.com/eladnava/mailgen#readme +// Definitions by: Kiet Thanh Vo +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +import Option = Mailgen.Option; +import Content = Mailgen.Content; +/** + * Created by kiettv on 7/24/16. + */ +declare class Mailgen { + constructor(opts: Option); + + cacheThemes(): void; + + generate(params: Content): any; + + generatePlaintext(params: Content): any; + + parseParams(params: any): any; +} + +declare namespace Mailgen { + interface Option { + theme: string; + product: Product; + } + + interface Product { + name: string; + link: string; + logo?: string; + } + + interface Content { + body: ContentBody; + } + + interface ContentBody { + name: string; + intro: string; + action?: Action; + outro: string; + } + + interface Action { + instructions: string; + button: Button; + } + + interface Button { + color: string; + text: string; + link: string; + } +} + +export = Mailgen; diff --git a/mailgen/mailgen-tests.ts b/mailgen/mailgen-tests.ts new file mode 100644 index 0000000000..87d04ee943 --- /dev/null +++ b/mailgen/mailgen-tests.ts @@ -0,0 +1,20 @@ +import * as Mailgen from "mailgen" + +const generator: Mailgen = new Mailgen({ + theme: "default", + product: { + name: "test", + link: "http://localhost", + } +}); + +let content: Mailgen.Content = { + body: { + name: "Hi", + intro: "test", + outro: "test", + }, +}; + +let html = generator.generate(content); +html = generator.generatePlaintext(content); diff --git a/mailgen/tsconfig.json b/mailgen/tsconfig.json new file mode 100644 index 0000000000..0cb8974bf2 --- /dev/null +++ b/mailgen/tsconfig.json @@ -0,0 +1,19 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "noImplicitAny": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "mailgen-tests.ts" + ] +} diff --git a/mailgen/tslint.json b/mailgen/tslint.json new file mode 100644 index 0000000000..377cc837d4 --- /dev/null +++ b/mailgen/tslint.json @@ -0,0 +1 @@ +{ "extends": "../tslint.json" }