import IJSONParser from "../interfaces/IJSONParser.js"; import {BaseIssue, BaseSchema} from "valibot"; /** * Обший класс для всех парсеров, использующих библиотеку {@link https://valibot.dev/|Valibot} для парсинга JSON-данных в классы и объекты * @template TSchema Тип схемы, применяемой для парсинга объекта * @template Out Тип данных, получающихся после парсинга объекта */ export default abstract class JSONValibotParser>, Out> implements IJSONParser { /** * Схема для валидации JSON-данных * @protected */ protected readonly _schema: TSchema; protected constructor(schema: TSchema) { this._schema = schema; } /** * Парсинг сырых JSON-данных с помощью {@link _schema|схемы} и возврат обычного объекта типа {@link Out} * @param input JSON-данных, парсинг которых необходимо провести */ public abstract parse(input: string): Out; }