@nu-art/build-and-install 0.204.17 → 0.204.19

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nu-art/build-and-install",
3
- "version": "0.204.17",
3
+ "version": "0.204.19",
4
4
  "description": "",
5
5
  "keywords": [
6
6
  "TacB0sS",
package/phases/phases.js CHANGED
@@ -585,6 +585,7 @@ exports.Phase_CompileWatch = {
585
585
  });
586
586
  }
587
587
  };
588
+ // const runningAppsLogs = new RunningProcessLogs();
588
589
  let counter = 0;
589
590
  exports.Phase_Launch = {
590
591
  type: 'package',
@@ -594,21 +595,38 @@ exports.Phase_Launch = {
594
595
  filter: async (pkg) => { var _a; return !!((_a = pkg.name.match(new RegExp(params_1.RuntimeParams.launch))) === null || _a === void 0 ? void 0 : _a[0]) && (pkg.type === 'firebase-functions-app' || pkg.type === 'firebase-hosting-app'); },
595
596
  action: async (pkg) => {
596
597
  const projectScreen = ProjectScreen_1.MemKey_ProjectScreen.get();
598
+ // if (projectScreen.isEnabled()) {
599
+ // projectScreen.disable();
600
+ // runningAppsLogs.enable();
601
+ // }
602
+ const logClient = new ts_common_1.LogClient_MemBuffer(pkg.name);
603
+ logClient.setForTerminal();
604
+ logClient.setComposer((tag, level) => {
605
+ ts_common_1._logger_finalDate.setTime(Date.now() - ts_common_1._logger_timezoneOffset);
606
+ const date = ts_common_1._logger_finalDate.toISOString().replace(/T/, '_').replace(/Z/, '').substring(0, 23).split('_')[1];
607
+ return `${date} ${(0, ts_common_1._logger_getPrefix)(level)}: `;
608
+ });
609
+ logClient.setFilter((level, tag) => {
610
+ return tag === pkg.name;
611
+ });
597
612
  projectScreen.updateOrCreatePackage(pkg.name, 'Launching...');
598
613
  if (pkg.type === 'firebase-functions-app') {
599
614
  await (0, ts_common_1.sleep)(1000 * counter++);
600
615
  const allPorts = Array.from({ length: 10 }, (_, i) => `${pkg.envConfig.basePort + i}`);
601
616
  const command = nvm_1.NVM.createInteractiveCommando(basic_1.Cli_Basic)
617
+ .setUID(pkg.name)
602
618
  .cd(pkg.path)
603
619
  .append(`nvm use`)
604
620
  .append(`array=($(lsof -ti:${allPorts.join(',')}))`)
605
621
  .append(`((\${#array[@]} > 0)) && kill -9 "\${array[@]}"`);
606
622
  command.append(`firebase emulators:start --export-on-exit --import=.trash/data ${runInDebug ? `--inspect-functions ${pkg.envConfig.ssl}` : ''}`);
623
+ // runningAppsLogs.registerApp(pkg.name, logClient);
607
624
  return command
608
625
  .execute();
609
626
  }
610
627
  if (pkg.type === 'firebase-hosting-app')
611
628
  return nvm_1.NVM.createInteractiveCommando(basic_1.Cli_Basic)
629
+ .setUID(pkg.name)
612
630
  .cd(pkg.path)
613
631
  .append(`array=($(lsof -ti:${[pkg.envConfig.basePort - 1].join(',')}))`)
614
632
  .append(`((\${#array[@]} > 0)) && kill -9 "\${array[@]}"`)
@@ -17,6 +17,7 @@ export declare class ProjectScreen {
17
17
  private enabled;
18
18
  constructor(initialData: PackageStatus[]);
19
19
  enable(): void;
20
+ isEnabled(): boolean;
20
21
  disable(): void;
21
22
  renderScreen: () => void;
22
23
  endRun: () => void;
@@ -167,6 +167,9 @@ class ProjectScreen {
167
167
  align: 'left'
168
168
  });
169
169
  }
170
+ isEnabled() {
171
+ return this.enabled;
172
+ }
170
173
  disable() {
171
174
  this.enabled = false;
172
175
  if (!this.screen)
@@ -0,0 +1,14 @@
1
+ import { LogClient_MemBuffer } from '@nu-art/ts-common';
2
+ import { ConsoleScreen } from '@nu-art/commando/console/ConsoleScreen';
3
+ export declare class RunningProcessLogs extends ConsoleScreen<{
4
+ logs: {
5
+ key: string;
6
+ logClient: LogClient_MemBuffer;
7
+ }[];
8
+ }> {
9
+ constructor();
10
+ registerApp(appKey: string, logClient: LogClient_MemBuffer): void;
11
+ unregisterApp(appKey: string): void;
12
+ private recalculateWidgets;
13
+ protected render(): void;
14
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RunningProcessLogs = void 0;
4
+ const ts_common_1 = require("@nu-art/ts-common");
5
+ const ConsoleScreen_1 = require("@nu-art/commando/console/ConsoleScreen");
6
+ class RunningProcessLogs extends ConsoleScreen_1.ConsoleScreen {
7
+ constructor() {
8
+ super({
9
+ smartCSR: true,
10
+ title: 'Runtime-Logs',
11
+ keyBinding: [
12
+ {
13
+ keys: ['C-c'],
14
+ callback: () => process.exit(0)
15
+ }
16
+ ]
17
+ });
18
+ this.state = { logs: [] };
19
+ }
20
+ registerApp(appKey, logClient) {
21
+ const logs = this.state.logs;
22
+ const foundLog = logs.find(log => log.key === appKey);
23
+ if (foundLog)
24
+ throw new ts_common_1.BadImplementationException(`already have log for appkey: ${appKey}`);
25
+ logs.push({ key: appKey, logClient });
26
+ this.recalculateWidgets(logs);
27
+ logClient.setLogAppendedListener(() => {
28
+ this.render();
29
+ // might have a leak.. need to remove the listener at some point
30
+ });
31
+ this.setState({ logs });
32
+ }
33
+ unregisterApp(appKey) {
34
+ const foundLog = this.state.logs.find(log => log.key === appKey);
35
+ if (!foundLog)
36
+ throw new ts_common_1.BadImplementationException(`Could not find log for appkey: ${appKey}`);
37
+ const logs = this.state.logs;
38
+ (0, ts_common_1.removeItemFromArray)(logs, foundLog);
39
+ this.recalculateWidgets(logs);
40
+ this.setState({ logs });
41
+ }
42
+ recalculateWidgets(logs) {
43
+ this.clearScreen(false);
44
+ const totalApps = logs.length;
45
+ const fraction = 100 / totalApps;
46
+ logs.forEach((log, index) => {
47
+ const top = `${(index * fraction).toFixed(0)}%`;
48
+ const height = `${fraction.toFixed(0)}%`;
49
+ this.createWidget('log', {
50
+ top: top,
51
+ left: 0,
52
+ width: '100%',
53
+ height: height,
54
+ label: ` Log for ${log.key} `,
55
+ border: { type: 'line' },
56
+ scrollable: true,
57
+ scrollbar: {
58
+ ch: ' ',
59
+ track: {
60
+ bg: 'grey'
61
+ },
62
+ style: {
63
+ inverse: true
64
+ }
65
+ },
66
+ mouse: true
67
+ });
68
+ });
69
+ }
70
+ render() {
71
+ this.state.logs.forEach((log, i) => {
72
+ this.widgets[i].setContent(log.logClient.buffers[0]);
73
+ });
74
+ }
75
+ }
76
+ exports.RunningProcessLogs = RunningProcessLogs;
@@ -1,8 +0,0 @@
1
- export declare class Console_PackagesView {
2
- private title;
3
- private readonly screen;
4
- private readonly titleView;
5
- constructor(title: string);
6
- render: () => void;
7
- renderTitle(): void;
8
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.Console_PackagesView = void 0;
27
- // @ts-ignore
28
- const blessed = __importStar(require("neo-blessed"));
29
- class Console_PackagesView {
30
- // private readonly testBox1: blessed.Widgets.BoxElement;
31
- // private readonly testBox2: blessed.Widgets.BoxElement;
32
- // private readonly packageTable: blessed.Widgets.TableElement;
33
- constructor(title) {
34
- this.render = () => {
35
- this.renderTitle();
36
- this.screen.render();
37
- };
38
- this.title = title;
39
- this.screen = blessed.screen({
40
- smartCSR: true,
41
- title: 'Build and install',
42
- });
43
- // Create the UI components
44
- this.titleView = blessed.box({
45
- parent: this.screen,
46
- top: 1,
47
- left: 'center',
48
- width: '30%',
49
- height: 3,
50
- border: { type: 'line' },
51
- content: '',
52
- tags: true,
53
- style: {
54
- border: { fg: 'green' },
55
- fg: 'black',
56
- },
57
- valign: 'middle',
58
- align: 'center'
59
- });
60
- }
61
- renderTitle() {
62
- this.titleView.setContent(this.title);
63
- }
64
- }
65
- exports.Console_PackagesView = Console_PackagesView;