import { AbstractResolver } from '@ulangi/resolver'; import * as Joi from 'joi'; import { WiktionaryEtymology } from '../interfaces/WiktionaryEtymology'; import { WiktionaryDefinitionsResolver } from './WiktionaryDefinitionsResolver'; import { WiktionaryPronunciationResolver } from './WiktionaryPronunciationResolver'; import { WiktionaryWordClassResolver } from './WiktionaryWordClassResolver'; export class WiktionaryEtymologyResolver extends AbstractResolver< WiktionaryEtymology > { private wordClassResolver = new WiktionaryWordClassResolver(); private pronunciationResolver = new WiktionaryPronunciationResolver(); private definitionsResolver = new WiktionaryDefinitionsResolver(); protected rules = { kind: Joi.string().valid('etymology'), sectionName: Joi.string(), etymology: Joi.string().optional(), children: Joi.array().items( this.wordClassResolver.getRules(), this.pronunciationResolver.getRules(), this.definitionsResolver.getRules() ), }; }