@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]
|
|
@@ -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
|
}
|
package/lib/updaters/database.js
CHANGED
|
@@ -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.
|
|
17
|
+
dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'queries').catch(e => 'ok')
|
|
14
18
|
|
|
15
19
|
if(!app.noCache) {
|
|
16
|
-
dao.
|
|
17
|
-
dao.
|
|
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.
|
|
28
|
-
dao.
|
|
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.
|
|
34
|
+
dao.requestWithSettings(updaterRequestSettings, ['database', 'createLog'], database, service.name + '_events').catch(e => 'ok')
|
|
31
35
|
} else {
|
|
32
|
-
dao.
|
|
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.
|
|
42
|
+
dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, service.name + '_commands').catch(e => 'ok')
|
|
39
43
|
} else {
|
|
40
|
-
dao.
|
|
41
|
-
dao.
|
|
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.
|
|
56
|
+
dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, 'triggerRoutes').catch(e => 'ok')
|
|
53
57
|
if (app.splitTriggers) {
|
|
54
|
-
dao.
|
|
58
|
+
dao.requestWithSettings(updaterRequestSettings, ['database', 'createTable'], database, service.name + '_triggers').catch(e => 'ok')
|
|
55
59
|
} else {
|
|
56
|
-
dao.
|
|
57
|
-
dao.
|
|
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.
|
|
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.
|
|
222
|
+
await dao.requestWithSettings(updaterRequestSettings, ['database', 'deleteIndex'], database, indexName)
|
|
219
223
|
}
|
|
220
|
-
await dao.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
26
|
-
"@live-change/uid": "^0.9.
|
|
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": "
|
|
31
|
+
"gitHead": "5d1d50252b6abcf7149a961ac0b4c521c1c53b56"
|
|
32
32
|
}
|