File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4,8 +4,9 @@ import type {
44 NormalizedResponse ,
55 PerformedRequestResponse ,
66} from "@trigger.dev/integration-sdk" ;
7- import { resend , shopify } from "internal-integrations" ;
7+ import { shopify } from "internal-integrations" ;
88import * as slack from "@trigger.dev/slack/internal" ;
9+ import * as resend from "@trigger.dev/resend/internal" ;
910import type { PrismaClient } from "~/db.server" ;
1011import { prisma } from "~/db.server" ;
1112import type { IntegrationRequest } from "~/models/integrationRequest.server" ;
Original file line number Diff line number Diff line change @@ -16,6 +16,7 @@ module.exports = {
1616 "@trigger.dev/providers" ,
1717 "@trigger.dev/github" ,
1818 "@trigger.dev/slack" ,
19+ "@trigger.dev/resend" ,
1920 "@trigger.dev/common-schemas" ,
2021 "@trigger.dev/sdk" ,
2122 "@trigger.dev/integrations" ,
@@ -36,6 +37,8 @@ module.exports = {
3637 "../../packages/trigger-sdk/src/**/*" ,
3738 "../../packages/trigger-integrations/src/**/*" ,
3839 "../../integrations/github/src/**/*" ,
40+ "../../integrations/slack/src/**/*" ,
41+ "../../integrations/resend/src/**/*" ,
3942 ] ;
4043 } ,
4144} ;
Original file line number Diff line number Diff line change 5353 "@trigger.dev/github" : [" ../../integrations/github/src/index" ],
5454 "@trigger.dev/github/*" : [" ../../integrations/github/src/*" ],
5555 "@trigger.dev/slack" : [" ../../integrations/slack/src/index" ],
56- "@trigger.dev/slack/*" : [" ../../integrations/slack/src/*" ]
56+ "@trigger.dev/slack/*" : [" ../../integrations/slack/src/*" ],
57+ "@trigger.dev/resend" : [" ../../integrations/resend/src/index" ],
58+ "@trigger.dev/resend/*" : [" ../../integrations/resend/src/*" ]
5759 },
5860 "noEmit" : true
5961 }
Original file line number Diff line number Diff line change 4141 ],
4242 "@trigger.dev/slack/*" : [
4343 " ../../integrations/slack/src/*"
44+ ],
45+ "@trigger.dev/resend" : [
46+ " ../../integrations/resend/src/index"
47+ ],
48+ "@trigger.dev/resend/*" : [
49+ " ../../integrations/resend/src/*"
4450 ]
4551 }
4652 }
Original file line number Diff line number Diff line change 1616 "@react-email/render" : " ^0.0.3" ,
1717 "@react-email/section" : " ^0.0.1" ,
1818 "@react-email/text" : " ^0.0.2" ,
19- "@trigger.dev/integrations " : " workspace:*" ,
19+ "@trigger.dev/resend " : " workspace:*" ,
2020 "@trigger.dev/sdk" : " workspace:*" ,
2121 "react" : " ^18.2.0" ,
2222 "zod" : " ^3.20.2"
3131 "scripts" : {
3232 "dev" : " tsx src/index.tsx"
3333 }
34- }
34+ }
Original file line number Diff line number Diff line change 11import { Trigger , customEvent } from "@trigger.dev/sdk" ;
2- import { resend } from "@trigger.dev/integrations " ;
2+ import * as resend from "@trigger.dev/resend " ;
33import { Head } from "@react-email/head" ;
44import { Html } from "@react-email/html" ;
55import { Link } from "@react-email/link" ;
@@ -13,7 +13,7 @@ import { z } from "zod";
1313new Trigger ( {
1414 id : "resend" ,
1515 name : "Resend text/html" ,
16- apiKey : "trigger_development_YpG7UQygbuT3 " ,
16+ apiKey : "trigger_development_Du0Tt9gYwsVg " ,
1717 endpoint : "ws://localhost:8889/ws" ,
1818 logLevel : "debug" ,
1919 on : customEvent ( {
@@ -48,7 +48,7 @@ new Trigger({
4848new Trigger ( {
4949 id : "resend-react" ,
5050 name : "Resend React" ,
51- apiKey : "trigger_development_YpG7UQygbuT3 " ,
51+ apiKey : "trigger_development_Du0Tt9gYwsVg " ,
5252 endpoint : "ws://localhost:8889/ws" ,
5353 logLevel : "debug" ,
5454 on : customEvent ( {
Original file line number Diff line number Diff line change 1+ # Trigger.dev resend.com integration
2+
3+ View more documentation [ here] ( https://docs.trigger.dev )
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " @trigger.dev/resend" ,
3+ "version" : " 0.1.16" ,
4+ "description" : " The official resend.com integration for Trigger.dev" ,
5+ "exports" : {
6+ "." : {
7+ "import" : " ./dist/index.js" ,
8+ "require" : " ./dist/index.js" ,
9+ "types" : " ./dist/index.d.ts"
10+ },
11+ "./package.json" : " ./package.json"
12+ },
13+ "publishConfig" : {
14+ "access" : " public"
15+ },
16+ "files" : [
17+ " dist"
18+ ],
19+ "devDependencies" : {
20+ "@trigger.dev/integration-sdk" : " workspace:*" ,
21+ "@trigger.dev/sdk" : " workspace:*" ,
22+ "@trigger.dev/tsconfig" : " workspace:*" ,
23+ "@types/debug" : " ^4.1.7" ,
24+ "@types/node" : " 16" ,
25+ "@types/react" : " ^18.0.26" ,
26+ "rimraf" : " ^3.0.2" ,
27+ "tsup" : " ^6.5.0"
28+ },
29+ "peerDependencies" : {
30+ "@trigger.dev/sdk" : " workspace:*"
31+ },
32+ "scripts" : {
33+ "clean" : " rimraf dist" ,
34+ "build" : " npm run clean && npm run build:tsup" ,
35+ "build:tsup" : " tsup"
36+ },
37+ "dependencies" : {
38+ "debug" : " ^4.3.4" ,
39+ "zod" : " ^3.20.2" ,
40+ "@react-email/render" : " ^0.0.3"
41+ }
42+ }
Original file line number Diff line number Diff line change 1+ import { getTriggerRun } from "@trigger.dev/sdk" ;
2+ import { z } from "zod" ;
3+ import { render } from "@react-email/render" ;
4+ import {
5+ SendEmailOptionsSchema ,
6+ SendEmailSuccessResponseSchema ,
7+ } from "./schemas" ;
8+
9+ export type SendEmailOptions = z . infer < typeof SendEmailOptionsSchema > ;
10+
11+ export type SendEmailResponse = z . infer < typeof SendEmailSuccessResponseSchema > ;
12+
13+ export async function sendEmail (
14+ key : string ,
15+ message : SendEmailOptions
16+ ) : Promise < SendEmailResponse > {
17+ const run = getTriggerRun ( ) ;
18+
19+ if ( ! run ) {
20+ throw new Error ( "Cannot call sendEmail outside of a trigger run" ) ;
21+ }
22+
23+ //if the supplied email body is react, we need to turn it into html
24+ let html : string | undefined = undefined ;
25+ if ( message . react ) {
26+ html = render ( message . react , {
27+ pretty : true ,
28+ } ) ;
29+ } else if ( message . html ) {
30+ html = message . html ;
31+ }
32+
33+ let params : any ;
34+ if ( html ) {
35+ params = {
36+ ...message ,
37+ reply_to : message . replyTo ,
38+ html,
39+ } ;
40+ } else {
41+ params = {
42+ ...message ,
43+ reply_to : message . replyTo ,
44+ } ;
45+ delete params . html ;
46+ }
47+ delete params . replyTo ;
48+ delete params . react ;
49+
50+ const output = await run . performRequest ( key , {
51+ service : "resend" ,
52+ endpoint : "email.send" ,
53+ params,
54+ response : {
55+ schema : SendEmailSuccessResponseSchema ,
56+ } ,
57+ } ) ;
58+
59+ return output ;
60+ }
Original file line number Diff line number Diff line change 1+ import { ResendRequestIntegration } from "./internal/requests" ;
2+
3+ export const requests = new ResendRequestIntegration ( ) ;
4+
5+ export * as schemas from "./schemas" ;
6+
7+ export const metadata = {
8+ name : "Resend" ,
9+ slug : "resend" ,
10+ icon : "/integrations/resend.png" ,
11+ enabledFor : "all" ,
12+ authentication : {
13+ type : "api_key" ,
14+ header_name : "Authorization" ,
15+ header_type : "access_token" ,
16+ documentation : `1. Login to [Resend](https://resend.com)
17+ 2. Go to the API Keys page
18+ 3. Generate a new API key
19+ 4. Paste it into the field below` ,
20+ } ,
21+ } ;
You can’t perform that action at this time.
0 commit comments