| export function parseBetIdList(input) { |
| const tokens = String(input ?? '') |
| .split(/[,\s]+/) |
| .map((token) => token.trim()) |
| .filter(Boolean); |
|
|
| if (tokens.length === 0) { |
| return { ok: false, error: 'Please provide at least one bet ID.' }; |
| } |
|
|
| const ids = []; |
| const invalid = []; |
|
|
| for (const token of tokens) { |
| if (!/^\d+$/.test(token)) { |
| invalid.push(token); |
| continue; |
| } |
|
|
| const value = Number(token); |
| if (!Number.isSafeInteger(value) || value <= 0) { |
| invalid.push(token); |
| continue; |
| } |
|
|
| if (!ids.includes(value)) { |
| ids.push(value); |
| } |
| } |
|
|
| if (invalid.length > 0) { |
| return { |
| ok: false, |
| error: `Invalid bet ID value(s): ${invalid.join(', ')}`, |
| }; |
| } |
|
|
| return { ok: true, ids }; |
| } |
|
|