Identifies a type this package converts, by name rather than by the class object itself.
JsonSerializer recognized a type by comparing constructors, which holds until a second copy of this
package is loaded into the same realm - a nested install, or one install reached as both ESM and
CommonJS. Each copy then had its own Guid, ConceptAs and ValueMap class objects and neither
recognized the other's, so a Guid crossing that boundary was written as an object rather than a
string, and a concept as {"value": ...} rather than its underlying value. Both silently.
A name survives the boundary where a class object does not: the key is a registered symbol, so every
copy resolves the same one, and the values are plain strings.
The key is deliberately a symbol rather than a plain static: a string static would appear in
Object.keys(Guid) and could be shadowed by an unrelated member of the same name.
Identifies a type this package converts, by name rather than by the class object itself.
JsonSerializerrecognized a type by comparing constructors, which holds until a second copy of this package is loaded into the same realm - a nested install, or one install reached as both ESM and CommonJS. Each copy then had its ownGuid,ConceptAsandValueMapclass objects and neither recognized the other's, so aGuidcrossing that boundary was written as an object rather than a string, and a concept as{"value": ...}rather than its underlying value. Both silently.A name survives the boundary where a class object does not: the key is a registered symbol, so every copy resolves the same one, and the values are plain strings.
The key is deliberately a symbol rather than a plain static: a string static would appear in
Object.keys(Guid)and could be shadowed by an unrelated member of the same name.