You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently we’re using a variety of jank methods to validate and transform data structures, particularly:
Option objects for Spider, Worker, Project, EnqueueUrls, and similar classes that operate on complex config
Storage entities’ creation data, and JSON-compatible serialization forms
Optional bags of data added to storage entities by project-specific code (i.e., a “content” struct added to some “resource” entities)
Our current half-baked approaches include:
Weak typechecks like isVerticeData
Ad-hoc custom validation (see various entity constructors)
Ad-hoc use of the ‘is’ library
Ad hoc use of class transformer functions during hydration/dehydration
We want something that can validate the structures of large, extensible structures; use the same definitions to check/downcast/coerce/assert, and spit out type definitions in addition to validator objects. The coercion case in particular is important; in some situations we support unserializable types and need a transform step, or support option aliases that need mapping before they’re used to instantiate things,
candidates atm include joi, ow, and superstruct.
The text was updated successfully, but these errors were encountered:
Currently we’re using a variety of jank methods to validate and transform data structures, particularly:
Our current half-baked approaches include:
We want something that can validate the structures of large, extensible structures; use the same definitions to check/downcast/coerce/assert, and spit out type definitions in addition to validator objects. The coercion case in particular is important; in some situations we support unserializable types and need a transform step, or support option aliases that need mapping before they’re used to instantiate things,
candidates atm include joi, ow, and superstruct.
The text was updated successfully, but these errors were encountered: