@backtest-kit/ui 7.7.0 → 8.0.0
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/README.md +254 -254
- package/build/index.cjs +309 -6
- package/build/index.mjs +309 -6
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/ace.js +21337 -21337
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/mode-javascript.js +797 -797
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-chrome.js +137 -137
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/theme-twilight.js +115 -115
- package/build/modules/frontend/build/3rdparty/ace_1.4.12/worker-javascript.js +15012 -15012
- package/build/modules/frontend/build/3rdparty/qfchart_0.8.7/echarts.min.js +45 -45
- package/build/modules/frontend/build/assets/{Article-Z1gwQi4C.js → Article-Jdmz7aZ2.js} +1 -1
- package/build/modules/frontend/build/assets/{Background-DS1gKl45.js → Background-EK9k_h9v.js} +1 -1
- package/build/modules/frontend/build/assets/{IconPhoto-BitDk5sL.js → IconPhoto-CDjyp9zD.js} +1 -1
- package/build/modules/frontend/build/assets/{KeyboardArrowLeft-BT0IHVDD.js → KeyboardArrowLeft-Dr0dCIxL.js} +1 -1
- package/build/modules/frontend/build/assets/PictureAsPdfOutlined-HbiH_Q-c.js +1 -0
- package/build/modules/frontend/build/assets/{Refresh-BgupECvn.js → Refresh-B8TqdmHB.js} +1 -1
- package/build/modules/frontend/build/assets/emitters-CSLwhjBD.js +1 -0
- package/build/modules/frontend/build/assets/hasRouteMatch-CikI4OQa.js +1 -0
- package/build/modules/frontend/build/assets/{html2canvas-CxpxaxUC.js → html2canvas-DljqBlXP.js} +1 -1
- package/build/modules/frontend/build/assets/index-0QTAHHmG.js +1 -0
- package/build/modules/frontend/build/assets/{index-C4dzv30q.js → index-BdVXoDcb.js} +1 -1
- package/build/modules/frontend/build/assets/index-Bg-hgDXg.js +1 -0
- package/build/modules/frontend/build/assets/{index-CnRuFJIf.js → index-CJY9g0ao.js} +1 -1
- package/build/modules/frontend/build/assets/index-CtMweBSG.js +1 -0
- package/build/modules/frontend/build/assets/{index-nfZ8sdZp.js → index-DP0KiPHM.js} +1 -1
- package/build/modules/frontend/build/assets/{index-DzrwP4k5.js → index-Dj5yCZBM.js} +56 -56
- package/build/modules/frontend/build/assets/index-DpvQhidl.js +1 -0
- package/build/modules/frontend/build/assets/{index-9YHmY3Zv.js → index-HAAb1Hoc.js} +1 -1
- package/build/modules/frontend/build/assets/index-Qr2GaVV1.js +1 -0
- package/build/modules/frontend/build/assets/index-VbqABn7v.js +1 -0
- package/build/modules/frontend/build/assets/index-cETv4rVS.js +1 -0
- package/build/modules/frontend/build/assets/index-dcGK7g_Z.js +1 -0
- package/build/modules/frontend/build/assets/{index.es-Du6U2Hyj.js → index.es-BNKwZTfP.js} +1 -1
- package/build/modules/frontend/build/assets/{markdownit-SQF1Xc8y.js → markdownit-BHwoI8cd.js} +1 -1
- package/build/modules/frontend/build/index.html +87 -87
- package/build/modules/frontend/build/manifest.json +23 -23
- package/package.json +118 -118
- package/types.d.ts +28 -0
- package/build/modules/frontend/build/assets/emitters-BJfdDGbd.js +0 -1
- package/build/modules/frontend/build/assets/hasRouteMatch-CcXyiBjV.js +0 -1
- package/build/modules/frontend/build/assets/index-1kyziIc7.js +0 -1
- package/build/modules/frontend/build/assets/index-3ZYgMfYi.js +0 -1
- package/build/modules/frontend/build/assets/index-BR0aHfoe.js +0 -1
- package/build/modules/frontend/build/assets/index-Bg2qm7TJ.js +0 -1
- package/build/modules/frontend/build/assets/index-C8Wdopwt.js +0 -1
- package/build/modules/frontend/build/assets/index-CWErSuod.js +0 -1
- package/build/modules/frontend/build/assets/index-J3hGIAw0.js +0 -1
package/build/index.mjs
CHANGED
|
@@ -17,6 +17,8 @@ import { existsSync } from 'fs';
|
|
|
17
17
|
const CC_WWWROOT_PATH = process.env.CC_WWWROOT_PATH || "";
|
|
18
18
|
const CC_WWWROOT_HOST = process.env.CC_WWWROOT_HOST || "0.0.0.0";
|
|
19
19
|
const CC_WWWROOT_PORT = parseInt(process.env.CC_WWWROOT_PORT) || 60050;
|
|
20
|
+
const CC_TELEGRAM_CHANNEL = process.env.CC_TELEGRAM_CHANNEL || "";
|
|
21
|
+
const CC_QUICKCHART_HOST = process.env.CC_QUICKCHART_HOST || "";
|
|
20
22
|
const CC_ENABLE_MOCK = !!parseInt(process.env.CC_ENABLE_MOCK) || false;
|
|
21
23
|
|
|
22
24
|
const serveSubject = new BehaviorSubject();
|
|
@@ -76,6 +78,8 @@ const mockServices$1 = {
|
|
|
76
78
|
explorerMockService: Symbol("explorerMockService"),
|
|
77
79
|
signalMockService: Symbol("signalMockService"),
|
|
78
80
|
heatMockService: Symbol("heatMockService"),
|
|
81
|
+
performanceMockService: Symbol("performanceMockService"),
|
|
82
|
+
environmentMockService: Symbol("environmentMockService"),
|
|
79
83
|
};
|
|
80
84
|
const viewServices$1 = {
|
|
81
85
|
notificationViewService: Symbol("notificationViewService"),
|
|
@@ -87,6 +91,8 @@ const viewServices$1 = {
|
|
|
87
91
|
explorerViewService: Symbol("explorerViewService"),
|
|
88
92
|
signalViewService: Symbol("signalViewService"),
|
|
89
93
|
heatViewService: Symbol("heatViewService"),
|
|
94
|
+
performanceViewService: Symbol("performanceViewService"),
|
|
95
|
+
environmentViewService: Symbol("environmentViewService"),
|
|
90
96
|
};
|
|
91
97
|
const TYPES = {
|
|
92
98
|
...baseServices$1,
|
|
@@ -767,14 +773,14 @@ class SignalMockService {
|
|
|
767
773
|
}
|
|
768
774
|
}
|
|
769
775
|
|
|
770
|
-
const MOCK_DATA_PATH = "./mock/heat.json";
|
|
771
|
-
const MOCK_REPORT_PATH = "./mock/heat-report.md";
|
|
776
|
+
const MOCK_DATA_PATH$2 = "./mock/heat.json";
|
|
777
|
+
const MOCK_REPORT_PATH$1 = "./mock/heat-report.md";
|
|
772
778
|
const READ_HEAT_DATA_FN = singleshot(async () => {
|
|
773
|
-
const data = await fs.readFile(MOCK_DATA_PATH, "utf-8");
|
|
779
|
+
const data = await fs.readFile(MOCK_DATA_PATH$2, "utf-8");
|
|
774
780
|
return JSON.parse(data);
|
|
775
781
|
});
|
|
776
782
|
const READ_HEAT_REPORT_FN = singleshot(async () => {
|
|
777
|
-
return await fs.readFile(MOCK_REPORT_PATH, "utf-8");
|
|
783
|
+
return await fs.readFile(MOCK_REPORT_PATH$1, "utf-8");
|
|
778
784
|
});
|
|
779
785
|
class HeatMockService {
|
|
780
786
|
constructor() {
|
|
@@ -1215,7 +1221,7 @@ class StatusViewService {
|
|
|
1215
1221
|
portfolioTotalPnl: currentHeat.portfolioTotalPnl,
|
|
1216
1222
|
portfolioSharpeRatio: currentHeat.portfolioSharpeRatio,
|
|
1217
1223
|
portfolioTotalTrades: currentHeat.portfolioTotalTrades,
|
|
1218
|
-
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades }) => ({
|
|
1224
|
+
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades, sortinoRatio, calmarRatio, recoveryFactor }) => ({
|
|
1219
1225
|
symbol,
|
|
1220
1226
|
totalPnl,
|
|
1221
1227
|
winRate,
|
|
@@ -1223,6 +1229,9 @@ class StatusViewService {
|
|
|
1223
1229
|
maxDrawdown,
|
|
1224
1230
|
expectancy,
|
|
1225
1231
|
totalTrades,
|
|
1232
|
+
sortinoRatio,
|
|
1233
|
+
calmarRatio,
|
|
1234
|
+
recoveryFactor,
|
|
1226
1235
|
})),
|
|
1227
1236
|
backtest: true,
|
|
1228
1237
|
};
|
|
@@ -1245,7 +1254,7 @@ class StatusViewService {
|
|
|
1245
1254
|
portfolioTotalPnl: currentHeat.portfolioTotalPnl,
|
|
1246
1255
|
portfolioSharpeRatio: currentHeat.portfolioSharpeRatio,
|
|
1247
1256
|
portfolioTotalTrades: currentHeat.portfolioTotalTrades,
|
|
1248
|
-
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades }) => ({
|
|
1257
|
+
symbols: currentHeat.symbols.map(({ symbol, totalPnl, winRate, profitFactor, maxDrawdown, expectancy, totalTrades, sortinoRatio, calmarRatio, recoveryFactor }) => ({
|
|
1249
1258
|
symbol,
|
|
1250
1259
|
totalPnl,
|
|
1251
1260
|
winRate,
|
|
@@ -1253,6 +1262,9 @@ class StatusViewService {
|
|
|
1253
1262
|
maxDrawdown,
|
|
1254
1263
|
expectancy,
|
|
1255
1264
|
totalTrades,
|
|
1265
|
+
sortinoRatio,
|
|
1266
|
+
calmarRatio,
|
|
1267
|
+
recoveryFactor,
|
|
1256
1268
|
})),
|
|
1257
1269
|
backtest: false,
|
|
1258
1270
|
};
|
|
@@ -1833,6 +1845,117 @@ class LiveMetaService {
|
|
|
1833
1845
|
}
|
|
1834
1846
|
}
|
|
1835
1847
|
|
|
1848
|
+
const MOCK_DATA_PATH$1 = "./mock/performance.json";
|
|
1849
|
+
const MOCK_REPORT_PATH = "./mock/performance-report.md";
|
|
1850
|
+
const READ_PERFORMANCE_DATA_FN = singleshot(async () => {
|
|
1851
|
+
const data = await fs.readFile(MOCK_DATA_PATH$1, "utf-8");
|
|
1852
|
+
return JSON.parse(data);
|
|
1853
|
+
});
|
|
1854
|
+
const READ_PERFORMANCE_REPORT_FN = singleshot(async () => {
|
|
1855
|
+
return await fs.readFile(MOCK_REPORT_PATH, "utf-8");
|
|
1856
|
+
});
|
|
1857
|
+
class PerformanceMockService {
|
|
1858
|
+
constructor() {
|
|
1859
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1860
|
+
this.getPerformanceData = async () => {
|
|
1861
|
+
this.loggerService.log("performanceMockService getPerformanceData");
|
|
1862
|
+
return await READ_PERFORMANCE_DATA_FN();
|
|
1863
|
+
};
|
|
1864
|
+
this.getPerformanceReport = async () => {
|
|
1865
|
+
this.loggerService.log("performanceMockService getPerformanceReport");
|
|
1866
|
+
return await READ_PERFORMANCE_REPORT_FN();
|
|
1867
|
+
};
|
|
1868
|
+
}
|
|
1869
|
+
}
|
|
1870
|
+
|
|
1871
|
+
const MOCK_DATA_PATH = "./mock/environment.json";
|
|
1872
|
+
const READ_ENVIRONMENT_DATA_FN = singleshot(async () => {
|
|
1873
|
+
const data = await fs.readFile(MOCK_DATA_PATH, "utf-8");
|
|
1874
|
+
return JSON.parse(data);
|
|
1875
|
+
});
|
|
1876
|
+
class EnvironmentMockService {
|
|
1877
|
+
constructor() {
|
|
1878
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1879
|
+
this.getEnvironmentData = async () => {
|
|
1880
|
+
this.loggerService.log("environmentMockService getEnvironmentData");
|
|
1881
|
+
return await READ_ENVIRONMENT_DATA_FN();
|
|
1882
|
+
};
|
|
1883
|
+
}
|
|
1884
|
+
}
|
|
1885
|
+
|
|
1886
|
+
class PerformanceViewService {
|
|
1887
|
+
constructor() {
|
|
1888
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1889
|
+
this.performanceMockService = inject(TYPES.performanceMockService);
|
|
1890
|
+
this.getPerformanceData = async () => {
|
|
1891
|
+
this.loggerService.log("performanceViewService getPerformanceData");
|
|
1892
|
+
if (CC_ENABLE_MOCK) {
|
|
1893
|
+
return await this.performanceMockService.getPerformanceData();
|
|
1894
|
+
}
|
|
1895
|
+
const [backtestItem] = await Backtest.list();
|
|
1896
|
+
const [liveItem] = await Live.list();
|
|
1897
|
+
if (backtestItem) {
|
|
1898
|
+
return await Performance.getData(backtestItem.symbol, {
|
|
1899
|
+
strategyName: backtestItem.strategyName,
|
|
1900
|
+
exchangeName: backtestItem.exchangeName,
|
|
1901
|
+
frameName: backtestItem.frameName,
|
|
1902
|
+
}, true);
|
|
1903
|
+
}
|
|
1904
|
+
if (liveItem) {
|
|
1905
|
+
return await Performance.getData(liveItem.symbol, {
|
|
1906
|
+
strategyName: liveItem.strategyName,
|
|
1907
|
+
exchangeName: liveItem.exchangeName,
|
|
1908
|
+
frameName: "",
|
|
1909
|
+
}, false);
|
|
1910
|
+
}
|
|
1911
|
+
return null;
|
|
1912
|
+
};
|
|
1913
|
+
this.getPerformanceReport = async () => {
|
|
1914
|
+
this.loggerService.log("performanceViewService getPerformanceReport");
|
|
1915
|
+
if (CC_ENABLE_MOCK) {
|
|
1916
|
+
return await this.performanceMockService.getPerformanceReport();
|
|
1917
|
+
}
|
|
1918
|
+
const [backtestItem] = await Backtest.list();
|
|
1919
|
+
const [liveItem] = await Live.list();
|
|
1920
|
+
if (backtestItem) {
|
|
1921
|
+
return await Performance.getReport(backtestItem.symbol, {
|
|
1922
|
+
strategyName: backtestItem.strategyName,
|
|
1923
|
+
exchangeName: backtestItem.exchangeName,
|
|
1924
|
+
frameName: backtestItem.frameName,
|
|
1925
|
+
}, true);
|
|
1926
|
+
}
|
|
1927
|
+
if (liveItem) {
|
|
1928
|
+
return await Performance.getReport(liveItem.symbol, {
|
|
1929
|
+
strategyName: liveItem.strategyName,
|
|
1930
|
+
exchangeName: liveItem.exchangeName,
|
|
1931
|
+
frameName: "",
|
|
1932
|
+
}, false);
|
|
1933
|
+
}
|
|
1934
|
+
return null;
|
|
1935
|
+
};
|
|
1936
|
+
}
|
|
1937
|
+
}
|
|
1938
|
+
|
|
1939
|
+
class EnvironmentViewService {
|
|
1940
|
+
constructor() {
|
|
1941
|
+
this.loggerService = inject(TYPES.loggerService);
|
|
1942
|
+
this.enviromentMockService = inject(TYPES.environmentMockService);
|
|
1943
|
+
this.getEnvironmentData = async () => {
|
|
1944
|
+
this.loggerService.log("environmentViewService getEnvironmentData");
|
|
1945
|
+
if (CC_ENABLE_MOCK) {
|
|
1946
|
+
return await this.enviromentMockService.getEnvironmentData();
|
|
1947
|
+
}
|
|
1948
|
+
return {
|
|
1949
|
+
quickchart_host: CC_QUICKCHART_HOST,
|
|
1950
|
+
telegram_channel: CC_TELEGRAM_CHANNEL,
|
|
1951
|
+
wwwroot_host: CC_WWWROOT_HOST,
|
|
1952
|
+
wwwroot_path: CC_WWWROOT_PATH,
|
|
1953
|
+
wwwroot_port: CC_WWWROOT_PORT,
|
|
1954
|
+
};
|
|
1955
|
+
};
|
|
1956
|
+
}
|
|
1957
|
+
}
|
|
1958
|
+
|
|
1836
1959
|
{
|
|
1837
1960
|
provide(TYPES.loggerService, () => new LoggerService());
|
|
1838
1961
|
provide(TYPES.exchangeService, () => new ExchangeService());
|
|
@@ -1856,6 +1979,8 @@ class LiveMetaService {
|
|
|
1856
1979
|
provide(TYPES.explorerMockService, () => new ExplorerMockService());
|
|
1857
1980
|
provide(TYPES.signalMockService, () => new SignalMockService());
|
|
1858
1981
|
provide(TYPES.heatMockService, () => new HeatMockService());
|
|
1982
|
+
provide(TYPES.performanceMockService, () => new PerformanceMockService());
|
|
1983
|
+
provide(TYPES.environmentMockService, () => new EnvironmentMockService());
|
|
1859
1984
|
}
|
|
1860
1985
|
{
|
|
1861
1986
|
provide(TYPES.notificationViewService, () => new NotificationViewService());
|
|
@@ -1867,6 +1992,8 @@ class LiveMetaService {
|
|
|
1867
1992
|
provide(TYPES.explorerViewService, () => new ExplorerViewService());
|
|
1868
1993
|
provide(TYPES.signalViewService, () => new SignalViewService());
|
|
1869
1994
|
provide(TYPES.heatViewService, () => new HeatViewService());
|
|
1995
|
+
provide(TYPES.performanceViewService, () => new PerformanceViewService());
|
|
1996
|
+
provide(TYPES.environmentViewService, () => new EnvironmentViewService());
|
|
1870
1997
|
}
|
|
1871
1998
|
|
|
1872
1999
|
const baseServices = {
|
|
@@ -1892,6 +2019,8 @@ const mockServices = {
|
|
|
1892
2019
|
explorerMockService: inject(TYPES.explorerMockService),
|
|
1893
2020
|
signalMockService: inject(TYPES.signalMockService),
|
|
1894
2021
|
heatMockService: inject(TYPES.heatMockService),
|
|
2022
|
+
performanceMockService: inject(TYPES.performanceMockService),
|
|
2023
|
+
environmentMockService: inject(TYPES.environmentMockService),
|
|
1895
2024
|
};
|
|
1896
2025
|
const viewServices = {
|
|
1897
2026
|
notificationViewService: inject(TYPES.notificationViewService),
|
|
@@ -1903,6 +2032,8 @@ const viewServices = {
|
|
|
1903
2032
|
explorerViewService: inject(TYPES.explorerViewService),
|
|
1904
2033
|
signalViewService: inject(TYPES.signalViewService),
|
|
1905
2034
|
heatViewService: inject(TYPES.heatViewService),
|
|
2035
|
+
performanceViewService: inject(TYPES.performanceViewService),
|
|
2036
|
+
environmentViewService: inject(TYPES.environmentViewService),
|
|
1906
2037
|
};
|
|
1907
2038
|
const ioc = {
|
|
1908
2039
|
...baseServices,
|
|
@@ -2527,6 +2658,92 @@ router$a.post("/api/v1/mock/status_info", async (req, res) => {
|
|
|
2527
2658
|
});
|
|
2528
2659
|
}
|
|
2529
2660
|
});
|
|
2661
|
+
// PerformanceMockService endpoints
|
|
2662
|
+
router$a.post("/api/v1/mock/performance_data", async (req, res) => {
|
|
2663
|
+
try {
|
|
2664
|
+
const request = await micro.json(req);
|
|
2665
|
+
const { requestId, serviceName } = request;
|
|
2666
|
+
const data = await ioc.performanceMockService.getPerformanceData();
|
|
2667
|
+
const result = {
|
|
2668
|
+
data,
|
|
2669
|
+
status: "ok",
|
|
2670
|
+
error: "",
|
|
2671
|
+
requestId,
|
|
2672
|
+
serviceName,
|
|
2673
|
+
};
|
|
2674
|
+
ioc.loggerService.log("/api/v1/mock/performance_data ok", {
|
|
2675
|
+
request,
|
|
2676
|
+
result: omit(result, "data"),
|
|
2677
|
+
});
|
|
2678
|
+
return await micro.send(res, 200, result);
|
|
2679
|
+
}
|
|
2680
|
+
catch (error) {
|
|
2681
|
+
ioc.loggerService.log("/api/v1/mock/performance_data error", {
|
|
2682
|
+
error: errorData(error),
|
|
2683
|
+
});
|
|
2684
|
+
return await micro.send(res, 200, {
|
|
2685
|
+
status: "error",
|
|
2686
|
+
error: getErrorMessage(error),
|
|
2687
|
+
});
|
|
2688
|
+
}
|
|
2689
|
+
});
|
|
2690
|
+
router$a.post("/api/v1/mock/performance_report", async (req, res) => {
|
|
2691
|
+
try {
|
|
2692
|
+
const request = await micro.json(req);
|
|
2693
|
+
const { requestId, serviceName } = request;
|
|
2694
|
+
const data = await ioc.performanceMockService.getPerformanceReport();
|
|
2695
|
+
const result = {
|
|
2696
|
+
data,
|
|
2697
|
+
status: "ok",
|
|
2698
|
+
error: "",
|
|
2699
|
+
requestId,
|
|
2700
|
+
serviceName,
|
|
2701
|
+
};
|
|
2702
|
+
ioc.loggerService.log("/api/v1/mock/performance_report ok", {
|
|
2703
|
+
request,
|
|
2704
|
+
result: omit(result, "data"),
|
|
2705
|
+
});
|
|
2706
|
+
return await micro.send(res, 200, result);
|
|
2707
|
+
}
|
|
2708
|
+
catch (error) {
|
|
2709
|
+
ioc.loggerService.log("/api/v1/mock/performance_report error", {
|
|
2710
|
+
error: errorData(error),
|
|
2711
|
+
});
|
|
2712
|
+
return await micro.send(res, 200, {
|
|
2713
|
+
status: "error",
|
|
2714
|
+
error: getErrorMessage(error),
|
|
2715
|
+
});
|
|
2716
|
+
}
|
|
2717
|
+
});
|
|
2718
|
+
// EnvironmentMockService endpoints
|
|
2719
|
+
router$a.post("/api/v1/mock/environment_data", async (req, res) => {
|
|
2720
|
+
try {
|
|
2721
|
+
const request = await micro.json(req);
|
|
2722
|
+
const { requestId, serviceName } = request;
|
|
2723
|
+
const data = await ioc.environmentMockService.getEnvironmentData();
|
|
2724
|
+
const result = {
|
|
2725
|
+
data,
|
|
2726
|
+
status: "ok",
|
|
2727
|
+
error: "",
|
|
2728
|
+
requestId,
|
|
2729
|
+
serviceName,
|
|
2730
|
+
};
|
|
2731
|
+
ioc.loggerService.log("/api/v1/mock/environment_data ok", {
|
|
2732
|
+
request,
|
|
2733
|
+
result: omit(result, "data"),
|
|
2734
|
+
});
|
|
2735
|
+
return await micro.send(res, 200, result);
|
|
2736
|
+
}
|
|
2737
|
+
catch (error) {
|
|
2738
|
+
ioc.loggerService.log("/api/v1/mock/environment_data error", {
|
|
2739
|
+
error: errorData(error),
|
|
2740
|
+
});
|
|
2741
|
+
return await micro.send(res, 200, {
|
|
2742
|
+
status: "error",
|
|
2743
|
+
error: getErrorMessage(error),
|
|
2744
|
+
});
|
|
2745
|
+
}
|
|
2746
|
+
});
|
|
2530
2747
|
|
|
2531
2748
|
const router$9 = Router({
|
|
2532
2749
|
params: true,
|
|
@@ -3142,6 +3359,92 @@ router$9.post("/api/v1/view/status_info", async (req, res) => {
|
|
|
3142
3359
|
});
|
|
3143
3360
|
}
|
|
3144
3361
|
});
|
|
3362
|
+
// PerformanceViewService endpoints
|
|
3363
|
+
router$9.post("/api/v1/view/performance_data", async (req, res) => {
|
|
3364
|
+
try {
|
|
3365
|
+
const request = await micro.json(req);
|
|
3366
|
+
const { requestId, serviceName } = request;
|
|
3367
|
+
const data = await ioc.performanceViewService.getPerformanceData();
|
|
3368
|
+
const result = {
|
|
3369
|
+
data,
|
|
3370
|
+
status: "ok",
|
|
3371
|
+
error: "",
|
|
3372
|
+
requestId,
|
|
3373
|
+
serviceName,
|
|
3374
|
+
};
|
|
3375
|
+
ioc.loggerService.log("/api/v1/view/performance_data ok", {
|
|
3376
|
+
request,
|
|
3377
|
+
result: omit(result, "data"),
|
|
3378
|
+
});
|
|
3379
|
+
return await micro.send(res, 200, result);
|
|
3380
|
+
}
|
|
3381
|
+
catch (error) {
|
|
3382
|
+
ioc.loggerService.log("/api/v1/view/performance_data error", {
|
|
3383
|
+
error: errorData(error),
|
|
3384
|
+
});
|
|
3385
|
+
return await micro.send(res, 200, {
|
|
3386
|
+
status: "error",
|
|
3387
|
+
error: getErrorMessage(error),
|
|
3388
|
+
});
|
|
3389
|
+
}
|
|
3390
|
+
});
|
|
3391
|
+
router$9.post("/api/v1/view/performance_report", async (req, res) => {
|
|
3392
|
+
try {
|
|
3393
|
+
const request = await micro.json(req);
|
|
3394
|
+
const { requestId, serviceName } = request;
|
|
3395
|
+
const data = await ioc.performanceViewService.getPerformanceReport();
|
|
3396
|
+
const result = {
|
|
3397
|
+
data,
|
|
3398
|
+
status: "ok",
|
|
3399
|
+
error: "",
|
|
3400
|
+
requestId,
|
|
3401
|
+
serviceName,
|
|
3402
|
+
};
|
|
3403
|
+
ioc.loggerService.log("/api/v1/view/performance_report ok", {
|
|
3404
|
+
request,
|
|
3405
|
+
result: omit(result, "data"),
|
|
3406
|
+
});
|
|
3407
|
+
return await micro.send(res, 200, result);
|
|
3408
|
+
}
|
|
3409
|
+
catch (error) {
|
|
3410
|
+
ioc.loggerService.log("/api/v1/view/performance_report error", {
|
|
3411
|
+
error: errorData(error),
|
|
3412
|
+
});
|
|
3413
|
+
return await micro.send(res, 200, {
|
|
3414
|
+
status: "error",
|
|
3415
|
+
error: getErrorMessage(error),
|
|
3416
|
+
});
|
|
3417
|
+
}
|
|
3418
|
+
});
|
|
3419
|
+
// EnvironmentViewService endpoints
|
|
3420
|
+
router$9.post("/api/v1/view/environment_data", async (req, res) => {
|
|
3421
|
+
try {
|
|
3422
|
+
const request = await micro.json(req);
|
|
3423
|
+
const { requestId, serviceName } = request;
|
|
3424
|
+
const data = await ioc.environmentViewService.getEnvironmentData();
|
|
3425
|
+
const result = {
|
|
3426
|
+
data,
|
|
3427
|
+
status: "ok",
|
|
3428
|
+
error: "",
|
|
3429
|
+
requestId,
|
|
3430
|
+
serviceName,
|
|
3431
|
+
};
|
|
3432
|
+
ioc.loggerService.log("/api/v1/view/environment_data ok", {
|
|
3433
|
+
request,
|
|
3434
|
+
result: omit(result, "data"),
|
|
3435
|
+
});
|
|
3436
|
+
return await micro.send(res, 200, result);
|
|
3437
|
+
}
|
|
3438
|
+
catch (error) {
|
|
3439
|
+
ioc.loggerService.log("/api/v1/view/environment_data error", {
|
|
3440
|
+
error: errorData(error),
|
|
3441
|
+
});
|
|
3442
|
+
return await micro.send(res, 200, {
|
|
3443
|
+
status: "error",
|
|
3444
|
+
error: getErrorMessage(error),
|
|
3445
|
+
});
|
|
3446
|
+
}
|
|
3447
|
+
});
|
|
3145
3448
|
|
|
3146
3449
|
const require$1 = createRequire(import.meta.url);
|
|
3147
3450
|
function getModulesPath() {
|