Neverending Perpetual Motion

    number-translator

    2.0.1 • Public • Published

    Number-translator

    How to use:

        const { translateNumber } = require("number-translator");
        
        translateNumber(x)        // where x is number OR string of numbers.
        translateNumber(123)      // —> "сто двадцать три"
        translateNumber("123")    // —> "сто двадцать три"
        translateNumber(-1.23)    // —> "минус одна целая двадцать три сотых"
        translateNumber(2231.1)   // —> "две тысяча двести тридцать одна целая одна десятая"

    Breaking change in 2.0.0

    translateNumber returns an object with two properties — type and message. This was done in order to distinguish if input was valid or not.

        const { translateNumber } = require("number-translator");
        
        translateNumber(x)        // where x is number OR string of numbers.
        translateNumber(123)      // —> {message: "сто двадцать три", type: "valid"}
        translateNumber("123")    // —> {message: "сто двадцать три", type: "valid"}
        translateNumber(-1.23)    // —> {message: "минус одна целая двадцать три сотых", type: "valid"}
        translateNumber(2231.1)   // —> {message: "две тысяча двести тридцать одна целая одна десятая", type: "valid"}
        translateNumber("22.31.1")   // —> {message: /* EXTRA_SYMBOLS_ERROR */, type: "error"}

    Limits

    Integer

    Range: [-10306 + 1, 10306 - 1]

    Non-integer

    Range: [-10306 + 10-305, 10306 - 10-305]

    Errors

    Every input passes the next tests in the same order before translating.

    Not a number

    Next values cause a return of [NOT_A_NUMBER]-error: empty value (nothing is passed), empty string (""), [], {}, null, NaN, undefined Also, if input is a string where the first symbol is not a number, function will return a [NOT_A_NUMBER]-error.

    translateNumber(); // —> "Passed value is not a number."

    Not safe number

    Then, if the passed value is a number (not a string of numbers) that is not from the range [-9007199254740991; 9007199254740991], it causes a return of the [NOT_SAFE_NUMBER]-error.

    translateNumber(13151521521513839838443821214); // —> "Passed number is not safe. Safe numbers are numbers in range [-9007199254740991; 9007199254740991]. You can pass the number wrapped in quotes to avoid this limitation."

    Non-numeric symbols

    Any character except of digits, "-" and "." causes a return of a [NON_NUMERIC_SYMBOLS]-error.

    translateNumber("21412f212412412"); // —> "There are non-numeric symbols in the passed string."

    Extra symbols

    If there are more than one of "-" or ".", then it returns an [EXTRA_SYMBOLS]-error.

    translateNumber("-2222222-222222"); // —> "Passed number is not a valid number."

    Too big number

    If the number is out of the limits, then it returns a [TOO_BIG_NUMBER]-error.

    translateNumber("1".repeat(307)); // —> "Passed number is not a valid number."

    Live demo:

    https://hstff.csb.app/

    Install

    npm i number-translator

    DownloadsWeekly Downloads

    1

    Version

    2.0.1

    License

    ISC

    Unpacked Size

    39.9 kB

    Total Files

    21

    Last publish

    Collaborators

    • wind-of