UNPKG

@yar.ua/numerals

Version:

Number to text - Inflector for Ukrainian numerals

54 lines (53 loc) 2.05 kB
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; }