lifecycleion 0.0.3 → 0.0.5
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 +1 -1
- package/dist/lib/curly-brackets.cjs +14 -3
- package/dist/lib/curly-brackets.cjs.map +1 -1
- package/dist/lib/curly-brackets.js +12 -3
- package/dist/lib/curly-brackets.js.map +1 -1
- package/dist/lib/lifecycle-manager/index.cjs +25 -0
- package/dist/lib/lifecycle-manager/index.cjs.map +1 -1
- package/dist/lib/lifecycle-manager/index.d.cts +5 -0
- package/dist/lib/lifecycle-manager/index.d.ts +5 -0
- package/dist/lib/lifecycle-manager/index.js +25 -0
- package/dist/lib/lifecycle-manager/index.js.map +1 -1
- package/dist/lib/logger/index.cjs +19 -7
- package/dist/lib/logger/index.cjs.map +1 -1
- package/dist/lib/logger/index.js +19 -7
- package/dist/lib/logger/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1019,6 +1019,7 @@ declare class LifecycleManager extends EventEmitterProtected implements Lifecycl
|
|
|
1019
1019
|
private isStarted;
|
|
1020
1020
|
private isShuttingDown;
|
|
1021
1021
|
private shutdownToken;
|
|
1022
|
+
private pendingLoggerExitResolve;
|
|
1022
1023
|
private shutdownMethod;
|
|
1023
1024
|
private lastShutdownResult;
|
|
1024
1025
|
private processSignalManager;
|
|
@@ -1345,6 +1346,10 @@ declare class LifecycleManager extends EventEmitterProtected implements Lifecycl
|
|
|
1345
1346
|
*/
|
|
1346
1347
|
private registerComponentInternal;
|
|
1347
1348
|
private stopAllComponentsInternal;
|
|
1349
|
+
/**
|
|
1350
|
+
* Release a deferred logger.exit() request after shutdown fully settles.
|
|
1351
|
+
*/
|
|
1352
|
+
private finalizePendingLoggerExit;
|
|
1348
1353
|
/**
|
|
1349
1354
|
* Retry shutdown for a stalled component.
|
|
1350
1355
|
* Attempts the force phase directly to avoid re-running a failing stop().
|
|
@@ -1019,6 +1019,7 @@ declare class LifecycleManager extends EventEmitterProtected implements Lifecycl
|
|
|
1019
1019
|
private isStarted;
|
|
1020
1020
|
private isShuttingDown;
|
|
1021
1021
|
private shutdownToken;
|
|
1022
|
+
private pendingLoggerExitResolve;
|
|
1022
1023
|
private shutdownMethod;
|
|
1023
1024
|
private lastShutdownResult;
|
|
1024
1025
|
private processSignalManager;
|
|
@@ -1345,6 +1346,10 @@ declare class LifecycleManager extends EventEmitterProtected implements Lifecycl
|
|
|
1345
1346
|
*/
|
|
1346
1347
|
private registerComponentInternal;
|
|
1347
1348
|
private stopAllComponentsInternal;
|
|
1349
|
+
/**
|
|
1350
|
+
* Release a deferred logger.exit() request after shutdown fully settles.
|
|
1351
|
+
*/
|
|
1352
|
+
private finalizePendingLoggerExit;
|
|
1348
1353
|
/**
|
|
1349
1354
|
* Retry shutdown for a stalled component.
|
|
1350
1355
|
* Attempts the force phase directly to avoid re-running a failing stop().
|
|
@@ -1936,6 +1936,8 @@ var LifecycleManager = class extends EventEmitterProtected {
|
|
|
1936
1936
|
isShuttingDown = false;
|
|
1937
1937
|
// Unique token used to detect shutdowns that happened during async start().
|
|
1938
1938
|
shutdownToken = ulid2();
|
|
1939
|
+
// Resolver for the first logger.exit() deferred during an already-running shutdown.
|
|
1940
|
+
pendingLoggerExitResolve = null;
|
|
1939
1941
|
shutdownMethod = null;
|
|
1940
1942
|
lastShutdownResult = null;
|
|
1941
1943
|
// Signal management
|
|
@@ -2995,6 +2997,17 @@ var LifecycleManager = class extends EventEmitterProtected {
|
|
|
2995
2997
|
this.rootLogger.setBeforeExitCallback(
|
|
2996
2998
|
async (exitCode, isFirstExit) => {
|
|
2997
2999
|
if (this.isShuttingDown) {
|
|
3000
|
+
if (isFirstExit && this.pendingLoggerExitResolve === null) {
|
|
3001
|
+
this.logger.debug(
|
|
3002
|
+
"Logger exit called during shutdown, waiting...",
|
|
3003
|
+
{
|
|
3004
|
+
params: { exitCode }
|
|
3005
|
+
}
|
|
3006
|
+
);
|
|
3007
|
+
return await new Promise((resolve) => {
|
|
3008
|
+
this.pendingLoggerExitResolve = resolve;
|
|
3009
|
+
});
|
|
3010
|
+
}
|
|
2998
3011
|
this.logger.debug("Logger exit called during shutdown, waiting...", {
|
|
2999
3012
|
params: { exitCode }
|
|
3000
3013
|
});
|
|
@@ -4100,7 +4113,19 @@ var LifecycleManager = class extends EventEmitterProtected {
|
|
|
4100
4113
|
}
|
|
4101
4114
|
this.isShuttingDown = false;
|
|
4102
4115
|
this.updateStartedFlag();
|
|
4116
|
+
this.finalizePendingLoggerExit();
|
|
4117
|
+
}
|
|
4118
|
+
}
|
|
4119
|
+
/**
|
|
4120
|
+
* Release a deferred logger.exit() request after shutdown fully settles.
|
|
4121
|
+
*/
|
|
4122
|
+
finalizePendingLoggerExit() {
|
|
4123
|
+
if (this.pendingLoggerExitResolve === null || this.isShuttingDown) {
|
|
4124
|
+
return;
|
|
4103
4125
|
}
|
|
4126
|
+
const resolve = this.pendingLoggerExitResolve;
|
|
4127
|
+
this.pendingLoggerExitResolve = null;
|
|
4128
|
+
resolve({ action: "proceed" });
|
|
4104
4129
|
}
|
|
4105
4130
|
/**
|
|
4106
4131
|
* Retry shutdown for a stalled component.
|