braid-text 0.0.20 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +11 -6
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -4,7 +4,8 @@ let braidify = require("braid-http").http_server
|
|
|
4
4
|
let fs = require("fs")
|
|
5
5
|
|
|
6
6
|
let braid_text = {
|
|
7
|
-
db_folder: './braid-text-db'
|
|
7
|
+
db_folder: './braid-text-db',
|
|
8
|
+
cache: {}
|
|
8
9
|
}
|
|
9
10
|
|
|
10
11
|
let waiting_puts = 0
|
|
@@ -156,7 +157,7 @@ braid_text.serve = async (req, res, options = {}) => {
|
|
|
156
157
|
|
|
157
158
|
await braid_text.put(resource, { peer, version: req.version, parents: req.parents, patches, body, merge_type })
|
|
158
159
|
|
|
159
|
-
options.put_cb(options.key, resource.
|
|
160
|
+
options.put_cb(options.key, resource.val)
|
|
160
161
|
} catch (e) {
|
|
161
162
|
console.log(`EEE= ${e}:${e.stack}`)
|
|
162
163
|
// we couldn't apply the version, possibly because we're missing its parents,
|
|
@@ -195,8 +196,8 @@ braid_text.serve = async (req, res, options = {}) => {
|
|
|
195
196
|
braid_text.get = async (key, options) => {
|
|
196
197
|
if (!options) {
|
|
197
198
|
// if it doesn't exist already, don't create it in this case
|
|
198
|
-
if (!
|
|
199
|
-
return (await get_resource(key)).
|
|
199
|
+
if (!braid_text.cache[key]) return
|
|
200
|
+
return (await get_resource(key)).val
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
if (options.version) validate_version_array(options.version)
|
|
@@ -528,6 +529,8 @@ braid_text.put = async (key, options) => {
|
|
|
528
529
|
}
|
|
529
530
|
|
|
530
531
|
await resource.db_delta(resource.doc.getPatchSince(v_before))
|
|
532
|
+
|
|
533
|
+
resource.val = resource.doc.get()
|
|
531
534
|
}
|
|
532
535
|
|
|
533
536
|
braid_text.list = async () => {
|
|
@@ -537,12 +540,12 @@ braid_text.list = async () => {
|
|
|
537
540
|
var pages = new Set()
|
|
538
541
|
for (let x of await require('fs').promises.readdir(braid_text.db_folder)) pages.add(decode_filename(x.replace(/\.\w+$/, '')))
|
|
539
542
|
return [...pages.keys()]
|
|
540
|
-
} else return Object.keys(
|
|
543
|
+
} else return Object.keys(braid_text.cache)
|
|
541
544
|
} catch (e) { return [] }
|
|
542
545
|
}
|
|
543
546
|
|
|
544
547
|
async function get_resource(key) {
|
|
545
|
-
let cache =
|
|
548
|
+
let cache = braid_text.cache
|
|
546
549
|
if (!cache[key]) cache[key] = new Promise(async done => {
|
|
547
550
|
let resource = {}
|
|
548
551
|
resource.clients = new Set()
|
|
@@ -573,6 +576,8 @@ async function get_resource(key) {
|
|
|
573
576
|
delete cache[key]
|
|
574
577
|
}
|
|
575
578
|
|
|
579
|
+
resource.val = resource.doc.get()
|
|
580
|
+
|
|
576
581
|
done(resource)
|
|
577
582
|
})
|
|
578
583
|
return await cache[key]
|