@live-change/framework 0.6.10 → 0.6.11

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, model)
108
+ return createIndexProxy(this, index)
109
109
  }
110
110
 
111
111
  foreignIndex(serviceName, indexName) {
@@ -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 str = range.toString()
19
- return this.rangePath({ gte: str, lte: str+'\xFF\xFF\xFF\xFF' })
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]
@@ -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.10",
3
+ "version": "0.6.11",
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.1",
25
- "@live-change/dao-websocket": "0.5.1",
24
+ "@live-change/dao": "0.5.4",
25
+ "@live-change/dao-websocket": "0.5.4",
26
26
  "@live-change/db": "0.5.16",
27
27
  "@live-change/db-store-level": "0.5.16",
28
28
  "@live-change/db-store-lmdb": "0.5.16",
29
29
  "@live-change/sockjs": "0.4.1",
30
- "@live-change/uid": "^0.6.10",
30
+ "@live-change/uid": "^0.6.11",
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": "94daf36c87486b4241b752080c926995b27827d2"
38
+ "gitHead": "99d448214c2df44f42e5d25a08fa50ae79e5bdbe"
39
39
  }