@yar.ua/numerals
Version:
Number to text - Inflector for Ukrainian numerals
54 lines (53 loc) • 2.05 kB
JavaScript
import * as cardinals from "./cardinals.js";
import * as ordinals from "./ordinals.js";
import * as decimals from "./decimals.js";
import * as fractionals from "./fractionals.js";
import * as grammar from "./grammar.js";
import * as syntax from "./syntax/node.js";
import * as lexeme from "./lexeme/lexeme.js";
import * as paradigm from "./lexeme/paradigm.js";
import * as errors from "./errors.js";
import * as diagram from "./diagram.js";
export { cardinals, ordinals, decimals, fractionals, grammar, syntax, lexeme, paradigm, errors, diagram, };
export class InflectionParams {
constructor() {
this.insert_ones = false;
this.strict_range = false;
this.stress = false;
}
}
export function remove_stress(text) {
return text.replace(/\u0301/g, "");
}
export function inflect_cardinal(whole, form, params) {
params = Object.assign(new InflectionParams(), params);
const result = cardinals.inflect(whole, form, params.insert_ones, params.strict_range);
if (!params.stress) {
return remove_stress(result);
}
return result;
}
export function inflect_ordinal(whole, form, params) {
params = Object.assign(new InflectionParams(), params);
const result = ordinals.inflect(whole, form, params.insert_ones, params.strict_range);
if (!params.stress) {
return remove_stress(result);
}
return result;
}
export function inflect_decimal(whole, decimal, form, params) {
params = Object.assign(new InflectionParams(), params);
const result = decimals.inflect(whole, decimal, form, params.insert_ones, params.strict_range);
if (!params.stress) {
return remove_stress(result);
}
return result;
}
export function inflect_fraction(whole, numerator, denominator, form, params) {
params = Object.assign(new InflectionParams(), params);
const result = fractionals.inflect(whole, numerator, denominator, form, params.insert_ones, params.strict_range);
if (!params.stress) {
return remove_stress(result);
}
return result;
}