movehat 0.2.2 → 0.2.3
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/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/compile.d.ts.map +1 -1
- package/dist/commands/compile.js +19 -10
- package/dist/commands/compile.js.map +1 -1
- package/dist/commands/test.js +12 -19
- package/dist/commands/test.js.map +1 -1
- package/dist/core/Publisher.d.ts.map +1 -1
- package/dist/core/Publisher.js +20 -14
- package/dist/core/Publisher.js.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +8 -5
- package/dist/core/config.js.map +1 -1
- package/dist/core/deployments.d.ts.map +1 -1
- package/dist/core/deployments.js +4 -2
- package/dist/core/deployments.js.map +1 -1
- package/dist/fork/manager.js +10 -10
- package/dist/fork/manager.js.map +1 -1
- package/dist/fork/server.d.ts.map +1 -1
- package/dist/fork/server.js +21 -15
- package/dist/fork/server.js.map +1 -1
- package/dist/fork/test.d.ts.map +1 -1
- package/dist/fork/test.js +3 -2
- package/dist/fork/test.js.map +1 -1
- package/dist/harness/codeObject.js +11 -8
- package/dist/harness/codeObject.js.map +1 -1
- package/dist/harness/script.d.ts.map +1 -1
- package/dist/harness/script.js +9 -6
- package/dist/harness/script.js.map +1 -1
- package/dist/helpers/setupLocalTesting.js +3 -3
- package/dist/helpers/setupLocalTesting.js.map +1 -1
- package/dist/node/LocalNodeManager.d.ts.map +1 -1
- package/dist/node/LocalNodeManager.js +60 -22
- package/dist/node/LocalNodeManager.js.map +1 -1
- package/dist/node/__tests__/LocalNodeManager.test.js +110 -11
- package/dist/node/__tests__/LocalNodeManager.test.js.map +1 -1
- package/dist/ui/__tests__/logger.test.d.ts +2 -0
- package/dist/ui/__tests__/logger.test.d.ts.map +1 -0
- package/dist/ui/__tests__/logger.test.js +75 -0
- package/dist/ui/__tests__/logger.test.js.map +1 -0
- package/dist/ui/formatters.d.ts +0 -16
- package/dist/ui/formatters.d.ts.map +1 -1
- package/dist/ui/formatters.js +1 -1
- package/dist/ui/formatters.js.map +1 -1
- package/dist/ui/logger.d.ts +41 -0
- package/dist/ui/logger.d.ts.map +1 -1
- package/dist/ui/logger.js +49 -0
- package/dist/ui/logger.js.map +1 -1
- package/dist/ui/spinner.d.ts +25 -0
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/ui/spinner.js +44 -0
- package/dist/ui/spinner.js.map +1 -1
- package/package.json +1 -1
- package/src/cli.ts +4 -0
- package/src/commands/compile.ts +24 -15
- package/src/commands/test.ts +12 -19
- package/src/core/Publisher.ts +49 -34
- package/src/core/config.ts +9 -6
- package/src/core/deployments.ts +5 -4
- package/src/fork/manager.ts +10 -10
- package/src/fork/server.ts +21 -15
- package/src/fork/test.ts +3 -2
- package/src/harness/codeObject.ts +8 -5
- package/src/harness/script.ts +7 -4
- package/src/helpers/setupLocalTesting.ts +3 -3
- package/src/node/LocalNodeManager.ts +63 -24
- package/src/node/__tests__/LocalNodeManager.test.ts +140 -14
- package/src/ui/__tests__/logger.test.ts +89 -0
- package/src/ui/formatters.ts +1 -1
- package/src/ui/logger.ts +62 -0
- package/src/ui/spinner.ts +47 -0
package/src/ui/spinner.ts
CHANGED
|
@@ -103,6 +103,53 @@ export const withSpinner = async <T>(
|
|
|
103
103
|
}
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
+
/**
|
|
107
|
+
* Execute async task with a spinner that updates its label with
|
|
108
|
+
* elapsed seconds while the task runs. Use for long-running phases
|
|
109
|
+
* (local node startup, publish + tx wait) where the user wants
|
|
110
|
+
* visible progress feedback in lieu of subprocess chatter.
|
|
111
|
+
*
|
|
112
|
+
* Pairs with the `§9` console-UX convention: any phase that
|
|
113
|
+
* empirically takes ≥3s in normal use should wrap its body in
|
|
114
|
+
* `withTimedSpinner` so the terminal never goes silent while work
|
|
115
|
+
* happens.
|
|
116
|
+
*
|
|
117
|
+
* @param label - Stable label shown next to the spinner (e.g. "Starting node")
|
|
118
|
+
* @param task - Async function to execute
|
|
119
|
+
* @param indent - Number of spaces to indent (default: 0)
|
|
120
|
+
* @returns Promise resolving to task result
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* await withTimedSpinner('Starting local node', async () => {
|
|
124
|
+
* await this.waitForReady(60_000);
|
|
125
|
+
* });
|
|
126
|
+
* // Renders: ⠋ Starting local node — 0.0s ... ⠼ Starting local node — 14.2s
|
|
127
|
+
* // On success: ✔ Starting local node (14.2s)
|
|
128
|
+
* // On error: ✖ <error.message>
|
|
129
|
+
*/
|
|
130
|
+
export const withTimedSpinner = async <T>(
|
|
131
|
+
label: string,
|
|
132
|
+
task: () => Promise<T>,
|
|
133
|
+
indent: number = 0
|
|
134
|
+
): Promise<T> => {
|
|
135
|
+
const start = Date.now();
|
|
136
|
+
const spin = spinner({ text: `${label} — 0.0s`, indent });
|
|
137
|
+
const timer = setInterval(() => {
|
|
138
|
+
spin.text = `${label} — ${((Date.now() - start) / 1000).toFixed(1)}s`;
|
|
139
|
+
}, 500);
|
|
140
|
+
try {
|
|
141
|
+
const result = await task();
|
|
142
|
+
spin.succeed(`${label} (${((Date.now() - start) / 1000).toFixed(1)}s)`);
|
|
143
|
+
return result;
|
|
144
|
+
} catch (error) {
|
|
145
|
+
const errMsg = error instanceof Error ? error.message : String(error);
|
|
146
|
+
spin.fail(errMsg);
|
|
147
|
+
throw error;
|
|
148
|
+
} finally {
|
|
149
|
+
clearInterval(timer);
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
|
|
106
153
|
/**
|
|
107
154
|
* Spinner chain for sequential operations
|
|
108
155
|
* Manages multiple spinners in sequence
|