SerializeFunction
The type of the optional serialize field on SerializerExtension.
Relevant only to authors of a dialect/adapter package writing a custom node renderer — not to
everyday query building.
type SerializeFunction = (
ctx: SerializeContext,
type: SerializationType | string,
obj: any,
defFn: DefaultSerializeFunction,
) => string | undefined;
Parameters
| Parameter | Type | Description |
|---|---|---|
ctx | SerializeContext | The active serialization context for the whole .generate() call. |
type | SerializationType | string | The kind of node being rendered — see SerializationType. |
obj | any | The node's own serialized-data shape (varies per type). |
defFn | DefaultSerializeFunction | Call this to fall back to the builder's default rendering for the node, e.g. return defFn(ctx, obj). |
Return a string to override the rendering for this node, or undefined to let the next registered
extension (or the default renderer) handle it.
import { SerializerRegistry, SerializationType } from '@sqb/builder';
SerializerRegistry.register({
dialect: 'my-dialect',
serialize(ctx, type, obj, defFn) {
if (type === SerializationType.SELECT_QUERY_JOIN) {
return undefined; // fall through
}
return defFn(ctx, obj);
},
});