@live-change/framework 0.9.142 → 0.9.143

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.
@@ -9,9 +9,11 @@ export interface IndexDefinitionSpecification {
9
9
  }
10
10
 
11
11
  class IndexDefinition<T extends IndexDefinitionSpecification> {
12
+ serviceName: string
12
13
  [key: string]: any
13
14
 
14
- constructor(definition: T) {
15
+ constructor(definition: T, serviceName: string) {
16
+ this.serviceName = serviceName
15
17
  this.properties = {}
16
18
  // @ts-ignore
17
19
  for(let key in definition) this[key] = definition[key]
@@ -31,6 +31,7 @@ export interface ModelDefinitionSpecification {
31
31
  }
32
32
 
33
33
  class ModelDefinition<T extends ModelDefinitionSpecification> {
34
+ servideName: string
34
35
  [key: string]: any
35
36
 
36
37
  constructor(definition, serviceName) {
@@ -138,7 +138,7 @@ class ServiceDefinition<T extends ServiceDefinitionSpecification> {
138
138
 
139
139
  index(definition) {
140
140
  if(this.indexes[definition.name]) throw new Error('index ' + definition.name + ' already exists')
141
- const index = new IndexDefinition(definition)
141
+ const index = new IndexDefinition(definition, this.name)
142
142
  this.indexes[index.name] = index
143
143
  return createIndexProxy(this, index)
144
144
  }
@@ -5,16 +5,20 @@ const debug = Debug('framework:updaters:db')
5
5
  const cartesian =
6
6
  (...a) => a.reduce((a, b) => a.flatMap(d => b.map(e => [d, e].flat())));
7
7
 
8
+ const updaterRequestSettings = {
9
+ requestTimeout: Infinity
10
+ }
11
+
8
12
  async function update(changes, service, app, force) {
9
13
 
10
14
  const dao = app.dao
11
15
  const database = app.databaseName
12
16
 
13
- dao.request(['database', 'createTable'], database, 'queries').catch(e => 'ok')
17
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'queries').catch(e => 'ok')
14
18
 
15
19
  if(!app.noCache) {
16
- dao.request(['database', 'createTable'], database, 'cache').catch(e => 'ok')
17
- dao.request(['database', 'createIndex'], database, 'cache_byTimestamp', `${
20
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'cache').catch(e => 'ok')
21
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createIndex'], database, 'cache_byTimestamp', `${
18
22
  async (input, output) => {
19
23
  await input.table('cache').onChange((obj, oldObj) => {
20
24
  if(obj && !oldObj) output.change({ id: obj.expiresAt+'_'+obj.id, to: obj.id }, null)
@@ -24,21 +28,21 @@ async function update(changes, service, app, force) {
24
28
  }
25
29
 
26
30
  if(!app.shortEvents) {
27
- dao.request(['database', 'createTable'], database, 'eventConsumers').catch(e => 'ok')
28
- dao.request(['database', 'createTable'], database, 'eventReports').catch(e => 'ok')
31
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'eventConsumers').catch(e => 'ok')
32
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'eventReports').catch(e => 'ok')
29
33
  if (app.splitEvents) {
30
- dao.request(['database', 'createLog'], database, service.name + '_events').catch(e => 'ok')
34
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createLog'], database, service.name + '_events').catch(e => 'ok')
31
35
  } else {
32
- dao.request(['database', 'createLog'], database, 'events').catch(e => 'ok')
36
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createLog'], database, 'events').catch(e => 'ok')
33
37
  }
34
38
  }
35
39
 
36
40
  if(!app.shortCommands) {
37
41
  if (app.splitCommands) {
38
- dao.request(['database', 'createTable'], database, service.name + '_commands').catch(e => 'ok')
42
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, service.name + '_commands').catch(e => 'ok')
39
43
  } else {
40
- dao.request(['database', 'createTable'], database, 'commands').catch(e => 'ok')
41
- dao.request(['database', 'createIndex'], database, 'commands_byTimestamp', `${
44
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'commands').catch(e => 'ok')
45
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createIndex'], database, 'commands_byTimestamp', `${
42
46
  async (input, output) => {
43
47
  await input.table('commands').onChange((obj, oldObj) => {
44
48
  if(obj && !oldObj) output.change({ id: obj.timestamp+'_'+obj.id, to: obj.id }, null)
@@ -49,12 +53,12 @@ async function update(changes, service, app, force) {
49
53
  }
50
54
  }
51
55
  if(!app.shortTriggers) {
52
- dao.request(['database', 'createTable'], database, 'triggerRoutes').catch(e => 'ok')
56
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'triggerRoutes').catch(e => 'ok')
53
57
  if (app.splitTriggers) {
54
- dao.request(['database', 'createTable'], database, service.name + '_triggers').catch(e => 'ok')
58
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, service.name + '_triggers').catch(e => 'ok')
55
59
  } else {
56
- dao.request(['database', 'createTable'], database, 'triggers').catch(e => 'ok')
57
- dao.request(['database', 'createIndex'], database, 'triggers_byTimestamp', `${
60
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'triggers').catch(e => 'ok')
61
+ dao.requestWithSettings(updaterRequestSettings, ['database', 'createIndex'], database, 'triggers_byTimestamp', `${
58
62
  async (input, output) => {
59
63
  await input.table('triggers').onChange((obj, oldObj) => {
60
64
  if(obj && !oldObj) output.change({ id: obj.timestamp+'_'+obj.id, to: obj.id }, null)
@@ -192,7 +196,7 @@ async function update(changes, service, app, force) {
192
196
  case "createModel": {
193
197
  const model = change.model
194
198
  const tableName = generateTableName(model.name)
195
- await dao.request(['database', 'createTable'], database, tableName, model.storage ?? {})
199
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, tableName, model.storage ?? {})
196
200
  debug("TABLE CREATED!", tableName)
197
201
  for(const [indexName, index] of Object.entries(model.indexes || {})) {
198
202
  if(index.created) continue
@@ -215,9 +219,9 @@ async function update(changes, service, app, force) {
215
219
  for(let indexName in model.indexes) {
216
220
  let indexName = change.name
217
221
  indexName = from + '_' + indexName
218
- await dao.request(['database', 'deleteIndex'], database, indexName)
222
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'deleteIndex'], database, indexName)
219
223
  }
220
- await dao.request(['database', 'renameTable'], database, from, to)
224
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'renameTable'], database, from, to)
221
225
  for(let indexName in model.indexes) {
222
226
  const index = model.indexes[indexName]
223
227
  await createIndex(to, indexName, index)
@@ -231,13 +235,13 @@ async function update(changes, service, app, force) {
231
235
  const indexName = tableName + '_' + indexKey
232
236
  debug("DELETE INDEX", indexName, indexKey)
233
237
  try {
234
- await dao.request(['database', 'deleteIndex'], database, indexName)
238
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'deleteIndex'], database, indexName)
235
239
  } catch(e) {
236
240
  console.error(e)
237
241
  }
238
242
  }
239
243
  try {
240
- await dao.request(['database', 'deleteTable'], database, tableName)
244
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'deleteTable'], database, tableName)
241
245
  } catch(e) {
242
246
  console.error(e)
243
247
  }
@@ -258,7 +262,7 @@ async function update(changes, service, app, force) {
258
262
  from = generateTableName(from)
259
263
  to = generateTableName(to)
260
264
  }
261
- await dao.request(['database', 'renameIndex'], database, from, to)
265
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'renameIndex'], database, from, to)
262
266
  } break
263
267
  case "deleteIndex": {
264
268
  const table = change.model ? generateTableName(change.model) : null
@@ -269,7 +273,7 @@ async function update(changes, service, app, force) {
269
273
  indexName = generateTableName(indexName)
270
274
  }
271
275
  try {
272
- await dao.request(['database', 'deleteIndex'], database, indexName)
276
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'deleteIndex'], database, indexName)
273
277
  } catch(e) {
274
278
  console.error(e)
275
279
  }
@@ -281,7 +285,7 @@ async function update(changes, service, app, force) {
281
285
  const defaultValue = property.defaultValue ?? property.default
282
286
  if(typeof defaultValue !== 'function') update[change.name] = defaultValue // functions not supported here
283
287
  debug("CREATE PROPERTY UPDATE", update)
284
- await dao.request(['database', 'query'], database, `(${
288
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'query'], database, `(${
285
289
  async (input, output, { table, update }) =>
286
290
  await input.table(table).onChange((obj, oldObj) => {
287
291
  if(obj) output.table(table).update(obj.id, [{ op: 'merge', value: update }])
@@ -290,7 +294,7 @@ async function update(changes, service, app, force) {
290
294
  } break;
291
295
  case "renameProperty": {
292
296
  const table = generateTableName(change.model)
293
- await dao.request(['database', 'query'], database, `(${
297
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'query'], database, `(${
294
298
  async (input, output, { table, from, to }) => {
295
299
  const path = from.slice('.')
296
300
  await input.table(table).onChange((obj, oldObj) => {
@@ -308,7 +312,7 @@ async function update(changes, service, app, force) {
308
312
  } break;
309
313
  case "deleteProperty": {
310
314
  const table = generateTableName(change.model)
311
- /*await dao.request(['database', 'query'], database, `(${
315
+ /*await dao.requestWithSettings(updaterRequestSettings, ['database', 'query'], database, `(${
312
316
  async (input, output, { table, property }) => {
313
317
  await input.log(table).onChange((obj, oldObj) => {
314
318
  if(obj) {
@@ -323,7 +327,7 @@ async function update(changes, service, app, force) {
323
327
  case "createQuery": {
324
328
  const query = change.query
325
329
  const queryKey = service.name + '.' + query.name
326
- await dao.request(['database', 'put'], database, 'queries', {
330
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'put'], database, 'queries', {
327
331
  id: queryKey,
328
332
  code: typeof query.code === 'function' ? `(${query.code.toString()})` : query.code,
329
333
  sourceName: query.sourceName,
@@ -339,7 +343,7 @@ async function update(changes, service, app, force) {
339
343
  const queryKey = service.name + '.' + query.name
340
344
  const oldQueryKey = service.name + '.' + change.from.name
341
345
  const oldQuery = await dao.get(['database', 'get', database, 'queries', oldQueryKey])
342
- await dao.request(['database', 'put'], database, 'queries', {
346
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'put'], database, 'queries', {
343
347
  id: queryKey,
344
348
  code: typeof oldQuery.code === 'function' ? `(${oldQuery.code.toString()})` : oldQuery.code,
345
349
  sourceName: oldQuery.sourceName,
@@ -348,12 +352,12 @@ async function update(changes, service, app, force) {
348
352
  properties: oldQuery.properties,
349
353
  returns: oldQuery.returns
350
354
  })
351
- await dao.request(['database', 'delete'], database, 'queries', oldQueryKey)
355
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'delete'], database, 'queries', oldQueryKey)
352
356
  debug("QUERY RENAMED!", query.name)
353
357
  } break;
354
358
  case "deleteQuery": {
355
359
  const queryKey = service.name + '.' + change.name
356
- await dao.request(['database', 'delete'], database, 'queries', queryKey)
360
+ await dao.requestWithSettings(updaterRequestSettings, ['database', 'delete'], database, 'queries', queryKey)
357
361
  debug("QUERY DELETED!", change.name)
358
362
  } break;
359
363
  default:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/framework",
3
- "version": "0.9.142",
3
+ "version": "0.9.143",
4
4
  "description": "Live Change Framework - ultimate solution for real time mobile/web apps",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -22,11 +22,11 @@
22
22
  },
23
23
  "homepage": "https://github.com/live-change/live-change-stack",
24
24
  "devDependencies": {
25
- "@live-change/dao": "^0.9.142",
26
- "@live-change/uid": "^0.9.142",
25
+ "@live-change/dao": "^0.9.143",
26
+ "@live-change/uid": "^0.9.143",
27
27
  "typedoc": "0.28.3",
28
28
  "typedoc-plugin-markdown": "^4.6.3",
29
29
  "typedoc-plugin-rename-defaults": "^0.7.3"
30
30
  },
31
- "gitHead": "efc249d458250a4d1cb9bd5ff847de066452dc1c"
31
+ "gitHead": "5d1d50252b6abcf7149a961ac0b4c521c1c53b56"
32
32
  }