Sendgrid-nodejs: рдХреЙрд▓рдмреИрдХ рдлрд╝рдВрдХреНрд╢рди рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдиреЛрдб рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдЬреВрди 2016  ┬╖  25рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sendgrid/sendgrid-nodejs

рдпрд╣ рд╢рд╛рдпрдж рдПрдХ рдирд┐рд░реНрдгрдп рдЖрдк рдЪреАрдЬреЛрдВ рдХреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА 3.0.4 рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд▓рдЧрддрд╛ рд╣реИ, рдХреЙрд▓рдмреИрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ sg.API рдорд╛рдирдХ рдиреЛрдб рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рдорд╛рд░реЛрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдореНрдореЗрд▓рди рдХрд╛ рдкрд╛рд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ function (error, data) ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдкреАрдЖрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рдкрд╣рд▓реА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд╕реЗ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдм рд╣рдо рдХрдЪреНрдЪреЗ рдПрдкреАрдЖрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реЗрдбрд░ рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рднреВрдорд┐ рдХреА рдЬрд┐рдореНрдореЗрджрд╛рд░реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рд╣реАред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рд░реВрдк рдмрджрд▓рддрд╛ рд╣реИ? рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИ рдФрд░ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдЕрд▓рдЧ, рдпрд╛ рдЕрд╢рдХреНрдд рдпрд╛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ?

рдпрд╣ рдкрддрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реБрдИ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣рд╛рдБ, рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░реЗрдВ (рдЗрд╕рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрд▓рдЧреНрди рд╣реЛ рд╕рдХрддреА рд╣реИ)ред рдпрджрд┐ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ null рд╡рд╛рдкрд╕ рдХрд░реЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯред

help wanted community enhancement

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╣реИ, рдЬреИрд╕реЗ:

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, response => {
      if (response && response.statusCode &&
        response.statusCode >= 200 && response.statusCode <= 299) {
        resolve(response);
      }
      reject(new SendMailError(
        'Sendgrid response error ' + response.statusCode
      ));
    });
  });
}

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд╕ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдФрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, (error, response) => {
      if (error {
        reject(new SendMailError(error);
      }
      resolve(response);
    });
  });
}

рдпрд╛ рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рд▓реМрдЯреЗ:

function sendMail(mail) {

  //Build request
  let request = sg.emptyRequest();
  request.method = 'POST';
  request.path = '/v3/mail/send';
  request.body = mail.toJSON();

  //Send request
  return sg.API(request);
}

рдФрд░, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдореЗрд▓ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╕рд╣рд╛рдпрдХ рдХреА рд╡рд╛рдкрд╕реА рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рдмреИрдХрдореЗрд▓ рд╣реЗрд▓реНрдкрд░ рдФрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдЧрд╛:

sg.sendMail(mail);

рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ред

рд╕рднреА 25 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рд╕рдорд╛рдзрд╛рди рд╕рдлрд▓рддрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╣реИ, рдЬреИрд╕реЗ:

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, response => {
      if (response && response.statusCode &&
        response.statusCode >= 200 && response.statusCode <= 299) {
        resolve(response);
      }
      reject(new SendMailError(
        'Sendgrid response error ' + response.statusCode
      ));
    });
  });
}

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХрд╛рдлреА рдХреНрд░рд┐рдпрд╛рддреНрдордХ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реЗ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдмрд╕ рдПрдХ рдИрдореЗрд▓ рднреЗрдЬрдиреЗ рдФрд░ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдПрдкреАрдЖрдИ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

