From 563f9bcda0177749dc3afddb33ba3f9fa3efbf63 Mon Sep 17 00:00:00 2001 From: Rishi Tiwari Date: Sat, 9 May 2026 15:31:32 +0530 Subject: [PATCH 1/4] Update advanced-patterns.md fix: update createClassSerdesWithDates example to use no-arg constructor --- .../steering/advanced-patterns.md | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/aws-lambda-durable-functions-power/steering/advanced-patterns.md b/aws-lambda-durable-functions-power/steering/advanced-patterns.md index c0983ee..85e40ea 100644 --- a/aws-lambda-durable-functions-power/steering/advanced-patterns.md +++ b/aws-lambda-durable-functions-power/steering/advanced-patterns.md @@ -247,12 +247,9 @@ import { } from '@aws/durable-execution-sdk-js'; class User { - constructor( - public name: string, - public email: string, - public createdAt: Date, - public updatedAt: Date - ) {} + id: string = ''; + name: string = ''; + createdAt: Date = new Date(); } const result = await context.step( @@ -275,19 +272,19 @@ console.log(result.createdAt instanceof Date); // true import { createClassSerdes } from '@aws/durable-execution-sdk-js'; class Order { - constructor( - public id: string, - public items: OrderItem[], - public customer: Customer - ) {} + id: string = ''; + items: OrderItem[] = []; + customer: Customer = new Customer(); } class OrderItem { - constructor(public sku: string, public quantity: number) {} + sku: string = ''; + quantity: number = 0; } class Customer { - constructor(public id: string, public name: string) {} + id: string = ''; + name: string = ''; } // Create serdes for each class From 545c6559846e0c95400fbecd6178184a0215b44e Mon Sep 17 00:00:00 2001 From: Rishi Tiwari Date: Sat, 9 May 2026 15:34:08 +0530 Subject: [PATCH 2/4] Update advanced-patterns.md fix: update createClassSerdesWithDates example to use no-arg constructor --- .../steering/advanced-patterns.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/aws-lambda-durable-functions-power/steering/advanced-patterns.md b/aws-lambda-durable-functions-power/steering/advanced-patterns.md index 85e40ea..58468de 100644 --- a/aws-lambda-durable-functions-power/steering/advanced-patterns.md +++ b/aws-lambda-durable-functions-power/steering/advanced-patterns.md @@ -247,9 +247,10 @@ import { } from '@aws/durable-execution-sdk-js'; class User { - id: string = ''; name: string = ''; + email: string = ''; createdAt: Date = new Date(); + updatedAt: Date = new Date(); } const result = await context.step( From 9bd38f16f92bb06b0f18803078fec34f60aca7b3 Mon Sep 17 00:00:00 2001 From: Rishi Tiwari Date: Wed, 13 May 2026 10:28:02 +0530 Subject: [PATCH 3/4] use no-arg constructors --- .../steering/step-operations.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/aws-lambda-durable-functions-power/steering/step-operations.md b/aws-lambda-durable-functions-power/steering/step-operations.md index f947677..6a7e326 100644 --- a/aws-lambda-durable-functions-power/steering/step-operations.md +++ b/aws-lambda-durable-functions-power/steering/step-operations.md @@ -236,7 +236,13 @@ const userSerdes = createClassSerdesWithDates(User, ['createdAt']); const user = await context.step( 'fetch-user', - async () => new User('123', 'Alice', new Date()), + async () => { + const user = new User(); + user.id = '123'; + user.name = 'Alice'; + user.createdAt = new Date(); + return user; + }, { serdes: userSerdes } ); ``` From 88b639d2f6da662af57a95429562ca09c9f622f9 Mon Sep 17 00:00:00 2001 From: Rishi Tiwari Date: Wed, 13 May 2026 10:29:00 +0530 Subject: [PATCH 4/4] use no-arg constructors --- .../steering/advanced-patterns.md | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/aws-lambda-durable-functions-power/steering/advanced-patterns.md b/aws-lambda-durable-functions-power/steering/advanced-patterns.md index 58468de..578b2cb 100644 --- a/aws-lambda-durable-functions-power/steering/advanced-patterns.md +++ b/aws-lambda-durable-functions-power/steering/advanced-patterns.md @@ -255,7 +255,14 @@ class User { const result = await context.step( 'create-user', - async () => new User('Alice', 'alice@example.com', new Date(), new Date()), + async () => { + const user = new User(); + user.name = 'Alice'; + user.email = 'alice@example.com'; + user.createdAt = new Date(); + user.updatedAt = new Date(); + return user; + }, { serdes: createClassSerdesWithDates(User, ['createdAt', 'updatedAt']) } @@ -296,12 +303,23 @@ const customerSerdes = createClassSerdes(Customer); const result = await context.step( 'process-order', async () => { - const customer = new Customer('CUST-123', 'Alice'); - const items = [ - new OrderItem('SKU-001', 2), - new OrderItem('SKU-002', 1) - ]; - return new Order('ORD-456', items, customer); + const customer = new Customer(); + customer.id = 'CUST-123'; + customer.name = 'Alice'; + + const item1 = new OrderItem(); + item1.sku = 'SKU-001'; + item1.quantity = 2; + + const item2 = new OrderItem(); + item2.sku = 'SKU-002'; + item2.quantity = 1; + + const order = new Order(); + order.id = 'ORD-456'; + order.items = [item1, item2]; + order.customer = customer; + return order; }, { serdes: orderSerdes } );