Skip to content

Commit 603654f

Browse files
authored
email: encapsulate bindings within worker::email (#996)
1 parent 3f53db2 commit 603654f

12 files changed

Lines changed: 1101 additions & 611 deletions

File tree

Cargo.lock

Lines changed: 0 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

chompfile.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ deps = ['install:ts-gen']
66
# `Env` / `ExecutionContext` are project-specific re-exports that ts-gen
77
# can't infer; everything else (`ReadableStream`, `Headers`, `Event`, …)
88
# resolves through ts-gen's built-in web_sys defaults.
9-
run = '''ts-gen --input types/email.d.ts --output worker/src/email.rs \
9+
run = '''ts-gen --input types/email.d.ts --output worker/src/bindings/email.rs \
1010
--errors-as-error \
1111
--external "Env=crate::Env" \
1212
--external "ExecutionContext=crate::Context"'''

examples/send-email/src/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ async fn fetch(req: Request, env: Env, _ctx: Context) -> Result<Response> {
1919
Response::ok(format!("sent: {}", result.message_id()))
2020
}
2121

22-
async fn send_structured(sender: &SendEmail) -> Result<EmailSendResult> {
23-
let from = EmailAddress::new("Sending email test", SENDER);
24-
let builder = SendEmailBuilder::builder_with_email_address_and_str(
22+
async fn send_structured(sender: &email::SendEmail) -> Result<email::EmailSendResult> {
23+
let from = email::EmailAddress::new("Sending email test", SENDER);
24+
let builder = email::SendEmailBuilder::builder_with_email_address_and_str(
2525
&from,
2626
RECIPIENT,
2727
"An email generated in a Worker",
@@ -33,7 +33,7 @@ async fn send_structured(sender: &SendEmail) -> Result<EmailSendResult> {
3333
Ok(sender.send_with_builder(&builder).await?)
3434
}
3535

36-
async fn send_raw_mime(sender: &SendEmail) -> Result<EmailSendResult> {
36+
async fn send_raw_mime(sender: &email::SendEmail) -> Result<email::EmailSendResult> {
3737
// mail-builder's auto-generated `Date:` and `Message-ID:` headers rely on
3838
// `SystemTime::now()` and `gethostname`, neither of which work on
3939
// `wasm32-unknown-unknown`. https://github.com/stalwartlabs/mail-builder/pull/26
@@ -50,6 +50,6 @@ async fn send_raw_mime(sender: &SendEmail) -> Result<EmailSendResult> {
5050
.write_to_string()
5151
.map_err(|e| Error::RustError(e.to_string()))?;
5252

53-
let message = EmailMessage::new(SENDER, RECIPIENT, &raw)?;
53+
let message = email::EmailMessage::new(SENDER, RECIPIENT, &raw)?;
5454
Ok(sender.send(&message).await?)
5555
}

publish.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
cargo publish -p worker-sys
2+
cargo publish -p worker-macros
3+
cargo publish -p worker
4+
cargo publish -p worker-build

test/src/send_email.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
use crate::SomeSharedData;
22
use futures_util::stream::once;
33
use worker::{
4-
js_sys::Uint8Array, worker_sys, Date, EmailAddress, EmailAttachment, EmailMessage, Env,
5-
FixedLengthStream, Request, Response, Result, SendEmail, SendEmailBuilder,
4+
email::{EmailAddress, EmailAttachment, EmailMessage, SendEmail, SendEmailBuilder},
5+
js_sys::Uint8Array,
6+
worker_sys, Date, Env, FixedLengthStream, Request, Response, Result,
67
};
78

89
const SENDER: &str = "allowed-sender@example.com";

0 commit comments

Comments
 (0)