'use strict' exports.supports = function supports (...manifests) { const manifest = manifests.reduce((acc, m) => Object.assign(acc, m), {}) return Object.assign(manifest, { snapshots: manifest.snapshots || false, permanence: manifest.permanence || false, seek: manifest.seek || false, clear: manifest.clear || false, getMany: manifest.getMany || false, keyIterator: manifest.keyIterator || false, valueIterator: manifest.valueIterator || false, iteratorNextv: manifest.iteratorNextv || false, iteratorAll: manifest.iteratorAll || false, status: manifest.status || false, createIfMissing: manifest.createIfMissing || false, errorIfExists: manifest.errorIfExists || false, deferredOpen: manifest.deferredOpen || false, promises: manifest.promises || false, streams: manifest.streams || false, encodings: Object.assign({}, manifest.encodings), events: Object.assign({}, manifest.events), additionalMethods: Object.assign({}, manifest.additionalMethods) }) }