Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | 2x 2x 15x 15x 2x 13x 13x 13x 1x 12x 12x 12x 1x 11x 11x 1x 10x 10x | import get = require("lodash.get"); import { EmailJSON } from "@sendgrid/helpers/classes/email-address"; export interface ConfigurationTemplate { filePath: string; data?: { [key: string]: string; }; wrappers?: [string, string]; } export interface ConfigurationData { apiKey?: string; from?: EmailJSON; to: EmailJSON; template: ConfigurationTemplate; subject?: string; } export default class Configuration { public apiKey: string; public from: EmailJSON; public to: EmailJSON; public template?: ConfigurationTemplate; public subject?: string; constructor(data?: ConfigurationData) { const apiKey = get(data, "apiKey", process.env.SENDGRID_API_KEY); if (!apiKey) { throw new Error("[ProductionConfiguration.constructor] apiKey required."); } this.apiKey = apiKey; const from = { email: get(data, ["from", "email"], process.env.SENDGRID_FROM_EMAIL), name: get(data, ["from", "name"], process.env.SENDGRID_FROM_NAME) }; if (!from.email) { throw new Error( "[ProductionConfiguration.constructor] from email required." ); } this.from = from; const to = { email: get(data, ["to", "email"], process.env.SENDGRID_FROM_EMAIL), name: get(data, ["to", "name"], process.env.SENDGRID_FROM_NAME) }; if (!to.email) { throw new Error( "[ProductionConfiguration.constructor] to email required." ); } this.to = to; if (get(data, "template") && !get(data, ["template", "filePath"])) { throw new Error( "[ProductionConfiguration.constructor] template filePath required." ); } this.template = get(data, "template"); this.subject = get(data, "subject"); } } |