fdb2 1.0.5 → 1.0.6
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/bin/fdb2.js
CHANGED
|
@@ -74,7 +74,7 @@ async function startProject() {
|
|
|
74
74
|
console.log('Starting FDB2 project...');
|
|
75
75
|
|
|
76
76
|
// 检查 PID 文件是否存在,如果存在则说明服务器已经在运行
|
|
77
|
-
const pidFilePath = path.join(projectRoot, 'server.pid');
|
|
77
|
+
const pidFilePath = path.join(projectRoot, 'fdb2.server.pid');
|
|
78
78
|
if (fs.existsSync(pidFilePath)) {
|
|
79
79
|
try {
|
|
80
80
|
const pid = parseInt(fs.readFileSync(pidFilePath, 'utf8'));
|
|
@@ -148,7 +148,7 @@ function stopProject() {
|
|
|
148
148
|
console.log('Stopping FDB2 project...');
|
|
149
149
|
|
|
150
150
|
// 读取 PID 文件
|
|
151
|
-
const pidFilePath = path.join(projectRoot, 'server.pid');
|
|
151
|
+
const pidFilePath = path.join(projectRoot, 'fdb2.server.pid');
|
|
152
152
|
|
|
153
153
|
if (!fs.existsSync(pidFilePath)) {
|
|
154
154
|
console.log('No server process found (PID file not exists)');
|
|
@@ -196,7 +196,7 @@ function restartProject() {
|
|
|
196
196
|
console.log('Waiting for server process to stop...');
|
|
197
197
|
for (let i = 0; i < 10; i++) {
|
|
198
198
|
// 检查 PID 文件是否存在
|
|
199
|
-
const pidFilePath = path.join(projectRoot, 'server.pid');
|
|
199
|
+
const pidFilePath = path.join(projectRoot, 'fdb2.server.pid');
|
|
200
200
|
if (!fs.existsSync(pidFilePath)) {
|
|
201
201
|
break;
|
|
202
202
|
}
|
|
@@ -53,7 +53,7 @@ class ConnectionService {
|
|
|
53
53
|
*/
|
|
54
54
|
activeConnections = new Map();
|
|
55
55
|
constructor() {
|
|
56
|
-
const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.
|
|
56
|
+
const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.fdb2');
|
|
57
57
|
this.configPath = path.join(dataDir, 'connections.json');
|
|
58
58
|
}
|
|
59
59
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.service.js","sourceRoot":"","sources":["../../../server/service/connection.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,qCAA6D;AAE7D;;;GAGG;AACH,MAAa,iBAAiB;IAE5B;;;OAGG;IACc,UAAU,CAAS;IAEpC;;OAEG;IACK,iBAAiB,GAA4B,IAAI,GAAG,EAAE,CAAC;IAE/D;QACE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"connection.service.js","sourceRoot":"","sources":["../../../server/service/connection.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,qCAA6D;AAE7D;;;GAGG;AACH,MAAa,iBAAiB;IAE5B;;;OAGG;IACc,UAAU,CAAS;IAEpC;;OAEG;IACK,iBAAiB,GAA4B,IAAI,GAAG,EAAE,CAAC;IAE/D;QACE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;QACjF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpC,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAuB,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClC,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAA4B;QAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEnD,WAAW;QACX,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,aAAa;QACb,UAAU,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAClC,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,UAAU,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAClC,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAElF,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC7B,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QAExC,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAU,EAAE,OAAkC;QACnE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,SAAS;QACT,IAAI,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;YACjG,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QACD,aAAa;QACb,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;QAClF,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACxC,aAAa;QACb,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,EAAU;QAC/B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACnD,MAAM,mBAAmB,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAEvE,IAAI,mBAAmB,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,SAAS;QACT,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,UAA4B;QAC/C,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAChC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACtE,MAAM,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvC,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,QAAiB;QACrD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3C,aAAa;YACb,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,eAAe;gBACf,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrC,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;YACtC,UAAU;YACV,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACnE,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,gBAAgB,EAAE,OAAO,EAAE,CAAC;YACpC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,SAAS,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC;YACjD,CAAC;YACD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;QAED,sBAAsB;QACtB,MAAM,uBAAuB,GAAqB;YAChD,GAAG,gBAAgB;YACnB,QAAQ,EAAE,QAAQ,IAAI,gBAAgB,CAAC,QAAQ;SAChD,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,CAAC;QAC/E,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAE5C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,EAAU,EAAE,QAAiB;QACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;YACjD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC;QACD,gBAAgB;QAChB,IAAI,QAAQ,IAAI,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;YAChD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,wBAAwB,CAAC,YAAoB;QACjD,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvD,IAAI,GAAG,CAAC,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;gBAC/D,IAAI,CAAC;oBACH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;oBAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACtD,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,OAAO,EAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,uBAAuB,CAAC,gBAAkC;QACtE,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACnE,OAAO,IAAI,oBAAU,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC;IACxD,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,gBAAkC;QAC1D,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,gBAAgB,CAAC,IAAW;YAClC,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,KAAK;YACd,eAAe;YACf,KAAK,EAAE;gBACL,kBAAkB,EAAE,IAAI;aACzB;YACD,GAAG,gBAAgB,CAAC,OAAO;SAC5B,CAAC;QAEF,cAAc;QACd,QAAQ,gBAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAC5C,KAAK,QAAQ;gBACX,OAAO;oBACL,GAAG,WAAW;oBACd,IAAI,EAAE,QAAe;oBACrB,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;oBACnC,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,SAAS;oBACnB,QAAQ,EAAE,SAAS;iBACpB,CAAC;YACJ,KAAK,UAAU,CAAC;YAChB,KAAK,YAAY;gBACf,OAAO;oBACL,GAAG,WAAW;oBACd,IAAI,EAAE,UAAiB;oBACvB,GAAG,EAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,IAAI,KAAK;iBAC5C,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO;oBACL,GAAG,WAAW;oBACd,IAAI,EAAE,QAAe;oBACrB,aAAa,EAAE,GAAG,gBAAgB,CAAC,IAAI,IAAI,gBAAgB,CAAC,IAAI,IAAI,gBAAgB,CAAC,QAAQ,EAAE;oBAC/F,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,SAAS;oBACnB,KAAK,EAAE;wBACL,iBAAiB,EAAE,KAAK;wBACxB,OAAO,EAAE,EAAE;wBACX,OAAO,EAAE,CAAC;wBACV,aAAa,EAAE,CAAC;qBACjB;iBACF,CAAC;YACJ,KAAK,OAAO,CAAC;YACb,KAAK,WAAW;gBACd,OAAO;oBACL,GAAG,WAAW;oBACd,IAAI,EAAE,OAAc;oBACpB,OAAO,EAAE;wBACP,OAAO,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK;wBACnD,sBAAsB,EAAE,IAAI;qBAC7B;oBACD,KAAK,EAAE;wBACL,iBAAiB,EAAE,KAAK;wBACxB,cAAc,EAAE,KAAK;qBACtB;iBACF,CAAC;YACJ;gBACE,OAAO,WAAW,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAAC,WAA+B;QAC3D,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAClC,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,UAAU;QAChB,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;CACF;AA1UD,8CA0UC"}
|
|
@@ -22,7 +22,7 @@ export class ConnectionService {
|
|
|
22
22
|
private activeConnections: Map<string, DataSource> = new Map();
|
|
23
23
|
|
|
24
24
|
constructor() {
|
|
25
|
-
const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.
|
|
25
|
+
const dataDir = process.env.DB_TOOL_DATA_DIR || path.join(os.homedir(), '.fdb2');
|
|
26
26
|
this.configPath = path.join(dataDir, 'connections.json');
|
|
27
27
|
}
|
|
28
28
|
|
package/package.json
CHANGED
package/scripts/preinstall.js
CHANGED
|
@@ -1,38 +1,112 @@
|
|
|
1
1
|
const { execSync } = require('child_process');
|
|
2
2
|
const path = require('path');
|
|
3
3
|
const fs = require('fs');
|
|
4
|
+
const os = require('os');
|
|
4
5
|
|
|
5
6
|
console.log('Checking for running fdb2 instances...');
|
|
6
7
|
|
|
7
8
|
try {
|
|
8
|
-
|
|
9
|
-
const pidFilePath = path.join(projectRoot, 'server.pid');
|
|
9
|
+
let pid = null;
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
// 检查当前目录的 PID 文件
|
|
12
|
+
const currentDirPidPath = path.join(process.cwd(), 'fdb2.server.pid');
|
|
13
|
+
if (fs.existsSync(currentDirPidPath)) {
|
|
12
14
|
try {
|
|
13
|
-
|
|
15
|
+
pid = parseInt(fs.readFileSync(currentDirPidPath, 'utf8'));
|
|
14
16
|
process.kill(pid, 0);
|
|
15
17
|
console.log('Found running fdb2 instance with PID:', pid);
|
|
16
|
-
|
|
18
|
+
} catch (error) {
|
|
19
|
+
if (error.code !== 'ESRCH') {
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
17
24
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
// 如果没有找到,尝试从全局安装目录查找
|
|
26
|
+
if (!pid) {
|
|
27
|
+
try {
|
|
28
|
+
const globalPath = execSync('npm root -g', { encoding: 'utf8' }).trim();
|
|
29
|
+
const globalPidPath = path.join(globalPath, 'fdb2', 'fdb2.server.pid');
|
|
30
|
+
|
|
31
|
+
if (fs.existsSync(globalPidPath)) {
|
|
32
|
+
try {
|
|
33
|
+
pid = parseInt(fs.readFileSync(globalPidPath, 'utf8'));
|
|
34
|
+
process.kill(pid, 0);
|
|
35
|
+
console.log('Found running fdb2 instance with PID:', pid);
|
|
36
|
+
} catch (error) {
|
|
37
|
+
if (error.code !== 'ESRCH') {
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
26
41
|
}
|
|
27
42
|
} catch (error) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
43
|
+
// 忽略全局路径查找失败
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// 如果找到了运行中的进程,尝试停止它
|
|
48
|
+
if (pid) {
|
|
49
|
+
console.log('Stopping fdb2...');
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
if (os.platform() === 'win32') {
|
|
53
|
+
// Windows: 使用 taskkill
|
|
54
|
+
execSync(`taskkill /F /PID ${pid}`, { stdio: 'inherit' });
|
|
55
|
+
} else {
|
|
56
|
+
// Unix-like: 使用 kill
|
|
57
|
+
process.kill(pid, 'SIGTERM');
|
|
58
|
+
|
|
59
|
+
// 等待进程结束
|
|
60
|
+
let attempts = 0;
|
|
61
|
+
while (attempts < 10) {
|
|
62
|
+
try {
|
|
63
|
+
process.kill(pid, 0);
|
|
64
|
+
attempts++;
|
|
65
|
+
// 等待 100ms
|
|
66
|
+
Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 100);
|
|
67
|
+
} catch (error) {
|
|
68
|
+
if (error.code === 'ESRCH') {
|
|
69
|
+
// 进程已结束
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// 如果进程还在运行,强制终止
|
|
76
|
+
try {
|
|
77
|
+
process.kill(pid, 0);
|
|
78
|
+
process.kill(pid, 'SIGKILL');
|
|
79
|
+
} catch (error) {
|
|
80
|
+
if (error.code !== 'ESRCH') {
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
31
84
|
}
|
|
85
|
+
|
|
86
|
+
console.log('fdb2 stopped successfully');
|
|
87
|
+
} catch (stopError) {
|
|
88
|
+
console.warn('Failed to stop fdb2:', stopError.message);
|
|
89
|
+
console.warn('Please manually stop the fdb2 process before installation');
|
|
32
90
|
}
|
|
33
91
|
} else {
|
|
34
92
|
console.log('No running fdb2 instance found');
|
|
35
93
|
}
|
|
94
|
+
|
|
95
|
+
// 清理 PID 文件
|
|
96
|
+
if (fs.existsSync(currentDirPidPath)) {
|
|
97
|
+
fs.unlinkSync(currentDirPidPath);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
try {
|
|
101
|
+
const globalPath = execSync('npm root -g', { encoding: 'utf8' }).trim();
|
|
102
|
+
const globalPidPath = path.join(globalPath, 'fdb2', 'fdb2.server.pid');
|
|
103
|
+
if (fs.existsSync(globalPidPath)) {
|
|
104
|
+
fs.unlinkSync(globalPidPath);
|
|
105
|
+
}
|
|
106
|
+
} catch (error) {
|
|
107
|
+
// 忽略全局路径清理失败
|
|
108
|
+
}
|
|
109
|
+
|
|
36
110
|
} catch (error) {
|
|
37
111
|
console.warn('Pre-install check failed:', error.message);
|
|
38
112
|
}
|
package/server.js
CHANGED
|
@@ -122,7 +122,7 @@ const PORT = portFromArgs || process.env.PORT || 9800;
|
|
|
122
122
|
app.listen(PORT, () => {
|
|
123
123
|
|
|
124
124
|
// 将 PID 写入 PID 文件
|
|
125
|
-
const pidFilePath = path.join(__dirname, 'server.pid');
|
|
125
|
+
const pidFilePath = path.join(__dirname, 'fdb2.server.pid');
|
|
126
126
|
fs.writeFileSync(pidFilePath, process.pid.toString());
|
|
127
127
|
console.log(`PID ${process.pid} written to ${pidFilePath}`);
|
|
128
128
|
|