UNPKG

shevchenko

Version:

JavaScript library for declension of Ukrainian anthroponyms

36 lines (32 loc) 1.2 kB
/** * @file JavaScript library for declension of Ukrainian anthroponyms * @module shevchenko * @version 3.1.4 * @author Oleksandr Tolochko <shevchenko-js@tooleks.com> * @license MIT * @copyright 2017-2025 Oleksandr Tolochko <shevchenko-js@tooleks.com> * @see {@link git+https://github.com/tooleks/shevchenko-js.git} */ 'use strict'; var appendCommandRunner = require('./append-command-runner.js'); var declensionTypes = require('./declension-types.js'); var replaceCommandRunner = require('./replace-command-runner.js'); class CommandRunnerFactory { /** * Creates a new command runner for the given command. */ make(command) { switch (command.action) { case declensionTypes.InflectionCommandAction.APPEND: { return new appendCommandRunner.AppendCommandRunner(command); } case declensionTypes.InflectionCommandAction.REPLACE: { return new replaceCommandRunner.ReplaceCommandRunner(command); } default: { throw new TypeError(`Invalid command action: ${command.action}.`); } } } } exports.CommandRunnerFactory = CommandRunnerFactory;