| 12345678910111213141516171819202122232425 |
- 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<TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>, Out> implements IJSONParser<Out> {
- /**
- * Схема для валидации 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;
- }
|