SerializerExtension
The shape a dialect plugin package (e.g. @sqb/postgres-dialect, @sqb/oracle-dialect) registers
with SerializerRegistry.register(...) to plug custom SQL
rendering into @sqb/builder. Primarily relevant to authors of a dialect package rather than
everyday query building — see The Dialect Plugin System
for the full mechanism and a from-scratch example.
interface SerializerExtension {
dialect: string;
serialize?: SerializeFunction;
isReservedWord?: IsReservedWordFunction;
}
Properties
| Key | Type | Description |
|---|---|---|
dialect | string | The dialect name this extension applies to; matched against GenerateOptions.dialect. |
serialize | SerializeFunction | undefined | Optional custom renderer, tried for every node before falling back to the builder's default. |
isReservedWord | IsReservedWordFunction | undefined | Optional predicate deciding which identifiers need escaping (double-quoting) for this dialect. |
import { SerializerRegistry, SerializationType } from '@sqb/builder';
SerializerRegistry.register({
dialect: 'my-dialect',
serialize(ctx, type, obj, defaultFn) {
if (type === SerializationType.SELECT_QUERY_JOIN) {
// return custom SQL for this node, or...
}
return defaultFn(ctx, obj);
},
isReservedWord(ctx, word) {
return MY_DIALECT_RESERVED_WORDS.has(word.toLowerCase());
},
});