@live-change/cli 0.9.95 → 0.9.96

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.
Files changed (2) hide show
  1. package/lib/starter.js +54 -1
  2. package/package.json +8 -8
package/lib/starter.js CHANGED
@@ -290,10 +290,27 @@ export default function starter(servicesConfig = null, args = {}) {
290
290
  type: 'string',
291
291
  default: '*'
292
292
  })
293
+ startOptions(yargs)
293
294
  }, async (argv) => {
294
295
  await setupApp({...argv, uidBorders: '[]'})
295
296
  await changes(argv)
296
297
  })
298
+ .command('update', 'apply changes', (yargs) => {
299
+ yargs.option('service', {
300
+ describe: 'service that will be described',
301
+ type: 'string',
302
+ default: '*'
303
+ })
304
+ yargs.option('force', {
305
+ describe: 'force update',
306
+ type: 'boolean',
307
+ default: false
308
+ })
309
+ startOptions(yargs)
310
+ }, async (argv) => {
311
+ await setupApp({...argv, uidBorders: '[]'})
312
+ await update(argv)
313
+ })
297
314
  .option('verbose', {
298
315
  alias: 'v',
299
316
  type: 'boolean',
@@ -308,7 +325,7 @@ export async function changes(argv) {
308
325
  await services.loadServices()
309
326
  await services.processDefinitions()
310
327
  async function printChanges(service) {
311
- const oldServiceJson = app.getOldServiceDefinition(service.name)
328
+ const oldServiceJson = await app.getOldServiceDefinition(service.name)
312
329
  const changes = service.computeChanges(oldServiceJson)
313
330
  console.log("Service", service.name)
314
331
  for(const change of changes) {
@@ -330,6 +347,42 @@ export async function changes(argv) {
330
347
  process.exit(0)
331
348
  }
332
349
 
350
+
351
+ export async function update(argv) {
352
+ if(globalServicesConfig) argv.services = globalServicesConfig
353
+ const services = new Services(argv.services)
354
+ await services.loadServices()
355
+ await services.processDefinitions()
356
+ await (app.dao.request(['database', 'createTable'], app.databaseName, 'services').catch(e => 'ok'))
357
+ async function applyChanges(serviceDefinition) {
358
+ if(!serviceDefinition.processed) {
359
+ app.processServiceDefinition(serviceDefinition)
360
+ serviceDefinition.processed = true
361
+ }
362
+ const oldServiceJson = await app.getOldServiceDefinition(serviceDefinition.name)
363
+ const changes = serviceDefinition.computeChanges(oldServiceJson)
364
+ console.log("#### UPDATE SERVICE", serviceDefinition.name)
365
+ await app.applyChanges(changes, serviceDefinition, undefined, Boolean(argv.force))
366
+
367
+ console.log("#### UPDATED SERVICE", serviceDefinition.name)
368
+ await app.dao.request(['database', 'put'], app.databaseName, 'services',
369
+ { id: serviceDefinition.name , ...serviceDefinition })
370
+ }
371
+ if(argv.service === '*') {
372
+ for(const serviceDefinition of services.serviceDefinitions) {
373
+ await applyChanges(serviceDefinition)
374
+ }
375
+ } else {
376
+ const service = services.serviceDefinitions.find(s => s.name === argv.service)
377
+ if(service) {
378
+ await applyChanges(service)
379
+ } else {
380
+ console.error("Service", argv.service, "not found")
381
+ }
382
+ }
383
+ process.exit(0)
384
+ }
385
+
333
386
  export async function describe(argv) {
334
387
  if(globalServicesConfig) argv.services = globalServicesConfig
335
388
  const services = new Services(argv.services)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@live-change/cli",
3
- "version": "0.9.95",
3
+ "version": "0.9.96",
4
4
  "description": "Live Change Framework - command line interface",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -25,12 +25,12 @@
25
25
  "type": "module",
26
26
  "homepage": "https://github.com/live-change/live-change-stack",
27
27
  "dependencies": {
28
- "@live-change/dao": "^0.9.95",
29
- "@live-change/dao-sockjs": "^0.9.95",
30
- "@live-change/dao-websocket": "^0.9.95",
31
- "@live-change/db-server": "^0.9.95",
32
- "@live-change/framework": "^0.9.95",
33
- "@live-change/server": "^0.9.95",
28
+ "@live-change/dao": "^0.9.96",
29
+ "@live-change/dao-sockjs": "^0.9.96",
30
+ "@live-change/dao-websocket": "^0.9.96",
31
+ "@live-change/db-server": "^0.9.96",
32
+ "@live-change/framework": "^0.9.96",
33
+ "@live-change/server": "^0.9.96",
34
34
  "dotenv": "^16.4.4",
35
35
  "express": "^4.18.2",
36
36
  "http-proxy-middleware": "2.0.6",
@@ -40,5 +40,5 @@
40
40
  "websocket": "^1.0.34",
41
41
  "yargs": "^17.7.2"
42
42
  },
43
- "gitHead": "cf88c48885ac39d5620129d659bfe192bf529c55"
43
+ "gitHead": "2cf1a814dac25095e89760ea62e0f207fb8c7cfa"
44
44
  }