aem-ext-daemon 0.3.8 → 0.3.9
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/dist/daemon.js +2 -0
- package/dist/logger.d.ts +4 -3
- package/dist/logger.js +15 -25
- package/package.json +1 -1
package/dist/daemon.js
CHANGED
|
@@ -17,6 +17,7 @@ import { DaemonConnection } from "./connection.js";
|
|
|
17
17
|
import { ensureIdentity, getWorkspaceRoot, setWorkspaceRoot } from "./identity.js";
|
|
18
18
|
import { generatePairCode, displayPairCode } from "./pairing.js";
|
|
19
19
|
import { dispatch } from "./dispatcher.js";
|
|
20
|
+
import { getLogFilePath } from "./logger.js";
|
|
20
21
|
// Read version from package.json so it stays in sync automatically
|
|
21
22
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
22
23
|
const pkgPath = path.resolve(__dirname, "..", "package.json");
|
|
@@ -57,6 +58,7 @@ export class Daemon {
|
|
|
57
58
|
if (workspace) {
|
|
58
59
|
console.log(` Workspace: ${workspace}`);
|
|
59
60
|
}
|
|
61
|
+
console.log(` Log file: ${getLogFilePath()}`);
|
|
60
62
|
console.log("");
|
|
61
63
|
console.log(" Connecting...");
|
|
62
64
|
this.connection.connect();
|
package/dist/logger.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Daemon logger — writes timestamped entries to a log file
|
|
2
|
+
* Daemon logger — writes timestamped entries to a log file and the terminal.
|
|
3
3
|
*
|
|
4
|
-
* Log file
|
|
5
|
-
* Also prints key events to the daemon terminal (stdout).
|
|
4
|
+
* Log file: ~/.adobe-ext-builder/daemon.log (always available, regardless of workspace config)
|
|
6
5
|
*/
|
|
7
6
|
/** Log a command being dispatched. */
|
|
8
7
|
export declare function logCommand(command: string, payload: Record<string, unknown>): void;
|
|
@@ -12,3 +11,5 @@ export declare function logResult(command: string, result: string, durationMs: n
|
|
|
12
11
|
export declare function logError(command: string, error: string, durationMs: number): void;
|
|
13
12
|
/** Log a general info message. */
|
|
14
13
|
export declare function logInfo(message: string): void;
|
|
14
|
+
/** Return the log file path for display purposes. */
|
|
15
|
+
export declare function getLogFilePath(): string;
|
package/dist/logger.js
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Daemon logger — writes timestamped entries to a log file
|
|
2
|
+
* Daemon logger — writes timestamped entries to a log file and the terminal.
|
|
3
3
|
*
|
|
4
|
-
* Log file
|
|
5
|
-
* Also prints key events to the daemon terminal (stdout).
|
|
4
|
+
* Log file: ~/.adobe-ext-builder/daemon.log (always available, regardless of workspace config)
|
|
6
5
|
*/
|
|
7
6
|
import fs from "node:fs";
|
|
7
|
+
import os from "node:os";
|
|
8
8
|
import path from "node:path";
|
|
9
|
-
|
|
9
|
+
const LOG_DIR = path.join(os.homedir(), ".adobe-ext-builder");
|
|
10
|
+
const LOG_PATH = path.join(LOG_DIR, "daemon.log");
|
|
10
11
|
let logStream = null;
|
|
11
|
-
let currentLogPath = null;
|
|
12
|
-
function getLogPath() {
|
|
13
|
-
const root = getWorkspaceRoot();
|
|
14
|
-
if (!root)
|
|
15
|
-
return null;
|
|
16
|
-
return path.join(root, ".daemon.log");
|
|
17
|
-
}
|
|
18
12
|
function ensureStream() {
|
|
19
|
-
const logPath = getLogPath();
|
|
20
|
-
if (!logPath)
|
|
21
|
-
return null;
|
|
22
|
-
// Re-open if workspace changed
|
|
23
|
-
if (logPath !== currentLogPath) {
|
|
24
|
-
logStream?.end();
|
|
25
|
-
logStream = null;
|
|
26
|
-
currentLogPath = null;
|
|
27
|
-
}
|
|
28
13
|
if (!logStream) {
|
|
29
14
|
try {
|
|
30
|
-
fs.mkdirSync(
|
|
31
|
-
logStream = fs.createWriteStream(
|
|
32
|
-
currentLogPath = logPath;
|
|
15
|
+
fs.mkdirSync(LOG_DIR, { recursive: true });
|
|
16
|
+
logStream = fs.createWriteStream(LOG_PATH, { flags: "a" });
|
|
33
17
|
}
|
|
34
18
|
catch {
|
|
35
19
|
return null;
|
|
@@ -49,7 +33,7 @@ export function logCommand(command, payload) {
|
|
|
49
33
|
}
|
|
50
34
|
/** Log a command result (success). */
|
|
51
35
|
export function logResult(command, result, durationMs) {
|
|
52
|
-
const preview = result.length >
|
|
36
|
+
const preview = result.length > 500 ? result.slice(0, 500) + "..." : result;
|
|
53
37
|
const line = `[${ts()}] OK ${command} (${durationMs}ms) ${preview}`;
|
|
54
38
|
const stream = ensureStream();
|
|
55
39
|
stream?.write(line + "\n");
|
|
@@ -60,7 +44,9 @@ export function logError(command, error, durationMs) {
|
|
|
60
44
|
const line = `[${ts()}] ERR ${command} (${durationMs}ms) ${error}`;
|
|
61
45
|
const stream = ensureStream();
|
|
62
46
|
stream?.write(line + "\n");
|
|
63
|
-
|
|
47
|
+
// Print the FULL error to the terminal so users can diagnose issues
|
|
48
|
+
console.log(` ✗ ${command} (${durationMs}ms)`);
|
|
49
|
+
console.log(` Error: ${error}`);
|
|
64
50
|
}
|
|
65
51
|
/** Log a general info message. */
|
|
66
52
|
export function logInfo(message) {
|
|
@@ -68,3 +54,7 @@ export function logInfo(message) {
|
|
|
68
54
|
const stream = ensureStream();
|
|
69
55
|
stream?.write(line + "\n");
|
|
70
56
|
}
|
|
57
|
+
/** Return the log file path for display purposes. */
|
|
58
|
+
export function getLogFilePath() {
|
|
59
|
+
return LOG_PATH;
|
|
60
|
+
}
|