The Edge Wallet uses a variety of back-end micro-services, including encrypted key backup, exchange rates, mining fees, and so forth. Most of these services use an Express frontend talking touch a CouchDB database, so this library contains common utility functions for working with these technologies.
Cleaners:
asCouchDoc
- A cleaner for dealing with the_id
and_rev
fields CouchDB adds to documents.asHealingObject
- A cleaner for repairing damaged objects using default values.- [
asMaybeConflictError
] - Passes for a CouchDB conflict error. - [
asMaybeExistsError
] - Passes for a CouchDB item exists error. - [
asMaybeNotFoundError
] - Passes for a CouchDB item missing error.
CouchDB utilities:
bulkGet
- Nano forgot to implement this method for some reason.makeRollingDatabase
- Treats a collection of databases as a single large database, organized by date range.viewToStream
- Iterates over the documents in a database, partition, or view.
CouchDB setup tools:
setupDatabase
- Automatically creates a database, sets up replication and design documents, and subscribes to the changes feed.makeJsDesign
- Creates a JavaScript design document.makeMangoIndex
- Creates a Mango index design document.syncedDocument
- Watches a settings document for changes.
AggregateError tools:
- [
AggregateError
] - A ponyfill for the new ES2021 AggregateError type. - [
promiseAny
] - A ponyfill for the new ES2021Promise.any
method. - [
stringifyError
] - Turns an error into a string, with special handling forAggregateError
.
Other stuff:
forkChildren
- Used for Node.js clustering.errorCause
- Adds anerror.cause
property.matchJson
- Returnstrue
if two JSON-style objects match.makePeriodicTask
- Starts a periodic async task, with error handling and other features.
Deprecated stuff:
autoReplication
- Deprecated. Use the newsetupDatabase
stuff.createAdminUser
createRegularUser
forEachDocument
- Iterates over the documents in a Couch database. UseviewToStream
instead.