Skip to content
This repository was archived by the owner on Mar 23, 2023. It is now read-only.

Commit bf79768

Browse files
jacobheundaviddias
authored andcommitted
feat: add basic error codes
1 parent f061c34 commit bf79768

File tree

2 files changed

+35
-10
lines changed

2 files changed

+35
-10
lines changed

src/mount.js

+10-6
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ const many = require('pull-many')
66
const pull = require('pull-stream')
77

88
const Key = require('interface-datastore').Key
9+
const Errors = require('interface-datastore').Errors
910
const utils = require('interface-datastore').utils
1011
const asyncFilter = utils.asyncFilter
1112
const asyncSort = utils.asyncSort
@@ -62,8 +63,9 @@ class MountDatastore /* :: <Value> */ {
6263
put (key /* : Key */, value /* : Value */, callback /* : Callback<void> */) /* : void */ {
6364
const match = this._lookup(key)
6465
if (match == null) {
65-
callback(new Error('No datastore mounted for this key'))
66-
return
66+
return callback(
67+
Errors.dbWriteFailedError(new Error('No datastore mounted for this key'))
68+
)
6769
}
6870

6971
match.datastore.put(match.rest, value, callback)
@@ -72,8 +74,9 @@ class MountDatastore /* :: <Value> */ {
7274
get (key /* : Key */, callback /* : Callback<Value> */) /* : void */ {
7375
const match = this._lookup(key)
7476
if (match == null) {
75-
callback(new Error('No datastore mounted for this key'))
76-
return
77+
return callback(
78+
Errors.notFoundError(new Error('No datastore mounted for this key'))
79+
)
7780
}
7881

7982
match.datastore.get(match.rest, callback)
@@ -92,8 +95,9 @@ class MountDatastore /* :: <Value> */ {
9295
delete (key /* : Key */, callback /* : Callback<void> */) /* : void */ {
9396
const match = this._lookup(key)
9497
if (match == null) {
95-
callback(new Error('No datastore mounted for this key'))
96-
return
98+
return callback(
99+
Errors.dbDeleteFailedError(new Error('No datastore mounted for this key'))
100+
)
97101
}
98102

99103
match.datastore.delete(match.rest, callback)

src/tiered.js

+25-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
const each = require('async/each')
55
const whilst = require('async/whilst')
6+
const Errors = require('interface-datastore').Errors
67

78
/* ::
89
import type {Key, Datastore, Callback, Batch, Query, QueryResult} from 'interface-datastore'
@@ -25,13 +26,23 @@ class TieredDatastore /* :: <Value> */ {
2526
open (callback /* : Callback<void> */) /* : void */ {
2627
each(this.stores, (store, cb) => {
2728
store.open(cb)
28-
}, callback)
29+
}, (err) => {
30+
if (err) {
31+
return callback(Errors.dbOpenFailedError())
32+
}
33+
callback()
34+
})
2935
}
3036

3137
put (key /* : Key */, value /* : Value */, callback /* : Callback<void> */) /* : void */ {
3238
each(this.stores, (store, cb) => {
3339
store.put(key, value, cb)
34-
}, callback)
40+
}, (err) => {
41+
if (err) {
42+
return callback(Errors.dbWriteFailedError())
43+
}
44+
callback()
45+
})
3546
}
3647

3748
get (key /* : Key */, callback /* : Callback<Value> */) /* : void */ {
@@ -47,7 +58,12 @@ class TieredDatastore /* :: <Value> */ {
4758
}
4859
cb()
4960
})
50-
}, callback)
61+
}, (err, res) => {
62+
if (err || !res) {
63+
return callback(Errors.notFoundError())
64+
}
65+
callback(null, res)
66+
})
5167
}
5268

5369
has (key /* : Key */, callback /* : Callback<bool> */) /* : void */ {
@@ -69,7 +85,12 @@ class TieredDatastore /* :: <Value> */ {
6985
delete (key /* : Key */, callback /* : Callback<void> */) /* : void */ {
7086
each(this.stores, (store, cb) => {
7187
store.delete(key, cb)
72-
}, callback)
88+
}, (err) => {
89+
if (err) {
90+
return callback(Errors.dbDeleteFailedError())
91+
}
92+
callback()
93+
})
7394
}
7495

7596
close (callback /* : Callback<void> */) /* : void */ {

0 commit comments

Comments
 (0)