function sendMail(mail) {
  return new Promise((resolve, reject) => {

    //Build request
    let request = sg.emptyRequest();
    request.method = 'POST';
    request.path = '/v3/mail/send';
    request.body = mail.toJSON();

    //Send request
    sg.API(request, (error, response) => {
      if (error {
        reject(new SendMailError(error);
      }
      resolve(response);
    });
  });
}

рдпрд╛ рдмреЗрд╣рддрд░ рдЕрднреА рддрдХ, рд╡рд╛рджреЗ рдХреЗ рд╕рд╛рде рд▓реМрдЯреЗ:

function sendMail(mail) {

  //Build request
  let request = sg.emptyRequest();
  request.method = 'POST';
  request.path = '/v3/mail/send';
  request.body = mail.toJSON();

  //Send request
  return sg.API(request);
}

рдФрд░, рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╣рдо рдПрдХ рд╕рдорд░реНрдкрд┐рдд рдореЗрд▓ рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд╕рд╣рд╛рдпрдХ рдХреА рд╡рд╛рдкрд╕реА рджреЗрдЦреЗрдВрдЧреЗ, рдЬреЛ рдмреИрдХрдореЗрд▓ рд╣реЗрд▓реНрдкрд░ рдФрд░ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рддреЗ рд╣реБрдП, рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЙрдЪрд┐рдд рдЕрдиреБрд░реЛрдз рдмрдирд╛рдПрдЧрд╛:

sg.sendMail(mail);

рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкреАрдЖрд░ рдмрдирд╛рдиреЗ рдкрд░ рдзреНрдпрд╛рди рджреВрдВрдЧрд╛ред

рдзрдиреНрдпрд╡рд╛рдж @adambuczynski ,

рдЖрдо рддреМрд░ рдкрд░, рд╣рдо рдПрд░рд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдордиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдЙрд╕ рд╕рдордп рдХреЗ рдЖрдиреЗ рдкрд░ рд╣рдо рдЗрд╕ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдпрджрд┐ рдЖрдк рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕реАрдПрд▓рдП рдЪрд╛рд╣рд┐рдП: https://github.com/sendgrid/sendgrid-nodejs/blob/master/CONTRIBUTING.md#cla

рд╣рдордиреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╣рд╛рдпрдХ рд╕рдВрд░рдЪрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рд╣реИ: https://github.com/sendgrid/sendgrid-nodejs/tree/master/lib/helpers/mailред рдЖрдк рдпрд╛ рддреЛ рдЙрд╕ рдПрдХ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рд╣реЗрд▓реНрдкрд░реНрд╕ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдВ рдореИрдВрдиреЗ рд╣реЗрд▓реНрдкрд░ рдХреЛ рдореЗрд▓ рдХреЗ рд▓рд┐рдП рджреЗрдЦрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЙрд╕ рд╡рд╕реНрддреБ рдкрд░ рд╕рд╣рд╛рдпрдХ рднреЗрдЬрдиреЗ рд╡рд╛рд▓рд╛ рдореЗрд▓ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдпреЗ рдореБрдЭреЗ рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ :)

@Adambuczynski рдХрд┐рдП рдЧрдП рд╕реБрдЭрд╛рд╡ рд╣рд╛рдЬрд┐рд░ рд╣реИрдВред рдореИрдВрдиреЗ рдЕрднреА v3 рдПрдкреАрдЖрдИ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдмрд╣реБрдд рдирд┐рд░рд╛рд╢ рдерд╛ рдХрд┐ рдореИрдВ рдЕрдм рдПрдХ рд╕рд╛рдзрд╛рд░рдг рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдмреЙрдпрд▓рд░ рдкреНрд▓реЗрдЯ рдХреЛрдб рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рдЕрдм рдЗрд╕реЗ рдмрджрд╕реВрд░рдд рддреНрд░реБрдЯрд┐ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдмреНрд▓реВрдмрд░реНрдб рд╡рд╛рджрд╛ рдореЗрдВ рд▓рдкреЗрдЯ рдирд╣реАрдВ рд╕рдХрддрд╛ред

рд╡рд┐рд╕реНрдордпрдХрд╛рд░реА, @ рд╢рд┐рд╖реНрдЯрд╛рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдХреГрдкрдпрд╛ рдкреНрд░рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдпрджрд┐ @adambuczynski рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкреЛрд╕реНрдЯ рдХрд░реВрдБрдЧрд╛; рдЕрдиреНрдпрдерд╛, рд╣рдо рдЗрд╕реЗ рдЕрдЧрд▓реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдкрдбреЗрдЯ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд░реЛрдбрдореИрдк рдореЗрдВ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред

@thinkingsouble рдореИрдВрдиреЗ рдЕрднреА рдЖрдкрдХреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рд╣реБрдП CA рдХреЛ рдореЗрд▓ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ рдХреБрдЫ рд╕рдордп рд▓рдЧреЗрдЧрд╛ред

@adambuczynski рд╣рдо рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рднреВрд▓ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрдИ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рд╡реНрдпрд╕реНрдд рд░рд╣рд╛ рд╣реВрдБред рдЕрднреА рднреА рдХреБрдЫ рдЪрд░рдг рдореЗрдВ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж :)

@thinkingsouble рдореИрдВрдиреЗ рдЖрдкрдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░

рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реИрдВ? рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдкрд╛рдКрдВрдЧрд╛, рдЕрдиреНрдпрдерд╛, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдорд╕реНрддрд┐рд╖реНрдХ рдХреЛ рдЪреЛрдЯ рдкрд╣реБрдБрдЪрд╛рддрд╛ рд╣реИ :)

рдкреБрдирд╢реНрдЪ рдЖрдк рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд▓рд┐рдВрдЯрд░ :)

@adambuczynski ,

рд╣рдо рдЗрд╕ рд▓рд╛рдЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ: http://eslint.org рдорд╛рдирдХ рд╢реИрд▓реА рдЧрд╛рдЗрдб рдХреЗ рд╕рд╛рдеред

