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

Commit 4e5fb97

Browse files
authored
Re enable preview (#508)
* add random-access-page-files * Revert "disable file preview until caching is sorted" This reverts commit 4eba2f8. * re-enable preview test
1 parent a414971 commit 4e5fb97

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

client/js/components/hyperdrive/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
const hyperdriveRenderer = require('./client.js')
2+
const noop = function () {}
23

34
module.exports = function (state, prev, send) {
45
var onclick = (ev, entry) => {
56
if (entry.type === 'directory') {
67
send('archive:update', {root: entry.name})
78
return true
89
} else {
10+
send('preview:file', {archiveKey: state.archive.key, entry: entry}, noop)
911
return false
1012
}
1113
}

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@
111111
"nodemailer-postmark-transport": "^1.1.0",
112112
"pretty-bytes": "^3.0.1",
113113
"pump": "^1.0.2",
114+
"random-access-page-files": "^1.0.1",
114115
"range-parser": "^1.2.0",
115116
"relative-date": "^1.1.3",
116117
"render-data": "^2.2.0",

server/dats.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const Archiver = require('hypercore-archiver')
22
const mkdirp = require('mkdirp')
33
const encoding = require('dat-encoding')
44
const hyperdrive = require('hyperdrive')
5+
const pages = require('random-access-page-files')
56
const Swarm = require('discovery-swarm')
67
const swarmDefaults = require('datland-swarm-defaults')
78
const hyperhttp = require('hyperdrive-http')
@@ -12,7 +13,7 @@ module.exports = Dats
1213
function Dats (dir) {
1314
if (!(this instanceof Dats)) return new Dats(dir)
1415
mkdirp.sync(dir)
15-
this.archiver = Archiver({dir: dir, sparse: true})
16+
this.archiver = Archiver({dir: dir, sparse: true, storage: pages})
1617
this.swarm = createSwarm(this.archiver)
1718
this.drive = hyperdrive(this.archiver.db)
1819
this.archives = {}
@@ -24,13 +25,15 @@ Dats.prototype.get = function (key, cb) {
2425
key = encoding.toStr(key)
2526
var buf = encoding.toBuf(key)
2627
if (self.archives[key]) return cb(null, self.archives[key])
27-
self.archiver.add(buf, {content: false}, function (err) {
28+
self.archiver.add(buf, {content: true}, function (err) {
2829
if (err) return cb(err)
2930
self.archiver.get(buf, function (err, metadata, content) {
3031
if (err) return cb(err)
31-
var archive = self.drive.createArchive(buf, {metadata: metadata, content: content})
32-
self.archives[key] = archive
33-
return cb(null, archive)
32+
if (content) {
33+
var archive = self.drive.createArchive(buf, {metadata: metadata, content: content})
34+
self.archives[key] = archive
35+
return cb(null, archive)
36+
}
3437
})
3538
})
3639
}

0 commit comments

Comments
 (0)