mirror of
https://fastgit.cc/github.com/openclaw/openclaw
synced 2026-04-22 05:42:22 +08:00
refactor: share human list formatting
This commit is contained in:
@@ -1,18 +1,6 @@
|
||||
import { formatHumanList } from "../shared/human-list.js";
|
||||
import type { ChannelApprovalNativePlannedTarget } from "./approval-native-delivery.js";
|
||||
|
||||
function formatHumanList(values: readonly string[]): string {
|
||||
if (values.length === 0) {
|
||||
return "";
|
||||
}
|
||||
if (values.length === 1) {
|
||||
return values[0];
|
||||
}
|
||||
if (values.length === 2) {
|
||||
return `${values[0]} or ${values[1]}`;
|
||||
}
|
||||
return `${values.slice(0, -1).join(", ")}, or ${values.at(-1)}`;
|
||||
}
|
||||
|
||||
export function describeApprovalDeliveryDestination(params: {
|
||||
channelLabel: string;
|
||||
deliveredTargets: readonly ChannelApprovalNativePlannedTarget[];
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import type { ReplyPayload } from "../auto-reply/types.js";
|
||||
import type { InteractiveReply, InteractiveReplyButton } from "../interactive/payload.js";
|
||||
import { formatHumanList } from "../shared/human-list.js";
|
||||
import {
|
||||
normalizeOptionalLowercaseString,
|
||||
normalizeOptionalString,
|
||||
@@ -63,19 +64,6 @@ export type ExecApprovalUnavailableReplyParams = {
|
||||
sentApproverDms?: boolean;
|
||||
};
|
||||
|
||||
function formatHumanList(values: readonly string[]): string {
|
||||
if (values.length === 0) {
|
||||
return "";
|
||||
}
|
||||
if (values.length === 1) {
|
||||
return values[0];
|
||||
}
|
||||
if (values.length === 2) {
|
||||
return `${values[0]} or ${values[1]}`;
|
||||
}
|
||||
return `${values.slice(0, -1).join(", ")}, or ${values.at(-1)}`;
|
||||
}
|
||||
|
||||
function resolveNativeExecApprovalClientList(params?: { excludeChannel?: string }): string {
|
||||
return formatHumanList(
|
||||
listNativeExecApprovalClientLabels({
|
||||
|
||||
12
src/shared/human-list.ts
Normal file
12
src/shared/human-list.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export function formatHumanList(values: readonly string[]): string {
|
||||
if (values.length === 0) {
|
||||
return "";
|
||||
}
|
||||
if (values.length === 1) {
|
||||
return values[0];
|
||||
}
|
||||
if (values.length === 2) {
|
||||
return `${values[0]} or ${values[1]}`;
|
||||
}
|
||||
return `${values.slice(0, -1).join(", ")}, or ${values.at(-1)}`;
|
||||
}
|
||||
Reference in New Issue
Block a user