UNPKG

linguee-client

Version:
48 lines 1.92 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExtractorsFactory = void 0; const AudioExtractor_1 = __importDefault(require("./AudioExtractor")); const TranslationExtractor_1 = __importDefault(require("./TranslationExtractor")); const WikiExtractor_1 = __importDefault(require("./WikiExtractor")); const WordExtractor_1 = __importDefault(require("./WordExtractor")); const LingueeExtractor_1 = __importDefault(require("./LingueeExtractor")); const ucFirst = (str) => { return str.charAt(0).toUpperCase() + str.slice(1); }; class ExtractorsFactory { static create(type) { let _creatorFunctionName = `_create${ucFirst(type)}Extractor`; if (Reflect.has(ExtractorsFactory, _creatorFunctionName)) { const creatorFunction = Reflect.get(ExtractorsFactory, _creatorFunctionName); return creatorFunction(); } throw new Error('Invalid Extractor'); } static _createLingueeExtractor() { return new LingueeExtractor_1.default({ word: ExtractorsFactory.create('word'), wiki: ExtractorsFactory.create('wiki'), }); } static _createWordExtractor() { return new WordExtractor_1.default({ translation: ExtractorsFactory.create('translation'), audio: ExtractorsFactory.create('audio'), }); } static _createWikiExtractor() { return new WikiExtractor_1.default(); } static _createTranslationExtractor() { return new TranslationExtractor_1.default(); } static _createAudioExtractor() { return new AudioExtractor_1.default(); } } exports.ExtractorsFactory = ExtractorsFactory; exports.default = ExtractorsFactory; //# sourceMappingURL=ExtractorsFactory.js.map