Skip to content

Commit 831ec8a

Browse files
authored
pass clack as part of the ttYEffects (#1473)
1 parent d3c069b commit 831ec8a

File tree

6 files changed

+20
-10
lines changed

6 files changed

+20
-10
lines changed

src/convert.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import {existsSync} from "node:fs";
22
import {utimes, writeFile} from "node:fs/promises";
33
import {join} from "node:path/posix";
4-
import * as clack from "@clack/prompts";
54
import wrapAnsi from "wrap-ansi";
65
import type {ClackEffects} from "./clack.js";
76
import {CliError} from "./error.js";
87
import {prepareOutput} from "./files.js";
98
import {getObservableUiOrigin} from "./observableApiClient.js";
109
import type {TtyEffects} from "./tty.js";
11-
import {bold, cyan, faint, inverse, link, reset, defaultEffects as ttyEffects} from "./tty.js";
10+
import {bold, cyan, defaultEffects as defaultTtyEffects, faint, inverse, link, reset} from "./tty.js";
1211

1312
export interface ConvertEffects extends TtyEffects {
1413
clack: ClackEffects;
@@ -19,8 +18,7 @@ export interface ConvertEffects extends TtyEffects {
1918
}
2019

2120
const defaultEffects: ConvertEffects = {
22-
...ttyEffects,
23-
clack,
21+
...defaultTtyEffects,
2422
async prepareOutput(outputPath: string): Promise<void> {
2523
await prepareOutput(outputPath);
2624
},

src/create.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {basename, dirname, join, normalize} from "node:path/posix";
77
import {setTimeout as sleep} from "node:timers/promises";
88
import {fileURLToPath} from "node:url";
99
import {promisify} from "node:util";
10-
import * as clack from "@clack/prompts";
1110
import he from "he";
1211
import untildify from "untildify";
1312
import wrapAnsi from "wrap-ansi";
@@ -25,7 +24,6 @@ export interface CreateEffects extends TtyEffects {
2524

2625
const defaultEffects: CreateEffects = {
2726
...defaultTtyEffects,
28-
clack,
2927
sleep,
3028
async mkdir(outputPath: string, options): Promise<void> {
3129
await mkdir(outputPath, options);

src/deploy.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {createHash} from "node:crypto";
22
import type {Stats} from "node:fs";
33
import {readFile, stat} from "node:fs/promises";
44
import {join} from "node:path/posix";
5-
import * as clack from "@clack/prompts";
65
import wrapAnsi from "wrap-ansi";
76
import type {BuildEffects, BuildManifest, BuildOptions} from "./build.js";
87
import {FileBuildEffects, build} from "./build.js";
@@ -73,7 +72,6 @@ const defaultEffects: DeployEffects = {
7372
...defaultAuthEffects,
7473
getDeployConfig,
7574
setDeployConfig,
76-
clack,
7775
logger: console,
7876
input: process.stdin,
7977
output: process.stdout,

src/observableApiAuth.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import os from "node:os";
2-
import * as clack from "@clack/prompts";
32
import type {ClackEffects} from "./clack.js";
43
import {commandInstruction, commandRequiresAuthenticationMessage} from "./commandInstruction.js";
54
import {CliError, isHttpError} from "./error.js";
@@ -30,7 +29,6 @@ export interface AuthEffects extends ConfigEffects, TtyEffects {
3029
export const defaultEffects: AuthEffects = {
3130
...defaultConfigEffects,
3231
...defaultTtyEffects,
33-
clack,
3432
getObservableApiKey,
3533
setObservableApiKey,
3634
exitSuccess: () => process.exit(0)

src/tty.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
import {isatty} from "node:tty";
2+
import * as clack from "@clack/prompts";
3+
import type {ClackEffects} from "./clack.js";
24
import type {Logger} from "./logger.js";
35

46
export const reset = color(0, 0);
@@ -22,12 +24,26 @@ function color(code: number, reset: number): TtyColor {
2224
}
2325

2426
export interface TtyEffects {
27+
clack: ClackEffects;
2528
isTty: boolean;
2629
logger: Logger;
2730
outputColumns: number;
2831
}
2932

33+
const noSpinner = () => ({
34+
start(msg?: string) {
35+
console.log(msg);
36+
},
37+
stop(msg?: string, code?: number) {
38+
console.log(msg, code ?? "");
39+
},
40+
message(msg?: string) {
41+
console.log(msg);
42+
}
43+
});
44+
3045
export const defaultEffects: TtyEffects = {
46+
clack: process.stdout.isTTY ? clack : {...clack, spinner: noSpinner},
3147
isTty: isatty(process.stdin.fd),
3248
logger: console,
3349
outputColumns: Math.min(80, process.stdout.columns ?? 80)

test/tty-test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import assert from "node:assert";
2+
import * as clack from "@clack/prompts";
23
import type {TtyEffects} from "../src/tty.js";
34
import {blue, bold, green, hangingIndentLog, red} from "../src/tty.js";
45

@@ -50,6 +51,7 @@ describe("hangingIndentLog", () => {
5051
});
5152

5253
const noopEffects: TtyEffects = {
54+
clack,
5355
isTty: true,
5456
logger: {log() {}, warn() {}, error() {}},
5557
outputColumns: 80

0 commit comments

Comments
 (0)