(message: WebviewMessage)
| 125 | } |
| 126 | |
| 127 | function parseCreateRuleInput(message: WebviewMessage): CreateRuleInput { |
| 128 | const values = message.values ?? {} |
| 129 | const scope = parseRuleScope(values.scope) |
| 130 | const kind = parseRuleKind(values.kind) |
| 131 | const fileName = values.fileName ?? message.text |
| 132 | |
| 133 | if (!scope || !kind || !fileName) { |
| 134 | throw new Error("Missing required fields: scope, kind, or fileName") |
| 135 | } |
| 136 | |
| 137 | return { |
| 138 | scope, |
| 139 | kind, |
| 140 | modeSlug: typeof values.modeSlug === "string" ? values.modeSlug : undefined, |
| 141 | fileName, |
| 142 | } |
| 143 | } |
| 144 | |
| 145 | function parseDeleteRuleInput(message: WebviewMessage): DeleteRuleInput { |
| 146 | const values = message.values ?? {} |
no test coverage detected