Skip to content

Commit 82f45ab

Browse files
authored
docs(power): update serdes example to use no-arg constructor
fix: update createClassSerdesWithDates example to use no-arg constructor * Update advanced-patterns.md
1 parent 419001c commit 82f45ab

2 files changed

Lines changed: 43 additions & 21 deletions

File tree

aws-lambda-durable-functions-power/steering/advanced-patterns.md

Lines changed: 36 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -247,17 +247,22 @@ import {
247247
} from '@aws/durable-execution-sdk-js';
248248

249249
class User {
250-
constructor(
251-
public name: string,
252-
public email: string,
253-
public createdAt: Date,
254-
public updatedAt: Date
255-
) {}
250+
name: string = '';
251+
email: string = '';
252+
createdAt: Date = new Date();
253+
updatedAt: Date = new Date();
256254
}
257255

258256
const result = await context.step(
259257
'create-user',
260-
async () => new User('Alice', 'alice@example.com', new Date(), new Date()),
258+
async () => {
259+
const user = new User();
260+
user.name = 'Alice';
261+
user.email = 'alice@example.com';
262+
user.createdAt = new Date();
263+
user.updatedAt = new Date();
264+
return user;
265+
},
261266
{
262267
serdes: createClassSerdesWithDates(User, ['createdAt', 'updatedAt'])
263268
}
@@ -275,19 +280,19 @@ console.log(result.createdAt instanceof Date); // true
275280
import { createClassSerdes } from '@aws/durable-execution-sdk-js';
276281

277282
class Order {
278-
constructor(
279-
public id: string,
280-
public items: OrderItem[],
281-
public customer: Customer
282-
) {}
283+
id: string = '';
284+
items: OrderItem[] = [];
285+
customer: Customer = new Customer();
283286
}
284287

285288
class OrderItem {
286-
constructor(public sku: string, public quantity: number) {}
289+
sku: string = '';
290+
quantity: number = 0;
287291
}
288292

289293
class Customer {
290-
constructor(public id: string, public name: string) {}
294+
id: string = '';
295+
name: string = '';
291296
}
292297

293298
// Create serdes for each class
@@ -298,12 +303,23 @@ const customerSerdes = createClassSerdes(Customer);
298303
const result = await context.step(
299304
'process-order',
300305
async () => {
301-
const customer = new Customer('CUST-123', 'Alice');
302-
const items = [
303-
new OrderItem('SKU-001', 2),
304-
new OrderItem('SKU-002', 1)
305-
];
306-
return new Order('ORD-456', items, customer);
306+
const customer = new Customer();
307+
customer.id = 'CUST-123';
308+
customer.name = 'Alice';
309+
310+
const item1 = new OrderItem();
311+
item1.sku = 'SKU-001';
312+
item1.quantity = 2;
313+
314+
const item2 = new OrderItem();
315+
item2.sku = 'SKU-002';
316+
item2.quantity = 1;
317+
318+
const order = new Order();
319+
order.id = 'ORD-456';
320+
order.items = [item1, item2];
321+
order.customer = customer;
322+
return order;
307323
},
308324
{ serdes: orderSerdes }
309325
);

aws-lambda-durable-functions-power/steering/step-operations.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,13 @@ const userSerdes = createClassSerdesWithDates(User, ['createdAt']);
236236

237237
const user = await context.step(
238238
'fetch-user',
239-
async () => new User('123', 'Alice', new Date()),
239+
async () => {
240+
const user = new User();
241+
user.id = '123';
242+
user.name = 'Alice';
243+
user.createdAt = new Date();
244+
return user;
245+
},
240246
{ serdes: userSerdes }
241247
);
242248
```

0 commit comments

Comments
 (0)