Add support for Buffer in payloads and outputs

This commit is contained in:
Eric Allam
2024-09-19 13:20:26 +01:00
parent b590a318a2
commit 4e0bc485a1
3 changed files with 20 additions and 2 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@trigger.dev/core": patch
---
Add support for Buffer in payloads and outputs
+12 -1
View File
@@ -366,7 +366,18 @@ function getPacketExtension(outputType: string): string {
}
async function loadSuperJSON() {
return await import("superjson");
const superjson = await import("superjson");
superjson.registerCustom<Buffer, number[]>(
{
isApplicable: (v): v is Buffer => v instanceof Buffer,
serialize: (v) => [...v],
deserialize: (v) => Buffer.from(v),
},
"buffer"
);
return superjson;
}
function safeJsonParse(value: string): any {
@@ -6,6 +6,7 @@ export const superParentTask = task({
const result = await superChildTask.triggerAndWait({
foo: "bar",
whenToDo: new Date(),
buffer: Buffer.from("foo"),
});
if (result.ok) {
@@ -24,10 +25,11 @@ export const superParentTask = task({
export const superChildTask = task({
id: "super-child-task",
run: async (payload: { whenToDo: Date; foo: string }) => {
run: async (payload: { whenToDo: Date; foo: string; buffer: Buffer }) => {
logger.log("super-child-task payload: ", { payload });
logger.log(`typeof payload.whenToDo = ${typeof payload.whenToDo}`);
logger.log(`typeof payload.foo = ${typeof payload.foo}`);
logger.log(`typeof payload.buffer = ${payload.buffer.toString("utf-8")}`);
return {
date: new Date(),