1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 | module.exports = class HyperdrivePromises {
|
8 | constructor (drive) {
|
9 | this.drive = drive
|
10 | }
|
11 |
|
12 | get key () {
|
13 | return this.drive.key
|
14 | }
|
15 | get discoveryKey () {
|
16 | return this.drive.discoveryKey
|
17 | }
|
18 | get version () {
|
19 | return this.drive.version
|
20 | }
|
21 | get metadata () {
|
22 | return this.drive.metadata
|
23 | }
|
24 | get writable () {
|
25 | return this.drive.metadata.writable
|
26 | }
|
27 |
|
28 | ready () {
|
29 | return new Promise((resolve, reject) => {
|
30 | this.drive.ready(err => {
|
31 | if (err) return reject(err)
|
32 | return resolve(null)
|
33 | })
|
34 | })
|
35 | }
|
36 |
|
37 | close () {
|
38 | return new Promise((resolve, reject) => {
|
39 | this.drive.close(err => {
|
40 | if (err) return reject(err)
|
41 | return resolve(null)
|
42 | })
|
43 | })
|
44 | }
|
45 |
|
46 | create (name, opts) {
|
47 | return new Promise((resolve, reject) => {
|
48 | this.drive.create(name, opts, (err, st) => {
|
49 | if (err) return reject(err)
|
50 | return resolve(st)
|
51 | })
|
52 | })
|
53 |
|
54 | }
|
55 |
|
56 | createReadStream (name, opts) {
|
57 | return this.drive.createReadStream(name, opts)
|
58 | }
|
59 |
|
60 | readFile (name, opts) {
|
61 | return new Promise((resolve, reject) => {
|
62 | this.drive.readFile(name, opts, (err, contents) => {
|
63 | if (err) return reject(err)
|
64 | return resolve(contents)
|
65 | })
|
66 | })
|
67 | }
|
68 |
|
69 | createWriteStream (name, opts) {
|
70 | return this.drive.createWriteStream(name, opts)
|
71 | }
|
72 |
|
73 | writeFile (name, buf, opts) {
|
74 | return new Promise((resolve, reject) => {
|
75 | this.drive.writeFile(name, buf, opts, err => {
|
76 | if (err) return reject(err)
|
77 | return resolve(null)
|
78 | })
|
79 | })
|
80 |
|
81 | }
|
82 |
|
83 | createDiffStream (other, prefix, opts) {
|
84 | return this.drive.createDiffStream(other, prefix, opts)
|
85 | }
|
86 |
|
87 | createDirectoryStream (name, opts) {
|
88 | return this.drive.createDirectoryStream(name, opts)
|
89 | }
|
90 |
|
91 | replicate (isInitiator, opts) {
|
92 | return this.drive.replicate(isInitiator, opts)
|
93 | }
|
94 |
|
95 | truncate (name, size) {
|
96 | return new Promise((resolve, reject) => {
|
97 | this.drive.truncate(name, size, err => {
|
98 | if (err) return reject(err)
|
99 | return resolve(null)
|
100 | })
|
101 | })
|
102 |
|
103 | }
|
104 |
|
105 | mkdir (name, opts) {
|
106 | return new Promise((resolve, reject) => {
|
107 | this.drive.mkdir(name, opts, (err, st) => {
|
108 | if (err) return reject(err)
|
109 | return resolve(st)
|
110 | })
|
111 | })
|
112 |
|
113 | }
|
114 |
|
115 | lstat (name, opts) {
|
116 | return new Promise((resolve, reject) => {
|
117 | this.drive.lstat(name, opts, (err, st) => {
|
118 | if (err) return reject(err)
|
119 | return resolve(st)
|
120 | })
|
121 | })
|
122 | }
|
123 |
|
124 | stat (name, opts) {
|
125 | return new Promise((resolve, reject) => {
|
126 | this.drive.stat(name, opts, (err, st) => {
|
127 | if (err) return reject(err)
|
128 | return resolve(st)
|
129 | })
|
130 | })
|
131 | }
|
132 |
|
133 | info (name) {
|
134 | return new Promise((resolve, reject) => {
|
135 | this.drive.info(name, (err, info) => {
|
136 | if (err) return reject(err)
|
137 | return resolve(info)
|
138 | })
|
139 | })
|
140 | }
|
141 |
|
142 | access (name, opts) {
|
143 | return new Promise((resolve, reject) => {
|
144 | this.drive.access(name, opts, err => {
|
145 | if (err) return reject(err)
|
146 | return resolve(null)
|
147 | })
|
148 | })
|
149 | }
|
150 |
|
151 | exists (name, opts) {
|
152 | return new Promise((resolve, reject) => {
|
153 | this.drive.exists(name, opts, (exists) => {
|
154 | return resolve(exists)
|
155 | })
|
156 | })
|
157 | }
|
158 |
|
159 | readdir (name, opts) {
|
160 | return new Promise((resolve, reject) => {
|
161 | this.drive.readdir(name, opts, (err, entries) => {
|
162 | if (err) return reject(err)
|
163 | return resolve(entries)
|
164 | })
|
165 | })
|
166 |
|
167 | }
|
168 |
|
169 | unlink (name) {
|
170 | return new Promise((resolve, reject) => {
|
171 | this.drive.unlink(name, err => {
|
172 | if (err) return reject(err)
|
173 | return resolve(null)
|
174 | })
|
175 | })
|
176 | }
|
177 |
|
178 | rmdir (name) {
|
179 | return new Promise((resolve, reject) => {
|
180 | this.drive.rmdir(name, err => {
|
181 | if (err) return reject(err)
|
182 | return resolve(null)
|
183 | })
|
184 | })
|
185 |
|
186 | }
|
187 |
|
188 | checkout (version, opts) {
|
189 | return this.drive.checkout(version, opts).promises
|
190 | }
|
191 |
|
192 | destroyStorage () {
|
193 | return new Promise((resolve, reject) => {
|
194 | this.drive.destroyStorage(err => {
|
195 | if (err) return reject(err)
|
196 | return resolve(null)
|
197 | })
|
198 | })
|
199 | }
|
200 |
|
201 | stats (path, opts) {
|
202 | return new Promise((resolve, reject) => {
|
203 | this.drive.stats(path, opts, (err, stats) => {
|
204 | if (err) return reject(err)
|
205 | return resolve(stats)
|
206 | })
|
207 | })
|
208 | }
|
209 |
|
210 | watchStats (path, opts) {
|
211 | return this.drive.watchStats(path, opts)
|
212 | }
|
213 |
|
214 | mirror () {
|
215 | return this.drive.mirror()
|
216 | }
|
217 |
|
218 | download (path, opts) {
|
219 | var handle = null
|
220 | const prom = new Promise((resolve, reject) => {
|
221 | handle = this.drive.download(path, opts, err => {
|
222 | if (err) return reject(err)
|
223 | return resolve(handle)
|
224 | })
|
225 | })
|
226 | prom.destroy = handle.destroy
|
227 | prom.catch(() => {})
|
228 | return prom
|
229 | }
|
230 |
|
231 | watch (name, onchange) {
|
232 | return this.drive.watch(name, onchange)
|
233 | }
|
234 |
|
235 | mount (path, key, opts) {
|
236 | return new Promise((resolve, reject) => {
|
237 | this.drive.mount(path, key, opts, err => {
|
238 | if (err) return reject(err)
|
239 | return resolve(null)
|
240 | })
|
241 | })
|
242 | }
|
243 |
|
244 | extension (name, message) {
|
245 | return this.drive.extension(name, message)
|
246 | }
|
247 |
|
248 | createMountStream (opts) {
|
249 | return this.drive.createMountStream(opts)
|
250 | }
|
251 |
|
252 | unmount (path) {
|
253 | return new Promise((resolve, reject) => {
|
254 | this.drive.unmount(path, err => {
|
255 | if (err) return reject(err)
|
256 | return resolve(null)
|
257 | })
|
258 | })
|
259 | }
|
260 |
|
261 | symlink (target, linkname) {
|
262 | return new Promise((resolve, reject) => {
|
263 | this.drive.symlink(target, linkname, (err, st) => {
|
264 | if (err) return reject(err)
|
265 | return resolve(st)
|
266 | })
|
267 | })
|
268 | }
|
269 |
|
270 | readlink (name) {
|
271 | return new Promise((resolve, reject) => {
|
272 | this.drive.readlink(name, (err, linkname) => {
|
273 | if (err) return reject(err)
|
274 | return resolve(linkname)
|
275 | })
|
276 | })
|
277 | }
|
278 |
|
279 | getAllMounts (opts) {
|
280 | return new Promise((resolve, reject) => {
|
281 | this.drive.getAllMounts(opts, (err, allMounts) => {
|
282 | if (err) return reject(err)
|
283 | return resolve(allMounts)
|
284 | })
|
285 | })
|
286 | }
|
287 |
|
288 | setMetadata (path, key, value) {
|
289 | return new Promise((resolve, reject) => {
|
290 | this.drive.setMetadata(path, key, value, (err, st) => {
|
291 | if (err) return reject(err)
|
292 | return resolve(st)
|
293 | })
|
294 | })
|
295 | }
|
296 |
|
297 | removeMetadata (path, key) {
|
298 | return new Promise((resolve, reject) => {
|
299 | this.drive.removeMetadata(path, key, (err, st) => {
|
300 | if (err) return reject(err)
|
301 | return resolve(st)
|
302 | })
|
303 | })
|
304 | }
|
305 |
|
306 | copy (from, to) {
|
307 | return new Promise((resolve, reject) => {
|
308 | this.drive.copy(from, to, (err, st) => {
|
309 | if (err) return reject(err)
|
310 | return resolve(st)
|
311 | })
|
312 | })
|
313 | }
|
314 |
|
315 | createTag (name, version) {
|
316 | return new Promise((resolve, reject) => {
|
317 | this.drive.createTag(name, version, (err) => {
|
318 | if (err) return reject(err)
|
319 | return resolve(null)
|
320 | })
|
321 | })
|
322 | }
|
323 |
|
324 | getAllTags () {
|
325 | return new Promise((resolve, reject) => {
|
326 | this.drive.getAllTags((err, allTags) => {
|
327 | if (err) return reject(err)
|
328 | return resolve(allTags)
|
329 | })
|
330 | })
|
331 | }
|
332 |
|
333 | deleteTag (name) {
|
334 | return new Promise((resolve, reject) => {
|
335 | this.drive.deleteTag(name, (err) => {
|
336 | if (err) return reject(err)
|
337 | return resolve(null)
|
338 | })
|
339 | })
|
340 |
|
341 | }
|
342 |
|
343 | getTaggedVersion (name) {
|
344 | return new Promise((resolve, reject) => {
|
345 | this.drive.getTaggedVersion(name, (err, version) => {
|
346 | if (err) return reject(err)
|
347 | return resolve(version)
|
348 | })
|
349 | })
|
350 | }
|
351 | }
|