(raw: string, parseOpt: ParseParam)
| 151 | } |
| 152 | |
| 153 | function parseRaw(raw: string, parseOpt: ParseParam): ClientDetail | undefined { |
| 154 | const tokenize = raw.split('/') |
| 155 | let label: string | undefined |
| 156 | let version: Version | undefined |
| 157 | let os: OperatingSytem | undefined |
| 158 | let runtime: Runtime | undefined |
| 159 | |
| 160 | if (tokenize.length === 5) { |
| 161 | label = tokenize[1] |
| 162 | version = parseVersion(tokenize[2], parseOpt) |
| 163 | os = parseOs(tokenize[3], parseOpt) |
| 164 | runtime = parseRuntime(tokenize[4], parseOpt) |
| 165 | } else if (tokenize.length === 4) { |
| 166 | version = parseVersion(tokenize[1], parseOpt) |
| 167 | os = parseOs(tokenize[2], parseOpt) |
| 168 | runtime = parseRuntime(tokenize[3], parseOpt) |
| 169 | } else if (tokenize.length === 3) { |
| 170 | version = parseVersion(tokenize[0], parseOpt) |
| 171 | os = parseOs(tokenize[1], parseOpt) |
| 172 | runtime = parseRuntime(tokenize[2], parseOpt) |
| 173 | } else if (tokenize.length === 2) { |
| 174 | os = parseOs(tokenize[0], parseOpt) |
| 175 | runtime = parseRuntime(tokenize[1], parseOpt) |
| 176 | } |
| 177 | |
| 178 | if (label || version || os || runtime) { |
| 179 | return { |
| 180 | ...label && { label }, |
| 181 | ...version && { version }, |
| 182 | ...os && { os }, |
| 183 | ...runtime && { runtime }, |
| 184 | }; |
| 185 | } |
| 186 | |
| 187 | parseOpt.errorCallback('raw', raw, parseOpt.primaryKey); |
| 188 | return undefined; |
| 189 | } |
| 190 | |
| 191 | export function ClientsProcessor( |
| 192 | data: ClientApiResponse[], |
no test coverage detected