Skip to content

Commit

Permalink
feat: abb-number Method has Been Added to Build File
Browse files Browse the repository at this point in the history
  • Loading branch information
itsreza committed Aug 8, 2022
1 parent 33fbe5a commit 3dd9c75
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 2 deletions.
4 changes: 3 additions & 1 deletion build/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.wordifyNumbers = exports.numericalWithoutSeparator = exports.numericalSeparator = exports.isNationalID = exports.timeAgo = exports.convertDigitsEnToFa = exports.convertDigitsFaToEn = exports.persianCardValidation = void 0;
exports.abbNumber = exports.wordifyNumbers = exports.numericalWithoutSeparator = exports.numericalSeparator = exports.isNationalID = exports.timeAgo = exports.convertDigitsEnToFa = exports.convertDigitsFaToEn = exports.persianCardValidation = void 0;
var creditCardValidation_1 = __importDefault(require("./modules/creditCardValidation"));
exports.persianCardValidation = creditCardValidation_1.default;
var index_1 = require("./shared/utils/digitConverter/index");
Expand All @@ -18,3 +18,5 @@ Object.defineProperty(exports, "wordifyNumbers", { enumerable: true, get: functi
var numerical_1 = require("./shared/utils/numerical");
Object.defineProperty(exports, "numericalSeparator", { enumerable: true, get: function () { return numerical_1.numericalSeparator; } });
Object.defineProperty(exports, "numericalWithoutSeparator", { enumerable: true, get: function () { return numerical_1.numericalWithoutSeparator; } });
var abbreviateNumbers_1 = __importDefault(require("./modules/abbreviateNumbers"));
exports.abbNumber = abbreviateNumbers_1.default;
26 changes: 26 additions & 0 deletions build/modules/abbreviateNumbers/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var digitConverter_1 = require("../../shared/utils/digitConverter");
var index_constants_1 = require("../../shared/constants/digits/index.constants");
/**
* function helper can abbreviate a number.
* example : 13000000 => "13M"
* @category numerical
* @param bigNumber English entry number. ex: 101000
* @param toFixed Number of digits after the decimal point. Must be in the range 0 - 20, inclusive
* @returns Value with String Type. ex: "101K"
*/
var abbNumber = function (bigNumber, toFixed) {
if (toFixed === void 0) { toFixed = 0; }
if (!bigNumber || typeof bigNumber !== 'number')
throw TypeError('Entry Argument Should be Valid With Number Type For `abbreviatedNumber` Method');
var entryNumber = Number(digitConverter_1.convertDigitsFaToEn(String(bigNumber)));
var item = index_constants_1.abbreviatedNumberlLookup
.slice()
.reverse()
.find(function (item) {
return entryNumber >= item.value;
});
return item ? (bigNumber / item.value).toFixed(toFixed).replace(index_constants_1.numberRegex, '$1') + item.symbol : '0';
};
exports.default = abbNumber;
14 changes: 13 additions & 1 deletion build/shared/constants/digits/index.constants.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.arabicDigitsRegex = exports.persianDigitsRegex = exports.englishDigitsRegex = exports.arabicNumbersArray = exports.persianNumbersArray = exports.englishNumbersArray = void 0;
exports.numberRegex = exports.arabicDigitsRegex = exports.persianDigitsRegex = exports.englishDigitsRegex = exports.abbreviatedNumberlLookup = exports.arabicNumbersArray = exports.persianNumbersArray = exports.englishNumbersArray = void 0;
// Digits Array Include English, Farsi, Arabic
exports.englishNumbersArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
exports.persianNumbersArray = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
exports.arabicNumbersArray = ['٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'];
//abbreviated Number lookup array
exports.abbreviatedNumberlLookup = [
{ value: 1, symbol: "" },
{ value: 1e3, symbol: "K" },
{ value: 1e6, symbol: "M" },
{ value: 1e9, symbol: "G" },
{ value: 1e12, symbol: "T" },
{ value: 1e15, symbol: "P" },
{ value: 1e18, symbol: "E" }
];
// Regex of English,Farsi,Arabic Numbers
exports.englishDigitsRegex = /[0-9]/g;
exports.persianDigitsRegex = /[۰۱۲۳۴۵۶۷۸۹]/g;
exports.arabicDigitsRegex = /[٠١٢٣٤٥٦٧٨٩]/g;
// Regex for abbreviate Numbers
exports.numberRegex = /\.0+$|(\.[0-9]*[1-9])0+$/;
2 changes: 2 additions & 0 deletions build/types/abb.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });

0 comments on commit 3dd9c75

Please sign in to comment.