diff --git a/pkg/filters/registry.go b/pkg/filters/registry.go index 03c3644..c4e6bbe 100644 --- a/pkg/filters/registry.go +++ b/pkg/filters/registry.go @@ -22,6 +22,12 @@ var FilterRegistry = map[string]IFilter{ "NotLike": &NotLike{}, } +// RegisterFilter registers a new filter for a given name. +// `name` is the name of the filter, and `filter` is an empty instance (&reference) of the IFilter. +func RegisterFilter(name string, filter IFilter) { + FilterRegistry[name] = filter +} + func Convert(ctx Dialect, data interface{}) (string, []interface{}) { for _, impl := range FilterRegistry { filter := impl.FromJSON(data) diff --git a/pkg/filters/unit_test.go b/pkg/filters/unit_test.go index d776ec8..23b0575 100644 --- a/pkg/filters/unit_test.go +++ b/pkg/filters/unit_test.go @@ -7,7 +7,7 @@ import ( adapter "l12.xyz/dal/adapter" ) -type SQLiteContext = adapter.SQLite +type SQLiteContext = adapter.CommonDialect func TestEq(t *testing.T) { ctx := SQLiteContext{