refactor(utils): share chunkItems helper

This commit is contained in:
Peter Steinberger
2026-02-16 01:52:30 +00:00
parent 618008b483
commit 19f53543d2
3 changed files with 12 additions and 22 deletions

View File

@@ -42,6 +42,7 @@ import {
} from "../../pairing/pairing-store.js";
import { resolveAgentRoute } from "../../routing/resolve-route.js";
import { buildUntrustedChannelMetadata } from "../../security/channel-metadata.js";
import { chunkItems } from "../../utils/chunk-items.js";
import { loadWebMedia } from "../../web/media.js";
import { chunkDiscordTextWithMode } from "../chunk.js";
import {
@@ -146,17 +147,6 @@ function readDiscordCommandArgs(
return Object.keys(values).length > 0 ? { values } : undefined;
}
function chunkItems<T>(items: T[], size: number): T[][] {
if (size <= 0) {
return [items];
}
const rows: T[][] = [];
for (let i = 0; i < items.length; i += size) {
rows.push(items.slice(i, i + size));
}
return rows;
}
const DISCORD_COMMAND_ARG_CUSTOM_ID_KEY = "cmdarg";
function createCommandArgsWithValue(params: { argName: string; value: string }): CommandArgs {

View File

@@ -12,6 +12,7 @@ import {
readChannelAllowFromStore,
upsertChannelPairingRequest,
} from "../../pairing/pairing-store.js";
import { chunkItems } from "../../utils/chunk-items.js";
import {
normalizeAllowList,
normalizeAllowListLower,
@@ -38,17 +39,6 @@ async function getCommandsRegistry(): Promise<CommandsRegistry> {
return commandsRegistry;
}
function chunkItems<T>(items: T[], size: number): T[][] {
if (size <= 0) {
return [items];
}
const rows: T[][] = [];
for (let i = 0; i < items.length; i += size) {
rows.push(items.slice(i, i + size));
}
return rows;
}
function encodeSlackCommandArgValue(parts: {
command: string;
arg: string;

10
src/utils/chunk-items.ts Normal file
View File

@@ -0,0 +1,10 @@
export function chunkItems<T>(items: readonly T[], size: number): T[][] {
if (size <= 0) {
return [Array.from(items)];
}
const rows: T[][] = [];
for (let i = 0; i < items.length; i += size) {
rows.push(items.slice(i, i + size));
}
return rows;
}