@live-change/db-web 0.9.221 → 0.9.223
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/lib/dbDao.js +96 -0
- package/package.json +7 -7
package/lib/dbDao.js
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
import ReactiveDao from "@live-change/dao"
|
|
2
2
|
|
|
3
|
+
function getDatabaseStorageStats(server, dbName) {
|
|
4
|
+
const db = server.databases.get(dbName)
|
|
5
|
+
if(!db) throw new Error('databaseNotFound')
|
|
6
|
+
const stats = db.storageStats()
|
|
7
|
+
return {
|
|
8
|
+
env: { available: false },
|
|
9
|
+
stores: stats.stores,
|
|
10
|
+
totals: stats.totals,
|
|
11
|
+
wasteBytes: null
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function getTableStorageStats(server, dbName, tableName) {
|
|
16
|
+
const db = server.databases.get(dbName)
|
|
17
|
+
if(!db) throw new Error('databaseNotFound')
|
|
18
|
+
const table = db.table(tableName)
|
|
19
|
+
if(!table) throw new Error('tableNotFound')
|
|
20
|
+
return table.storeStats()
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getIndexStorageStats(server, dbName, indexName) {
|
|
24
|
+
const db = server.databases.get(dbName)
|
|
25
|
+
if(!db) throw new Error('databaseNotFound')
|
|
26
|
+
const config = db.config.indexes[indexName]
|
|
27
|
+
if(!config) throw new Error('indexNotFound')
|
|
28
|
+
return db.storageStatsForConfig('index', indexName, config)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function getLogStorageStats(server, dbName, logName) {
|
|
32
|
+
const db = server.databases.get(dbName)
|
|
33
|
+
if(!db) throw new Error('databaseNotFound')
|
|
34
|
+
const log = db.log(logName)
|
|
35
|
+
if(!log) throw new Error('logNotFound')
|
|
36
|
+
return log.storeStats()
|
|
37
|
+
}
|
|
38
|
+
|
|
3
39
|
function localRequests(server, scriptContext) {
|
|
4
40
|
return {
|
|
5
41
|
createDatabase: async (dbName, options = {}) => {
|
|
@@ -55,6 +91,26 @@ function localRequests(server, scriptContext) {
|
|
|
55
91
|
if(!index) throw new Error("indexNotFound")
|
|
56
92
|
return index.clearOpLog(lastTimestamp || Date.now() - 60 * 1000, limit)
|
|
57
93
|
},
|
|
94
|
+
updateDatabaseStorage: async (dbName, storagePatch = {}) => {
|
|
95
|
+
if(typeof server.updateDatabaseStorage === 'function') {
|
|
96
|
+
return server.updateDatabaseStorage(dbName, storagePatch)
|
|
97
|
+
}
|
|
98
|
+
if(!server.metadata.databases[dbName]) throw new Error('databaseNotFound')
|
|
99
|
+
const dbMeta = server.metadata.databases[dbName]
|
|
100
|
+
dbMeta.storage = {
|
|
101
|
+
...(dbMeta.storage || {}),
|
|
102
|
+
...storagePatch
|
|
103
|
+
}
|
|
104
|
+
const db = server.databases.get(dbName)
|
|
105
|
+
if(db) {
|
|
106
|
+
db.config.storage = dbMeta.storage
|
|
107
|
+
if(db.configObservable) {
|
|
108
|
+
db.configObservable.set(JSON.parse(JSON.stringify(db.config)))
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
await server.saveMetadata()
|
|
112
|
+
return dbMeta.storage
|
|
113
|
+
},
|
|
58
114
|
createTable: async (dbName, tableName, options = {}) => {
|
|
59
115
|
if(dbName === 'system') throw new Error("system database is not writable")
|
|
60
116
|
const db = server.databases.get(dbName)
|
|
@@ -704,6 +760,46 @@ function localReads(server, scriptContext) {
|
|
|
704
760
|
return log.countGet(range)
|
|
705
761
|
}
|
|
706
762
|
},
|
|
763
|
+
databaseStorageStats: {
|
|
764
|
+
observable: (dbName) => {
|
|
765
|
+
try {
|
|
766
|
+
return new ReactiveDao.ObservableValue(getDatabaseStorageStats(server, dbName))
|
|
767
|
+
} catch(e) {
|
|
768
|
+
return new ReactiveDao.ObservableError(e.message || e)
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
get: async (dbName) => getDatabaseStorageStats(server, dbName)
|
|
772
|
+
},
|
|
773
|
+
tableStorageStats: {
|
|
774
|
+
observable: (dbName, tableName) => {
|
|
775
|
+
try {
|
|
776
|
+
return new ReactiveDao.ObservableValue(getTableStorageStats(server, dbName, tableName))
|
|
777
|
+
} catch(e) {
|
|
778
|
+
return new ReactiveDao.ObservableError(e.message || e)
|
|
779
|
+
}
|
|
780
|
+
},
|
|
781
|
+
get: async (dbName, tableName) => getTableStorageStats(server, dbName, tableName)
|
|
782
|
+
},
|
|
783
|
+
indexStorageStats: {
|
|
784
|
+
observable: (dbName, indexName) => {
|
|
785
|
+
try {
|
|
786
|
+
return new ReactiveDao.ObservableValue(getIndexStorageStats(server, dbName, indexName))
|
|
787
|
+
} catch(e) {
|
|
788
|
+
return new ReactiveDao.ObservableError(e.message || e)
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
get: async (dbName, indexName) => getIndexStorageStats(server, dbName, indexName)
|
|
792
|
+
},
|
|
793
|
+
logStorageStats: {
|
|
794
|
+
observable: (dbName, logName) => {
|
|
795
|
+
try {
|
|
796
|
+
return new ReactiveDao.ObservableValue(getLogStorageStats(server, dbName, logName))
|
|
797
|
+
} catch(e) {
|
|
798
|
+
return new ReactiveDao.ObservableError(e.message || e)
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
get: async (dbName, logName) => getLogStorageStats(server, dbName, logName)
|
|
802
|
+
},
|
|
707
803
|
query: {
|
|
708
804
|
observable: (dbName, code, params = {}, sourceName = 'query/query.js') => {
|
|
709
805
|
if(!dbName) return new ReactiveDao.ObservableError("databaseNameRequired")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/db-web",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.223",
|
|
4
4
|
"author": {
|
|
5
5
|
"email": "michal@laszczewski.com",
|
|
6
6
|
"name": "Michał Łaszczewski",
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
},
|
|
30
30
|
"type": "module",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@live-change/dao": "^0.9.
|
|
33
|
-
"@live-change/db": "^0.9.
|
|
34
|
-
"@live-change/db-store-indexeddb": "^0.9.
|
|
35
|
-
"@live-change/db-store-localstorage": "^0.9.
|
|
36
|
-
"@live-change/db-store-rbtree": "^0.9.
|
|
32
|
+
"@live-change/dao": "^0.9.223",
|
|
33
|
+
"@live-change/db": "^0.9.223",
|
|
34
|
+
"@live-change/db-store-indexeddb": "^0.9.223",
|
|
35
|
+
"@live-change/db-store-localstorage": "^0.9.223",
|
|
36
|
+
"@live-change/db-store-rbtree": "^0.9.223",
|
|
37
37
|
"debug": "^4.3.4"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "bbe8401443d2e2a238362a9e73cd2697ddf2e6e9"
|
|
40
40
|
}
|