workflow
Version:
Workflow SDK - Build durable, resilient, and observable workflows
36 lines (26 loc) • 1.78 kB
text/mdx
title: hydrateData
description: Hydrate a single serialized value from workflow storage into a plain JavaScript value.
type: reference
summary: Use hydrateData to deserialize a single value when hydrateResourceIO's field mapping doesn't apply.
related:
- /docs/api-reference/workflow-observability/hydrate-resource-io
- /docs/api-reference/workflow-observability/observability-revivers
Hydrates (deserializes) a single value that was stored by the workflow runtime. This is the lower-level building block behind [`hydrateResourceIO()`](/docs/api-reference/workflow-observability/hydrate-resource-io). Use it when you have a raw serialized value rather than a whole resource, such as a single field from an event payload.
```typescript lineNumbers
import { hydrateData, observabilityRevivers } from "workflow/observability"; // [!code highlight]
declare const serialized: unknown; // @setup
const value = hydrateData(serialized, observabilityRevivers); // [!code highlight]
```
## API signature
### Parameters
| Parameter | Type | Description |
|-----------|------|-------------|
| `value` | `unknown` | The serialized value from workflow storage |
| `revivers` | `Revivers` | Reviver functions for deserialization. Use [`observabilityRevivers`](/docs/api-reference/workflow-observability/observability-revivers) for standard use. |
### Returns
The hydrated plain JavaScript value. The input is handled by shape:
- Format-prefixed binary data (`Uint8Array`) is decoded and parsed from the [devalue](https://github.com/Rich-Harris/devalue) format.
- Encrypted data is returned as-is (a raw `Uint8Array`). See [Encrypted data](/docs/api-reference/workflow-observability#encrypted-data).
- Already-plain values (numbers, strings, and `null`) are returned unchanged.