MCPcopy Create free account
hub / github.com/QuantumNous/new-api / parseHttpStatusCodeRules

Function parseHttpStatusCodeRules

web/src/lib/http-status-code-rules.ts:32–87  ·  view source on GitHub ↗
(
  input: unknown
)

Source from the content-addressed store, hash-verified

30}
31
32export function parseHttpStatusCodeRules(
33 input: unknown
34): ParsedHttpStatusCodeRules {
35 const raw = (input ?? '').toString().trim()
36 if (raw.length === 0) {
37 return {
38 ok: true,
39 ranges: [],
40 tokens: [],
41 normalized: '',
42 invalidTokens: [],
43 }
44 }
45
46 const sanitized = raw.replace(/[,]/g, ',')
47 const segments = sanitized
48 .split(',')
49 .map((s) => s.trim())
50 .filter(Boolean)
51
52 const ranges: StatusCodeRange[] = []
53 const invalidTokens: string[] = []
54
55 for (const segment of segments) {
56 const parsed = parseToken(segment)
57 if (!parsed) {
58 invalidTokens.push(segment)
59 } else {
60 ranges.push(parsed)
61 }
62 }
63
64 if (invalidTokens.length > 0) {
65 return {
66 ok: false,
67 ranges: [],
68 tokens: [],
69 normalized: raw,
70 invalidTokens,
71 }
72 }
73
74 const merged = mergeRanges(ranges)
75 const tokens = merged.map((r) =>
76 r.start === r.end ? `${r.start}` : `${r.start}-${r.end}`
77 )
78 const normalized = tokens.join(',')
79
80 return {
81 ok: true,
82 ranges: merged,
83 tokens,
84 normalized,
85 invalidTokens: [],
86 }
87}
88
89function parseToken(token: string): StatusCodeRange | null {

Callers 4

normalizeDefaultsFunction · 0.90
normalizeFormValuesFunction · 0.90

Calls 2

parseTokenFunction · 0.85
mergeRangesFunction · 0.85

Tested by

no test coverage detected