- π₯ breaking change
- πΆ deprecation or possible breaking change
- π harmless addition, fix, or enhancement
- πΆ rename
GMap.requiretoGMap.need(same for GWeakMap)
- π relax
cycletypings for convenience
- π add
resultifyandresultifyAsyncfns
- πΆ make err agnostic about error types
- πΆ rename
grabtogetOk - πΆ rename
needtoneedOk - π add
getErrfn - π add
needErrfn - π add
attemptandattemptAsyncfns for ok/err wrapping - π add
errorStringfn
- π fix BaseX utils like hex/base58 to support leading zeros
- πΆ deprecate
drillin favor ofdig - π add
dig - π add
assert
- π add ok microlib,
ok,err,Result,need,grab - π add
thrownhelper that yoinks the error from a fn
- π update deps
- πΆ deprecate
maybe.all, renamed tomaybe.validator
- π add
maybevalidation utility kit - π update dependencies
- π make
bytes.eqconstant-time
- π
txt(bytes)is now an alias fortxt.fromBytes(bytes)
- π make BaseX instances (like hex, base64, etc) directly invocable via some spooky constructor magic
hex(bytes) // "cd4501"
- π hex is now case-insensitive
- π update dependencies and tweak publish workflows
- π update dependencies
- π tweak publish.yml
- π update dependencies
- π fix txt.toBytes types
- π update github actions
- π update dependencies
- π add new
allfn (sugar forPromise.all) - π document
allandconcurrentfns in readme - π update dependencies
- π add new
microbouncefn
- π improve
disposertypes
- π fix pub/sub
.nexttype, acceptsfnparam
- π add
toqfile format tool - πΆ uncapitalize data utilities (old names deprecated)
Txt->txtBytes->bytesBytename->bytenameThumbprint->thumbprintHex->hexBase58->base58Base64->base64Base64url->base64url
- πΆ rename parsed ThumbprintData
thumbprint.parse(s).bytes->thumbprint.parse(s).rawthumbprint.parse(s).thumbprint->thumbprint.parse(s).full
- πΆ rename
Timetotime - πΆ rename the whole G Crew
MapG->GMapSetG->GSetWeakMapG->GWeakMapPoolG->GPool
- π update dependencies
- π add
providefn
- πΆ deprecate
repeatrenamed tocycle - πΆ deprecate
looprenamed tocount - πΆ deprecate
loop2drenamed tocount2d - π add
collectfn
- π add tool
untabfor de-tabbing template strings blocks
- π add utility types
First,DropFirst,DropFirstParam - π add SetG clear returns this
- π improve dispenser's types
- π
disposer.schedulereturns the disposer
- π add tool
disposer
- π add SetG
.array()method
- πΆ deprecate
Hatin favor of newDispenser - π add new
Dispensertool, better thanHat
- π₯ rename
is.settois.happy - π₯ rename
is.unsettois.sad - π₯ pubsub changes
- π₯ change
xub, pubsub facilities object (used to return a tuple) - π add new
.publishwhich is a normal publisher fn without the xub facilities - π add new
.subscribewhich is a normal subscriber fn without the xub facilities - π add
fnto.next(fn)
- π₯ change
- π add new
WeakMapGtool, like MapG but for WeakMap - π add
rangefn
- π add
pipe(x).line(fn1, fn2, fn3)
- π export
SetG(whoops forgot it last version lol)
- π export
obMapandobFilter(slightly more performant thanob.mapforms) - π add
SetGconcept similar toMapGbut for sets
- π moving to version range that allows non-breaking patches
- π update dependencies
- π add back the 'ol
Pipe.withalias forpipe(why not)
- π first real release
- π fix scope keepConstructor types
- π add new helper fn
denew - π add new type helper
Ctor(perhaps replacesConstructor?)
- π₯ rename
Scopemethods (now use add/stow/scoped/keep)
- π add new
Scopetool to maybe replaceTrash
- π add
Constructor<T>type - π add templating stuff
templateParts,TemplateParts,templateString - π₯ pipe changes
- replace
Pipe.withwith justpipefn - rename
PipeFuntoPiper
- replace
- π₯ change
MapGbehavior!- old and bad:
requireandguaranteeused to considerundefinedthe same as the map not having the value - new and good: now
undefinedis a valid value (we are checkingmap.hasto check if the key is set, regardless of value)
- old and bad:
- π update dependencies, and readme
- π add readme bit for
debounce - π add more data utils to readme, like Hex, Base64, etc
- π fix readme examples and emojis
- π₯
deadlineremovedmessageargument
old bad:new good:deadline(ms, message, fn)
if you really need to customize message:deadline(ms, fn)
deadline(ms, fn).catch(err => { if (err instanceof DeadlineError) err.message = "my custom deadline error message" throw err })
- π add
queuefn
- π₯ rename
sub().once()tosub().next() - π₯ replace
repeatlywith simplerrepeatfn- recommended to use
napinside the repeat fn
- recommended to use
- π add
oncetool - π add
evtool
- π add Time util
- π add repeatly
- π fix base64 negative integers
- π add
BaseXutility with arbitrary lexicon- can replace Hex, Base64, Base64, etc
- has many lexicons available in
BaseX.lexicons - use it like
const base62 = new BaseX(BaseX.lexicons.base62)
- π₯ mass renames in data utils
Hex.stringrenamed toHex.fromBytesHex.bytesrenamed toHex.toBytes- equivalent renames in
Txt,Base58,Base64,Base64url
- π₯ rename
deferPromisetodefer- and thus
DeferredPromisetoDeferred
- and thus
- π₯ renames for
isis.available->is.setis.unavailable->is.unset
- π₯ deleted deprecated Bytename fns (string/bytes/hex)
- use
fromBytesetc, you'll figure it out
- use
- π₯ rework
ThumbprintAGAIN (i'm going insane)- changed names of options that nobody will use
previewis the bytename part of default 8 bytessigilis the bytename part of default 4 bytes
- π₯ adjust
Thumbprintto use 6-byte sigils by default, hah
- π₯ adjust
Thumbprintto use 8-byte sigils by default
- πΆ Bytename deprecations
.stringrenamed to.fromBytes.bytesrenamed to.toBytes.hexrenamed to.fromHex
- π₯ replace
Thumbprint.hexsigilwithThumbprint.sigil.fromHex
- π₯ rework
Thumbprintfn names, expose more functionality
- π₯ rename
BadgetoThumbprint, rename the options
- π₯ totally rework Bytename and Badge
- bytename now defaults to wordSeparator "."
- π first release