( input: string | undefined, session: string | undefined, saved: string | undefined, variants: string[], )
| 95 | // history. fitVariant() checks saved and session values against the available |
| 96 | // variants list -- if the provider doesn't offer a variant, it drops. |
| 97 | export function resolveVariant( |
| 98 | input: string | undefined, |
| 99 | session: string | undefined, |
| 100 | saved: string | undefined, |
| 101 | variants: string[], |
| 102 | ): string | undefined { |
| 103 | if (input !== undefined) { |
| 104 | return input |
| 105 | } |
| 106 | |
| 107 | const fallback = fitVariant(saved, variants) |
| 108 | const current = fitVariant(session, variants) |
| 109 | if (current !== undefined) { |
| 110 | return current |
| 111 | } |
| 112 | |
| 113 | return fallback |
| 114 | } |
| 115 | |
| 116 | function state(value: unknown): ModelState { |
| 117 | if (!isRecord(value)) { |
no test coverage detected