lodash also has methods with deep property path support such as _.get, _.has, and _.set
query filters can use these deep property path methods when trying to sort or filter these types, except that they might introduce unsafety-ness in introducing undefined values
[breaking] triggers / hooks
allows us to subscribe to table events
let's say an item is deleted, and one of its rows is dependent on another table, we can also create side-effects that automatically reflect against those changes
the idea is that the tables should use dummy arrays when db enters transaction mode
dummy array could contain whole copy of items, or ideally, just a stack of changes needed to be reflected against the actual items
i also think the query command can be easily modified by slicing the actual items then applying these stack of changes before applying filtering & sorting mechanisms
polylines
[breaking]
[minor]
[major] finalizing
[minor] fix errors
[breaking] versioning
[breaking] snapshots
*.db
file*.db
into multiple*-meta.tb
and*-current.tb
*.tb
table current*.st
table stale*.mt
table meta (counter, serialization, compression, encryption)[minor] rollback, commit, snapshot
[breaking] improved id
id
non-empty string
, andinteger-number
valuescounter
,schemaHash
, andlist
idType
acceptingrandom|counter
[minor] item property value peek
.get(id)
method[breaking] add
object
typelodash
has_.isPlainObject
which can be used to determine if object is really a plain objectSet
can be used in crawling circular objectsflatted
can be used as alternative forJSON.stringify
andJSON.parse
in working with circular objects and preserving their stateslodash
also has methods with deep property path support such as_.get
,_.has
, and_.set
undefined
values[breaking] triggers / hooks
[breaking] transactions
[breaking] process clustering
[minor] key-value tables
set
,get
, &has
commands only[minor] append-only tables
[?] worker threads
query.toWorkerThread(workerFn)
tosses data to worker thread instead of copying it[?] browser-build
[?] readme updates
undefined
&null
[?] more usage
[breaking] internal logging
db.save
can do logging for us gracefully[type<String>, message<String>, context<Object>]
tail
command to fetch these logs[breaking] database initialization
/tables
anyways[?] reference projects