Skip to content

Commit ecd7931

Browse files
authored
feat(adapter): add separator to adapter (#90)
1 parent e1fca42 commit ecd7931

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

workspaces/adapter/src/adapter.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import process from 'node:process';
2-
import { createPromptModule } from 'inquirer';
2+
import inquirer, { createPromptModule } from 'inquirer';
33
import chalk from 'chalk';
44
import type { InputOutputAdapter, Logger, PromptAnswers, PromptQuestions } from '../types/index.js';
55
import { createLogger } from './log.js';
@@ -86,4 +86,8 @@ export class TerminalAdapter implements InputOutputAdapter {
8686
async prompt<A extends PromptAnswers = PromptAnswers>(questions: PromptQuestions<A>, initialAnswers?: Partial<A>): Promise<A> {
8787
return this.promptModule(questions, initialAnswers);
8888
}
89+
90+
separator(separator?: string) {
91+
return new inquirer.Separator(separator);
92+
}
8993
}

workspaces/adapter/src/queued-adapter.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export class QueuedAdapter implements QueuedAdapterApi {
3737
log: Logger;
3838
#nextChildPriority: number;
3939
#ora: Ora;
40+
separator?: QueuedAdapterApi['separator'];
4041

4142
/**
4243
* `TerminalAdapter` is the default implementation of `Adapter`, an abstraction
@@ -51,6 +52,7 @@ export class QueuedAdapter implements QueuedAdapterApi {
5152
const { adapter, queue, delta, ...adapterOptions } = options ?? {};
5253
this.#queue = queue ?? new PQueue({ concurrency: 1 });
5354
this.actualAdapter = adapter ?? new TerminalAdapter(adapterOptions);
55+
this.separator = this.actualAdapter.separator;
5456

5557
// Deffered logger
5658
const defferredLogger = (...arguments_: any[]) => {

workspaces/adapter/types/adapter.d.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import type inquirer from 'inquirer';
12
import type { DistinctQuestion, Answers as InquirerAnswers } from 'inquirer';
23
import type { Logger } from './logger.js';
34

@@ -36,6 +37,11 @@ export type InputOutputAdapter = {
3637
* Close underline inputs.
3738
*/
3839
close(): void;
40+
41+
/**
42+
* Creates a separator for prompt choices.
43+
*/
44+
separator?: (separator?: string) => InstanceType<typeof inquirer.Separator>;
3945
};
4046

4147
type Task<TaskResultType> =

0 commit comments

Comments
 (0)