WORKFLOW_SERIALIZE
A symbol used to define custom serialization for user-defined class instances. The static method should accept an instance and return serializable data.
Usage
import { WORKFLOW_SERIALIZE, WORKFLOW_DESERIALIZE } from "@workflow/serde";
class Point {
constructor(public x: number, public y: number) {}
static [WORKFLOW_SERIALIZE](instance: Point) {
return { x: instance.x, y: instance.y };
}
static [WORKFLOW_DESERIALIZE](data: { x: number; y: number }) {
return new Point(data.x, data.y);
}
}API Signature
static [WORKFLOW_SERIALIZE](instance: T): SerializableDataParameters
| Name | Type | Description |
|---|---|---|
instance | T | The class instance to serialize. |
Returns
The method should return serializable data. This can be:
- Primitives (
string,number,boolean,null,undefined,bigint) - Plain objects with serializable values
- Arrays of serializable values
- Built-in serializable types (
Date,Map,Set,RegExp,URL, etc.) - Other custom classes that implement serialization
Requirements
The method must be implemented as a static method on the class. Instance methods are not supported.
- Both
WORKFLOW_SERIALIZEandWORKFLOW_DESERIALIZEmust be implemented together - The returned data must itself be serializable
- The SWC compiler plugin automatically detects and registers classes that implement these symbols