@mostajs/orm-cli 0.5.13 → 0.5.15

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/bin/mostajs.sh +43 -1
  2. package/package.json +1 -1
package/bin/mostajs.sh CHANGED
@@ -1498,6 +1498,8 @@ menu_services() {
1498
1498
  echo -e " ${CYAN}3${RESET}) Stop all tracked services"
1499
1499
  echo -e " ${CYAN}4${RESET}) Status"
1500
1500
  echo -e " ${CYAN}5${RESET}) Show access URLs"
1501
+ echo -e " ${CYAN}6${RESET}) ${BOLD}Setup services${RESET} — scaffold replicator + monitor + config.env + dev:all"
1502
+ echo -e " ${CYAN}7${RESET}) Start all (dev + replicator + monitor via ${DIM}npm run dev:all${RESET})"
1501
1503
  echo
1502
1504
  echo -e " ${CYAN}b${RESET}) Back"
1503
1505
  echo
@@ -1508,6 +1510,8 @@ menu_services() {
1508
1510
  3) svc_stop_all;;
1509
1511
  4) svc_status;;
1510
1512
  5) show_urls;;
1513
+ 6) action_setup_services;;
1514
+ 7) svc_start_dev_all;;
1511
1515
  b|B) return;;
1512
1516
  *) warn Unknown;;
1513
1517
  esac
@@ -1515,6 +1519,38 @@ menu_services() {
1515
1519
  menu_services
1516
1520
  }
1517
1521
 
1522
+ action_setup_services() {
1523
+ header
1524
+ echo -e "${BOLD}${MAGENTA}▶ Setup services (scaffold + config)${RESET}"
1525
+ echo
1526
+ echo -e " This will :"
1527
+ echo -e " 1. Scaffold ${CYAN}services/replicator.mjs${RESET} + ${CYAN}services/monitor.mjs${RESET}"
1528
+ echo -e " 2. Patch ${CYAN}package.json${RESET} scripts (replicator / monitor / dev:all)"
1529
+ echo -e " 3. Write ${CYAN}.mostajs/config.env${RESET} (MONITOR_PORT, REPLICATOR_INTERVAL_MS)"
1530
+ echo -e " 4. Create ${CYAN}.env${RESET} if missing"
1531
+ echo -e " 5. Install ${CYAN}concurrently${RESET} if missing"
1532
+ echo
1533
+ if ! confirm "Proceed?"; then return; fi
1534
+
1535
+ # Reuse the replicator scaffold action (menu r → s) which does all of the above
1536
+ action_rep_scaffold_services
1537
+ }
1538
+
1539
+ svc_start_dev_all() {
1540
+ cd "$PROJECT_ROOT" || return
1541
+ if [[ ! -f package.json ]]; then err "No package.json"; return; fi
1542
+ local has_devall
1543
+ has_devall=$(node -e "try{const p=JSON.parse(require('fs').readFileSync('package.json','utf8'));console.log(p.scripts?.['dev:all']?'yes':'no')}catch{console.log('no')}" 2>/dev/null)
1544
+ if [[ "$has_devall" != "yes" ]]; then
1545
+ warn "script 'dev:all' not found in package.json"
1546
+ info "Run menu 5 → 6 (Setup services) first to scaffold + patch."
1547
+ return
1548
+ fi
1549
+ info "Starting dev:all (logs → terminal, Ctrl+C to stop)"
1550
+ echo
1551
+ "$PKG_MANAGER" run dev:all
1552
+ }
1553
+
1518
1554
  svc_start_dev() {
1519
1555
  cd "$PROJECT_ROOT"
1520
1556
  if [[ ! -f package.json ]]; then err "No package.json"; return; fi
@@ -1970,7 +2006,13 @@ action_rep_scaffold_services() {
1970
2006
  };
1971
2007
  add('replicator', 'node services/replicator.mjs');
1972
2008
  add('monitor', 'node services/monitor.mjs');
1973
- add('dev:all', 'concurrently --kill-others-on-fail --names next,rep,mon -c blue,magenta,cyan \"npm:dev\" \"npm:replicator\" \"npm:monitor\"');
2009
+ // dev:all only include npm:dev if the project has a 'dev' script
2010
+ const hasDev = !!pkg.scripts.dev;
2011
+ if (hasDev) {
2012
+ add('dev:all', 'concurrently --kill-others-on-fail --names next,rep,mon -c blue,magenta,cyan \"npm:dev\" \"npm:replicator\" \"npm:monitor\"');
2013
+ } else {
2014
+ add('dev:all', 'concurrently --kill-others-on-fail --names rep,mon -c magenta,cyan \"npm:replicator\" \"npm:monitor\"');
2015
+ }
1974
2016
  fs.writeFileSync(path, JSON.stringify(pkg, null, 2) + '\n');
1975
2017
  " 2>&1 | sed 's/^/ /'
1976
2018
  fi
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mostajs/orm-cli",
3
- "version": "0.5.13",
3
+ "version": "0.5.15",
4
4
  "description": "Universal CLI to integrate @mostajs/orm into any project — one-shot `mostajs bootstrap` migrates a Prisma project (codemod + deps + schema convert + DDL) to 13 databases with zero code change.",
5
5
  "author": "Dr Hamid MADANI <drmdh@msn.com>",
6
6
  "license": "AGPL-3.0-or-later",