braid-text 0.2.7 → 0.2.9
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 +24 -11
- package/package.json +1 -1
- package/test.html +5 -18
package/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
let { Doc } = require("diamond-types-node")
|
|
2
|
+
let { Doc, OpLog, Branch } = require("diamond-types-node")
|
|
3
3
|
let braidify = require("braid-http").http_server
|
|
4
4
|
let fs = require("fs")
|
|
5
5
|
|
|
@@ -207,8 +207,7 @@ braid_text.serve = async (req, res, options = {}) => {
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
braid_text.delete = async (key) => {
|
|
210
|
-
|
|
211
|
-
await resource.delete_me()
|
|
210
|
+
await braid_text.put(key, {body: ''})
|
|
212
211
|
}
|
|
213
212
|
|
|
214
213
|
braid_text.get = async (key, options) => {
|
|
@@ -349,15 +348,8 @@ braid_text.put = async (key, options) => {
|
|
|
349
348
|
let parents = resource.doc.getRemoteVersion().map((x) => x.join("-")).sort()
|
|
350
349
|
let og_parents = options_parents || parents
|
|
351
350
|
|
|
352
|
-
function get_len() {
|
|
353
|
-
let d = dt_get(resource.doc, og_parents)
|
|
354
|
-
let len = d.len()
|
|
355
|
-
d.free()
|
|
356
|
-
return len
|
|
357
|
-
}
|
|
358
|
-
|
|
359
351
|
let max_pos = resource.length_cache.get('' + og_parents) ??
|
|
360
|
-
(v_eq(parents, og_parents) ? resource.doc.len() :
|
|
352
|
+
(v_eq(parents, og_parents) ? resource.doc.len() : dt_len(resource.doc, og_parents))
|
|
361
353
|
|
|
362
354
|
if (body != null) {
|
|
363
355
|
patches = [{
|
|
@@ -825,6 +817,27 @@ async function file_sync(key, process_delta, get_init) {
|
|
|
825
817
|
//////////////////////////////////////////////////////////////////
|
|
826
818
|
//////////////////////////////////////////////////////////////////
|
|
827
819
|
|
|
820
|
+
function dt_len(doc, version) {
|
|
821
|
+
let bytes = doc.toBytes()
|
|
822
|
+
let oplog = OpLog.fromBytes(bytes)
|
|
823
|
+
let [_agents, versions, _parentss] = dt_parse([...bytes])
|
|
824
|
+
|
|
825
|
+
let frontier = {}
|
|
826
|
+
version.forEach((x) => frontier[x] = true)
|
|
827
|
+
|
|
828
|
+
let local_version = []
|
|
829
|
+
for (let i = 0; i < versions.length; i++)
|
|
830
|
+
if (frontier[versions[i].join("-")]) local_version.push(i)
|
|
831
|
+
|
|
832
|
+
let b = new Branch()
|
|
833
|
+
b.merge(oplog, new Uint32Array(local_version))
|
|
834
|
+
let len = count_code_points(b.get())
|
|
835
|
+
b.free()
|
|
836
|
+
|
|
837
|
+
oplog.free()
|
|
838
|
+
return len
|
|
839
|
+
}
|
|
840
|
+
|
|
828
841
|
function dt_get(doc, version, agent = null) {
|
|
829
842
|
if (dt_get.last_doc) dt_get.last_doc.free()
|
|
830
843
|
|
package/package.json
CHANGED
package/test.html
CHANGED
|
@@ -110,31 +110,18 @@ runTest(
|
|
|
110
110
|
async () => {
|
|
111
111
|
let key = 'test-' + Math.random().toString(36).slice(2)
|
|
112
112
|
|
|
113
|
-
let r0 = (await (await fetch(`/test.html?check=/${key}`)).json()).result
|
|
114
|
-
|
|
115
113
|
await fetch(`/${key}`, {
|
|
116
114
|
method: 'PUT',
|
|
117
|
-
body:
|
|
118
|
-
})
|
|
119
|
-
|
|
120
|
-
let r1 = (await (await fetch(`/test.html?check=/${key}`)).json()).result
|
|
121
|
-
|
|
122
|
-
await fetch(`/${key}`, {
|
|
123
|
-
method: 'DELETE'
|
|
115
|
+
body: 'hi'
|
|
124
116
|
})
|
|
125
117
|
|
|
126
|
-
|
|
118
|
+
await fetch(`/${key}`, {method: 'DELETE'})
|
|
127
119
|
|
|
128
|
-
await fetch(`/${key}
|
|
129
|
-
method: 'PUT',
|
|
130
|
-
body: JSON.stringify({a: 5, b: 7}, null, 4)
|
|
131
|
-
})
|
|
132
|
-
|
|
133
|
-
let r3 = (await (await fetch(`/test.html?check=/${key}`)).json()).result
|
|
120
|
+
let r = await fetch(`/${key}`)
|
|
134
121
|
|
|
135
|
-
return
|
|
122
|
+
return await r.text()
|
|
136
123
|
},
|
|
137
|
-
|
|
124
|
+
''
|
|
138
125
|
)
|
|
139
126
|
|
|
140
127
|
runTest(
|