shevchenko
Version:
JavaScript library for declension of Ukrainian anthroponyms
36 lines (32 loc) • 1.2 kB
JavaScript
/**
* @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}
*/
;
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;