level.js 618 B

123456789101112131415161718192021222324252627
  1. export function levelup(store) {
  2. return Object.assign(Object.create(store), {
  3. get(key, options, callback) {
  4. let result = store.get(key);
  5. if (typeof options == 'function')
  6. callback = options;
  7. if (callback) {
  8. if (result === undefined)
  9. callback(new NotFoundError());
  10. else
  11. callback(null, result);
  12. } else {
  13. if (result === undefined)
  14. return Promise.reject(new NotFoundError());
  15. else
  16. return Promise.resolve(result);
  17. }
  18. },
  19. });
  20. }
  21. class NotFoundError extends Error {
  22. constructor(message) {
  23. super(message);
  24. this.name = 'NotFoundError';
  25. this.notFound = true;
  26. }
  27. }