github-issue-tower-defence-management 2.132.12 → 2.132.13
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/adapter/entry-points/handlers/consoleListsWriter.js +42 -2
- package/bin/adapter/entry-points/handlers/consoleListsWriter.js.map +1 -1
- package/package.json +1 -1
- package/types/adapter/entry-points/handlers/consoleListsWriter.d.ts +1 -0
- package/types/adapter/entry-points/handlers/consoleListsWriter.d.ts.map +1 -1
|
@@ -3,15 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.writeConsoleLists = exports.formatConsoleGeneratedAt = void 0;
|
|
6
|
+
exports.writeConsoleLists = exports.formatConsoleGeneratedAt = exports.CONSOLE_WRITE_LOCK_STALE_TIMEOUT_MS = void 0;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const GenerateConsoleListsUseCase_1 = require("../../../domain/usecases/console/GenerateConsoleListsUseCase");
|
|
10
10
|
const consoleCloseEventStore_1 = require("../console/consoleCloseEventStore");
|
|
11
11
|
const consoleDoneStore_1 = require("../console/consoleDoneStore");
|
|
12
12
|
const consoleTabNames_1 = require("../console/consoleTabNames");
|
|
13
|
+
exports.CONSOLE_WRITE_LOCK_STALE_TIMEOUT_MS = 30 * 1000;
|
|
13
14
|
const formatConsoleGeneratedAt = (date) => date.toISOString().replace(/\.\d{3}Z$/, 'Z');
|
|
14
15
|
exports.formatConsoleGeneratedAt = formatConsoleGeneratedAt;
|
|
16
|
+
const errorCode = (err) => {
|
|
17
|
+
if (!(0, consoleTabNames_1.isRecord)(err))
|
|
18
|
+
return null;
|
|
19
|
+
const code = err.code;
|
|
20
|
+
return typeof code === 'string' ? code : null;
|
|
21
|
+
};
|
|
22
|
+
const tryCreateLock = (lockPath) => {
|
|
23
|
+
try {
|
|
24
|
+
const fd = fs_1.default.openSync(lockPath, fs_1.default.constants.O_CREAT | fs_1.default.constants.O_EXCL | fs_1.default.constants.O_WRONLY);
|
|
25
|
+
fs_1.default.closeSync(fd);
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
if (errorCode(err) === 'EEXIST')
|
|
30
|
+
return false;
|
|
31
|
+
throw err;
|
|
32
|
+
}
|
|
33
|
+
};
|
|
15
34
|
const writeJsonAtomic = (filePath, data) => {
|
|
16
35
|
const dir = path_1.default.dirname(filePath);
|
|
17
36
|
fs_1.default.mkdirSync(dir, { recursive: true });
|
|
@@ -74,7 +93,28 @@ const writeConsoleLists = (params) => {
|
|
|
74
93
|
return;
|
|
75
94
|
}
|
|
76
95
|
const nowMs = params.nowMs ?? Date.now();
|
|
77
|
-
|
|
96
|
+
const lockDir = path_1.default.join(consoleDataOutputDir, pjcode);
|
|
97
|
+
fs_1.default.mkdirSync(lockDir, { recursive: true });
|
|
98
|
+
const lockPath = path_1.default.join(lockDir, '.console-list-write.lock');
|
|
99
|
+
let lockAcquired = tryCreateLock(lockPath);
|
|
100
|
+
if (!lockAcquired) {
|
|
101
|
+
try {
|
|
102
|
+
const stat = fs_1.default.statSync(lockPath);
|
|
103
|
+
if (Date.now() - stat.mtimeMs >= exports.CONSOLE_WRITE_LOCK_STALE_TIMEOUT_MS) {
|
|
104
|
+
fs_1.default.unlinkSync(lockPath);
|
|
105
|
+
lockAcquired = tryCreateLock(lockPath);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch { }
|
|
109
|
+
}
|
|
110
|
+
if (lockAcquired) {
|
|
111
|
+
try {
|
|
112
|
+
recordNewlyClosedItems(consoleDataOutputDir, pjcode, params.issues, nowMs);
|
|
113
|
+
}
|
|
114
|
+
finally {
|
|
115
|
+
fs_1.default.unlinkSync(lockPath);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
78
118
|
const generatedAt = params.generatedAt ?? (0, exports.formatConsoleGeneratedAt)(new Date());
|
|
79
119
|
const lists = new GenerateConsoleListsUseCase_1.GenerateConsoleListsUseCase().run({
|
|
80
120
|
project: params.project,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleListsWriter.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/consoleListsWriter.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAGxB,8GAGsE;AACtE,8EAA0E;AAC1E,kEAIqC;AACrC,gEAA8E;
|
|
1
|
+
{"version":3,"file":"consoleListsWriter.js","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/consoleListsWriter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Issue } from '../../../domain/entities/Issue';
|
|
2
2
|
import type { Project } from '../../../domain/entities/Project';
|
|
3
|
+
export declare const CONSOLE_WRITE_LOCK_STALE_TIMEOUT_MS: number;
|
|
3
4
|
export type ConsoleListsWriterParams = {
|
|
4
5
|
consoleDataOutputDir: string | null | undefined;
|
|
5
6
|
pjcode: string | null | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleListsWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/consoleListsWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAahE,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,IAAI,KAAG,MACR,CAAC;
|
|
1
|
+
{"version":3,"file":"consoleListsWriter.d.ts","sourceRoot":"","sources":["../../../../src/adapter/entry-points/handlers/consoleListsWriter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAahE,eAAO,MAAM,mCAAmC,QAAY,CAAC;AAE7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,oBAAoB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChD,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrD,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C,CAAC;AAEF,eAAO,MAAM,wBAAwB,GAAI,MAAM,IAAI,KAAG,MACR,CAAC;AA0F/C,eAAO,MAAM,iBAAiB,GAAI,QAAQ,wBAAwB,KAAG,IA0DpE,CAAC"}
|