рдЖрдк рдХреМрди рд╕рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╣реИрдВ? рдпрджрд┐ рд╣рдо рд╕рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реА рд▓рд┐рдВрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛ред

рдореИрдВ ESLiint рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рдпрдо рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдб рдореЗрдВ рдЕрднреА рднреА рдмрд╣реБрдд рд╕рд╛рд░реА рд╡рд┐рд╕рдВрдЧрддрд┐рдпрд╛рдВ рд╣реИрдВред

рдпрд╣ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ: https://gist.github.com/adambuczynski/1fa24bcfc5d17b8d26e4c39ffca7560e#file -eslintrc-node-yaml

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рд╕рд░реНрд╡реЛрддреНрддрдо рдкреНрд░рдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕рдВрддреБрд▓рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛрдиреЗ рдХреЗ рдмрд┐рдирд╛ред

рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ .eslintrc.yaml рдХреЙрдиреНрдлрд┐рдЧ рдлрд╝рд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЬреЛрдбрд╝ / рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдореИрдВ рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХреВрдВ?

@adambuczynski ,

рдореИрдВ рддреБрдореНрд╣рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реВрдБ, рдпрд╣ рдареЛрд╕ рд▓рдЧ рд░рд╣рд╛ рд╣реИ :)

рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЕрдкрдиреА рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

@thinkingserious рдпрд╣, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдиреА рд╣реИ рдЬрдм рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ ES6 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрдЕрдк рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣реИ var рдХреЗ рдмрдЬрд╛рдп let рдФрд░ ES6 рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред

рдХреНрдпрд╛ рдпрд╣ рдареАрдХ рд╣реИ, рдпрд╛ рдЖрдк рдХреЗрд╡рд▓ рдкреАрдЫреЗ рдХреА рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП ES5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ?

рд╣рдореЗрдВ Node.js рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: "0.10", "0.12", "iojs", "4"

рдпрджрд┐ рд╣рдо рдЙрди рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдирд╣реАрдВ рддреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдЕрдзрд┐рдХ рдЖрдзреБрдирд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реВрдВред

рдареАрдХ рд╣реИ, рдореИрдВрдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдФрд░ рдЕрднреА рддрдп рдХреА рдЧрдИ рдХреЛрдб рд╢реИрд▓реА рдореБрджреНрджреЛрдВ рдХреЛ рд░рдЦрд╛ рд╣реИред рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЕрд▓рдЧ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреАрдЖрд░ рдмрдирд╛рдпрд╛ред

@ рд╡рд╛рдВрдЫрдиреАрдп

рдХрдИ рд╕рдорд╛рдзрд╛рди, рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдЬреЛ (рдпрд╛ рд╕рдВрдпреЛрдЬрди) рдЖрдк рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ:

  • рдПрдХ рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ bluebird рд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
  • рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рджреЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдЕрдЧрд░ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдВ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ
  • рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡рд╛рджреЗ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВ, рдЬреЛ рд╡реЗ рдХреЗрд╡рд▓ sendgrid.Promise рдЬреЛ рднреА рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рд╕рдВрднрд╡рддрдГ 2 рдФрд░ 3 рдХрд╛ рд╕рдВрдпреЛрдЬрди рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реЛрдЧрд╛ред

рдорд╛рдирд╛ред

рдореБрдЭреЗ рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдкрд╕рдВрдж рд╣реИ: "рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╡рд╛рджреЗ рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ, рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдВ рдпрджрд┐ рд╡реЗ рдирд╣реАрдВ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд▓реЛрдЧ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ", рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╡реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рднреА рджреЗрддреЗ рд╣реИрдВ рдЬреЛ рд╡реЗ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

@ рдзрд╛рд░реНрдорд┐рдХ

@adambuczynski рдЖрдк рдПрдХ рд╣реА рдкреАрдЖрд░ рдореЗрдВ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдзрдиреНрдпрд╡рд╛рдж!

# 261 рджреЗрдЦреЗрдВ

@beldenge рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА +1 рдХреЛ PR https://github.com/sendgrid/sendgrid-nodejs/pull/261 рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рдкрд╕рдВрдж рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ Sendgrid рдЯреАрдо рдЗрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХреЗ рдФрд░ рдЗрд╕реЗ рдорд░реНрдЬ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХреЗ? рдзрдиреНрдпрд╡рд╛рдж!

@adambuczynski рдореИрдВ рдЕрдм +1

Https://github.com/sendgrid/sendgrid-nodejs/releases/tag/v4.0.0 рдХреЗ рд╕рд╛рде рдлрд┐рдХреНрд╕реНрдб

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