Static froman abstract static method that creates an instance of this schema class, using a regular javascript object
Optional namename of the node, used for object property key naming by parent SchemaRecordNode
args that should be passed on to either the type specific encoder or decoder
Optional docan optional doc string for this schema node, that should be cleared when MINIFY is true
to achive that, you would want to write your doc strings as follows:
declare const [DEBUG, MINIFY, BUNDLE]: [boolean, boolean, boolean]
const my_schema_node: SPrimitive<number> {
type: "u4l",
doc: MINIFY || "a stupid description of this 32-bit unsinged little piece of endian."
}
a mandatory kind descriptior of the primitive kind
Optional valuethe value held by this schema node. used as a storage for interceptors to interact and read decoded value
it can also used as a means for storing default values for the encoder to utilize.
but besides those two scenarios, it should typically be left unassigned.
this also comes in handy when annotating types both for the encoder or decoder
each child SEnumEntry dictates a possible enum bytes and value pair entry
if no value or bytes match with any of the enum entries (children) then use the codec of the provided default_schema
manually set this schema's type to the provided type_name, and also
register the new type_name to global type_registery if register = true.
this is the only easy way to register type_names of sub-sub-classes of abstract SchemaNode.
check out SHeadArray to see how it extends SArray, but registers its own type_name = "headarray"
that's different from its parent class's type_name = "array"
Rest ...children: SEnumEntry<JSPrimitive>[]Rest ...children: SEnumEntry<JSPrimitive>[]Generated using TypeDoc
a schema node for a
Uint8Arraybytes literal that has a one-to-one mapping with a primitive javascript value