SchemaDTO
Builds a Data Transfer Object of the schema.
A DTO is a JSON-stringifiable object representing the schema that can be transferred or saved for later use:
import { SchemaDTO } from 'dynamodb-toolbox/schema/actions/dto'
const pokemonSchemaDTO = pokemonSchema.build(SchemaDTO)
const pokemonSchemaJSON = JSON.stringify(pokemonSchemaDTO)
On DTO retrieval, you can use the fromDTO
util to re-create the original schema:
import { fromDTO } from 'dynamodb-toolbox/schema/actions/fromDTO'
const pokemonSchemaDTO = JSON.parse(pokemonSchemaJSON)
// 👇 Has a similar configuration to the original
const pokemonSchema = fromDTO(pokemonSchemaDTO)
note
All TS types are lost in the process.
caution
Note that functions are not serializable, so parts of the schema may be lost in the process:
- Getters defaults are not serialized.
- Links are not serialized.
- Validators are not serialized.
- On-the-shelf transformers like
prefix
andjsonStringify
are correctly serialized, but custom transformers are not.