@live-change/framework 0.6.10 → 0.6.12
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.
|
@@ -105,7 +105,7 @@ class ServiceDefinition {
|
|
|
105
105
|
index(definition) {
|
|
106
106
|
const index = new IndexDefinition(definition)
|
|
107
107
|
this.indexes[index.name] = index
|
|
108
|
-
return createIndexProxy(this,
|
|
108
|
+
return createIndexProxy(this, index)
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
foreignIndex(serviceName, indexName) {
|
package/lib/runtime/Index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
const ReactiveDao = require("@live-change/dao")
|
|
2
|
+
const utils = require("../utils.js");
|
|
2
3
|
|
|
3
4
|
class Index {
|
|
4
5
|
|
|
@@ -13,10 +14,14 @@ class Index {
|
|
|
13
14
|
return ['database', 'indexObject', this.service.databaseName, this.dbIndexName, id]
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
rangePath(range = {}) {
|
|
17
|
-
if(typeof range != 'object') {
|
|
18
|
-
const
|
|
19
|
-
|
|
17
|
+
rangePath(range = {}, pathRange = null) {
|
|
18
|
+
if(typeof range != 'object' || Array.isArray(range)) {
|
|
19
|
+
const values = Array.isArray(range) ? range : [range]
|
|
20
|
+
const prefix = values.map(value => value === undefined ? '' : JSON.stringify(value)).join(':')
|
|
21
|
+
if(pathRange) {
|
|
22
|
+
return this.rangePath(utils.prefixRange(pathRange, prefix, prefix))
|
|
23
|
+
}
|
|
24
|
+
return this.rangePath({ gte: prefix+':', lte: prefix+'_\xFF\xFF\xFF\xFF' })
|
|
20
25
|
}
|
|
21
26
|
if(Array.isArray(range)) this.rangePath(range.join(','))
|
|
22
27
|
return ['database', 'indexRange', this.service.databaseName, this.dbIndexName, range]
|
package/lib/updaters/database.js
CHANGED
|
@@ -39,7 +39,7 @@ async function update(changes, service, app, force) {
|
|
|
39
39
|
indexName = generateTableName(indexName)
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
debug("CREATE INDEX", indexName)
|
|
42
|
+
debug("CREATE INDEX", indexName, index)
|
|
43
43
|
|
|
44
44
|
const options = {
|
|
45
45
|
multi: index.multi || false
|
|
@@ -235,25 +235,24 @@ async function update(changes, service, app, force) {
|
|
|
235
235
|
|
|
236
236
|
debug("CHECKING DATABASE INTEGRITY...")
|
|
237
237
|
const indexes = await dao.get(['database', 'indexesList', database])
|
|
238
|
-
for(const indexName in service.indexes) {
|
|
239
|
-
const fullIndexName = generateTableName(indexName)
|
|
240
|
-
if(!indexes.includes(fullIndexName)) {
|
|
241
|
-
debug("index", fullIndexName, "not found! creating...")
|
|
242
|
-
await createIndex(null, indexName, service.index[indexName])
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
238
|
for(const modelName in service.models) {
|
|
246
239
|
const tableName = generateTableName(modelName)
|
|
247
240
|
const model = service.models[modelName]
|
|
248
241
|
for(const indexName in model.indexes) {
|
|
249
242
|
const fullIndexName = tableName + '_' + indexName
|
|
250
243
|
if(!indexes.includes(fullIndexName)) {
|
|
251
|
-
debug("I", indexes)
|
|
252
244
|
debug("table ", modelName, " index", fullIndexName, "not found! creating...")
|
|
253
245
|
await createIndex(generateTableName(modelName), indexName, model.indexes[indexName])
|
|
254
246
|
}
|
|
255
247
|
}
|
|
256
248
|
}
|
|
249
|
+
for(const indexName in service.indexes) {
|
|
250
|
+
const fullIndexName = generateTableName(indexName)
|
|
251
|
+
if(!indexes.includes(fullIndexName)) {
|
|
252
|
+
debug("index", fullIndexName, "not found! creating...")
|
|
253
|
+
await createIndex(null, indexName, service.indexes[indexName])
|
|
254
|
+
}
|
|
255
|
+
}
|
|
257
256
|
}
|
|
258
257
|
|
|
259
258
|
module.exports = update
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@live-change/framework",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.12",
|
|
4
4
|
"description": "Live Change Framework - ultimate solution for real time mobile/web apps",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
},
|
|
22
22
|
"homepage": "https://github.com/live-change/live-change-framework",
|
|
23
23
|
"devDependencies": {
|
|
24
|
-
"@live-change/dao": "0.5.
|
|
25
|
-
"@live-change/dao-websocket": "0.5.
|
|
26
|
-
"@live-change/db": "0.5.
|
|
27
|
-
"@live-change/db-store-level": "0.5.
|
|
28
|
-
"@live-change/db-store-lmdb": "0.5.
|
|
24
|
+
"@live-change/dao": "0.5.4",
|
|
25
|
+
"@live-change/dao-websocket": "0.5.4",
|
|
26
|
+
"@live-change/db": "0.5.17",
|
|
27
|
+
"@live-change/db-store-level": "0.5.17",
|
|
28
|
+
"@live-change/db-store-lmdb": "0.5.17",
|
|
29
29
|
"@live-change/sockjs": "0.4.1",
|
|
30
|
-
"@live-change/uid": "^0.6.
|
|
30
|
+
"@live-change/uid": "^0.6.12",
|
|
31
31
|
"cookie": "^0.4.1",
|
|
32
32
|
"express": "^4.18.1",
|
|
33
33
|
"os-service": "^2.2.0",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
"tape": "^5.3.2",
|
|
36
36
|
"websocket": "^1.0.34"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "2971bd3c587931c7a33f8f424dd7b22a08e04ab0"
|
|
39
39
|
}
|