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.
Files changed (2) hide show
  1. package/index.js +11 -6
  2. 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.doc.get())
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 (!get_resource.cache?.[key]) return
199
- return (await get_resource(key)).doc.get()
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(get_resource.cache)
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 = get_resource.cache || (get_resource.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]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "braid-text",
3
- "version": "0.0.20",
3
+ "version": "0.0.21",
4
4
  "description": "Library for collaborative text over http using braid.",
5
5
  "author": "Braid Working Group",
6
6
  "repository": "braid-org/braidjs",