| import { GeneratedPanels } from "@/types" |
|
|
| export function parseBadJSON(jsonLikeString: string): GeneratedPanels { |
|
|
| try { |
| return JSON.parse(jsonLikeString) as GeneratedPanels |
| } catch (err) { |
| var regex = /\{\s*"panel":\s*(\d+),\s*"instructions"\s*:\s*"([^"]+)",\s*"caption":\s*"([^"]*)"\s*\}/gs; |
| |
| let results = []; |
| let match; |
| |
| while ((match = regex.exec(jsonLikeString)) !== null) { |
| let json = { |
| panel: Number(match[1]), |
| instructions: match[2], |
| caption: match[3] |
| }; |
| results.push(json); |
| } |
| |
| return results as GeneratedPanels |
| } |
| } |