braid-text 0.2.8 → 0.2.10
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 +5 -38
- package/package.json +1 -1
- package/test.html +5 -18
package/index.js
CHANGED
|
@@ -9,8 +9,7 @@ let braid_text = {
|
|
|
9
9
|
verbose: false,
|
|
10
10
|
db_folder: './braid-text-db',
|
|
11
11
|
length_cache_size: 10,
|
|
12
|
-
cache: {}
|
|
13
|
-
delete_cache: {}
|
|
12
|
+
cache: {}
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
let waiting_puts = 0
|
|
@@ -207,8 +206,7 @@ braid_text.serve = async (req, res, options = {}) => {
|
|
|
207
206
|
}
|
|
208
207
|
|
|
209
208
|
braid_text.delete = async (key) => {
|
|
210
|
-
|
|
211
|
-
await resource.delete_me()
|
|
209
|
+
await braid_text.put(key, {body: ''})
|
|
212
210
|
}
|
|
213
211
|
|
|
214
212
|
braid_text.get = async (key, options) => {
|
|
@@ -597,8 +595,6 @@ braid_text.list = async () => {
|
|
|
597
595
|
}
|
|
598
596
|
|
|
599
597
|
async function get_resource(key) {
|
|
600
|
-
if (braid_text.delete_cache[key]) await braid_text.delete_cache[key]
|
|
601
|
-
|
|
602
598
|
let cache = braid_text.cache
|
|
603
599
|
if (!cache[key]) cache[key] = new Promise(async done => {
|
|
604
600
|
let resource = {key}
|
|
@@ -607,11 +603,11 @@ async function get_resource(key) {
|
|
|
607
603
|
|
|
608
604
|
resource.doc = new Doc("server")
|
|
609
605
|
|
|
610
|
-
let { change
|
|
606
|
+
let { change } = braid_text.db_folder
|
|
611
607
|
? await file_sync(key,
|
|
612
608
|
(bytes) => resource.doc.mergeBytes(bytes),
|
|
613
609
|
() => resource.doc.toBytes())
|
|
614
|
-
: { change: () => { }
|
|
610
|
+
: { change: () => { } }
|
|
615
611
|
|
|
616
612
|
resource.db_delta = change
|
|
617
613
|
|
|
@@ -626,11 +622,6 @@ async function get_resource(key) {
|
|
|
626
622
|
resource.actor_seqs[v[0]] = Math.max(v[1], resource.actor_seqs[v[0]] ?? -1)
|
|
627
623
|
}
|
|
628
624
|
|
|
629
|
-
resource.delete_me = async () => {
|
|
630
|
-
delete cache[key]
|
|
631
|
-
await (braid_text.delete_cache[key] = delete_me())
|
|
632
|
-
}
|
|
633
|
-
|
|
634
625
|
resource.val = resource.doc.get()
|
|
635
626
|
|
|
636
627
|
resource.length_cache = createSimpleCache(braid_text.length_cache_size)
|
|
@@ -746,11 +737,9 @@ async function file_sync(key, process_delta, get_init) {
|
|
|
746
737
|
}
|
|
747
738
|
}
|
|
748
739
|
|
|
749
|
-
let deleted = false
|
|
750
740
|
let chain = Promise.resolve()
|
|
751
741
|
return {
|
|
752
742
|
change: async (bytes) => {
|
|
753
|
-
if (deleted) return
|
|
754
743
|
await (chain = chain.then(async () => {
|
|
755
744
|
currentSize += bytes.length + 4 // we account for the extra 4 bytes for uint32
|
|
756
745
|
const filename = `${braid_text.db_folder}/${encoded}.${currentNumber}`
|
|
@@ -788,29 +777,7 @@ async function file_sync(key, process_delta, get_init) {
|
|
|
788
777
|
}
|
|
789
778
|
}
|
|
790
779
|
}))
|
|
791
|
-
}
|
|
792
|
-
delete_me: async () => {
|
|
793
|
-
deleted = true
|
|
794
|
-
await (chain = chain.then(async () => {
|
|
795
|
-
await Promise.all(
|
|
796
|
-
(
|
|
797
|
-
await get_files_for_key(key)
|
|
798
|
-
).map((file) => {
|
|
799
|
-
return new Promise((resolve, reject) => {
|
|
800
|
-
fs.unlink(file, (err) => {
|
|
801
|
-
if (err) {
|
|
802
|
-
console.error(`Error deleting file: ${file}`)
|
|
803
|
-
reject(err)
|
|
804
|
-
} else {
|
|
805
|
-
if (braid_text.verbose) console.log(`Deleted file: ${file}`)
|
|
806
|
-
resolve()
|
|
807
|
-
}
|
|
808
|
-
})
|
|
809
|
-
})
|
|
810
|
-
})
|
|
811
|
-
)
|
|
812
|
-
}))
|
|
813
|
-
},
|
|
780
|
+
}
|
|
814
781
|
}
|
|
815
782
|
}
|
|
816
783
|
|
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(
|