Creating a transformer
What you'll learn
- Creating custom functional (unidirectional) transformers
- Creating custom object (bidirectional) transformers
Functional transformer
The functional (or unidirectional) transformer is a simple function which transform a raw value to its real counterpart.
Here is an example of functional transformer with the Foscia's toNumber
transformer.
- TypeScript
- JavaScript
function toNumber() {
return (value: unknown) =>
value === undefined || value === null || value === ''
? undefined
: Number(value);
}
function toNumber() {
return (value) =>
value === undefined || value === null || value === ''
? undefined
: Number(value);
}
Object transformer
The object (or bidirectional) transformer has two functions to transform values:
serialize
which converts a real value to its raw counterpartdeserialize
which converts a raw value to its real counterpart
Here is an example of functional transformer with the Foscia's toDate
transformer.
- TypeScript
- JavaScript
function toDate() {
return {
serialize(value: Date | undefined) {
return value?.toISOString();
},
deserialize(value: unknown) {
if (typeof value === 'string') {
const date = new Date();
date.setTime(Date.parse(value));
return date;
}
return undefined;
},
};
}
function toDate() {
return {
serialize(value) {
return value?.toISOString();
},
deserialize(value) {
if (typeof value === 'string') {
const date = new Date();
date.setTime(Date.parse(value));
return date;
}
return undefined;
},
};
}