A Javascript implementation of Nock.
npm install @urbit/nockjs
Presently, primarily for dealing with nouns as Javascript objects.
- A
Noun
is anAtom
or aCell
. Atom.fromString('123', 10)
,Atom.fromInt(123)
,Atom.fromCord('{')
all create a newAtom
object. Usesbigint
internally, can construct withnew Atom(someBigint)
.new Cell(a, b)
.dwim(...)
does a best-effort attempt of interpreting the arguments into aNoun
.enjs
containsNoun => Json
conversions and conversion builders.dejs
containsJson => Noun
conversions for idiomatic noun shapes.
When working with Noun objects, it is important to treat them as immutable,
and not assign to their properties or otherwise modify them directly. The
TypeScript readonly
property should prevent you from doing so, and you
must not ignore this.
This library implements unifying equality, deduplicating identical nouns in
memory whenever they are detected. This means that one Noun
object might be
a sub-noun to many other Noun
s, and changing the one sub-noun could change it
for all nouns it is used in. Additionally, the Noun
object keeps a mug cache,
which does not get cleared when illicitly changing the noun's contents.