From 3d6ed1def90f5e673969cac650c2250fe98d8768 Mon Sep 17 00:00:00 2001 From: Dave Nicolson Date: Sun, 12 Oct 2025 15:27:01 +0200 Subject: [PATCH] feat(parser): Add `Form.ts` parser class (#1056) * feat(parser): Add Form.ts parser class Co-authored-by: absidue <48293849+absidue@users.noreply.github.com> --- src/parser/classes/Form.ts | 15 +++++++++++++++ src/parser/nodes.ts | 1 + 2 files changed, 16 insertions(+) create mode 100644 src/parser/classes/Form.ts diff --git a/src/parser/classes/Form.ts b/src/parser/classes/Form.ts new file mode 100644 index 00000000..61eac081 --- /dev/null +++ b/src/parser/classes/Form.ts @@ -0,0 +1,15 @@ +import { YTNode } from '../helpers.js'; +import { Parser, type RawNode } from '../index.js'; +import { type ObservedArray } from '../helpers.js'; +import ToggleFormField from './ToggleFormField.js'; + +export default class Form extends YTNode { + static type = 'Form'; + + fields: ObservedArray; + + constructor(data: RawNode) { + super(); + this.fields = Parser.parseArray(data.fields, ToggleFormField); + } +} \ No newline at end of file diff --git a/src/parser/nodes.ts b/src/parser/nodes.ts index 027dec57..b33127b8 100644 --- a/src/parser/nodes.ts +++ b/src/parser/nodes.ts @@ -181,6 +181,7 @@ export { default as FeedFilterChipBar } from './classes/FeedFilterChipBar.js'; export { default as FeedNudge } from './classes/FeedNudge.js'; export { default as FeedTabbedHeader } from './classes/FeedTabbedHeader.js'; export { default as FlexibleActionsView } from './classes/FlexibleActionsView.js'; +export { default as Form } from './classes/Form.js'; export { default as FormFooterView } from './classes/FormFooterView.js'; export { default as GameCard } from './classes/GameCard.js'; export { default as GameDetails } from './classes/GameDetails.js';