store-scrapper-js-common 1.0.205 → 1.0.206

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,7 +57,7 @@ const formatMoney = (money, currency) => {
57
57
  return '';
58
58
  }
59
59
  let moneyStr = money.toString();
60
- if (moneyStr && (0, array_utils_1.hasElementInArray)([currency], [entities_1.CurrencyEnum.ARS]) && moneyStr.includes('.')) {
60
+ if (moneyStr && (0, array_utils_1.hasElementInArray)([currency], [entities_1.CurrencyEnum.ARS, entities_1.CurrencyEnum.USD]) && moneyStr.includes('.')) {
61
61
  const beforeDot = moneyStr.split('.')[0];
62
62
  const afterDot = moneyStr.split('.')[1];
63
63
  const useDecimals = afterDot.length >= 2 ? 2 : afterDot.length;
@@ -1 +1 @@
1
- {"version":3,"file":"string-formatter.js","sourceRoot":"/","sources":["utils/string-formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import * as moment from 'moment-timezone';\nimport { CurrencyEnum } from '../entities';\nimport { hasElementInArray } from './array-utils';\n\nexport const addThousandSeparator = (str: string, separator = '.') => {\n let nStr = (`${str}`);\n if (nStr && separator === ',') {\n nStr = nStr.replace(',', '.');\n }\n\n const x = nStr.split(separator);\n let x1 = x[0];\n const x2 = x.length > 1 ? `${separator}${x[1]}` : '';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, `$1${separator}$2`);\n }\n return x1 + x2;\n};\n\nexport const formatMoney = (money: number | string, currency?: CurrencyEnum): string => {\n if (!money) {\n return '';\n }\n\n let moneyStr = money.toString();\n\n // TODO: ARS 2 decimals\n if (moneyStr && hasElementInArray([currency], [CurrencyEnum.ARS]) && moneyStr.includes('.')) {\n const beforeDot = moneyStr.split('.')[0];\n const afterDot = moneyStr.split('.')[1];\n\n const useDecimals = afterDot.length >= 2 ? 2 : afterDot.length;\n\n moneyStr = `${beforeDot}.${afterDot.substring(0, useDecimals)}`;\n }\n\n if (typeof money === 'number') {\n moneyStr = moneyStr.replace(/\\./g, ',');\n }\n\n let appendSign = currency && currency.toLowerCase().includes('pts') ? ' (pts)' : '';\n let prependSign = '';\n let thousandSeparator = '.';\n\n if (currency === CurrencyEnum.USD) {\n prependSign = 'U$';\n thousandSeparator = ',';\n } else if (currency === CurrencyEnum.EUR) {\n appendSign = `€ ${appendSign}`.trim();\n } else if (currency === CurrencyEnum.MXN) {\n prependSign = '$';\n thousandSeparator = ',';\n } else if (!currency || !currency.toLowerCase().includes('pts')) {\n prependSign = '$';\n }\n\n return prependSign + addThousandSeparator(moneyStr, thousandSeparator) + appendSign;\n};\n\nexport const formatDate = (str: string, timezone = 'America/Santiago', format = 'DD-MM-YYYY HH:mm:ss'): string => {\n if (!str) {\n return '';\n }\n\n const date = new Date(str);\n\n return moment.tz(date, timezone).format(format);\n};\n\nexport const formatPct = (pct: number | string): string => {\n if (!pct) {\n return '';\n }\n\n return `${pct}%`.replace('.', ',');\n};\n"]}
1
+ {"version":3,"file":"string-formatter.js","sourceRoot":"/","sources":["utils/string-formatter.ts"],"names":[],"mappings":"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","sourcesContent":["import * as moment from 'moment-timezone';\nimport {CurrencyEnum} from '../entities';\nimport {hasElementInArray} from './array-utils';\n\nexport const addThousandSeparator = (str: string, separator = '.') => {\n let nStr = (`${str}`);\n if (nStr && separator === ',') {\n nStr = nStr.replace(',', '.');\n }\n\n const x = nStr.split(separator);\n let x1 = x[0];\n const x2 = x.length > 1 ? `${separator}${x[1]}` : '';\n const rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, `$1${separator}$2`);\n }\n return x1 + x2;\n};\n\nexport const formatMoney = (money: number | string, currency?: CurrencyEnum): string => {\n if (!money) {\n return '';\n }\n\n let moneyStr = money.toString();\n\n if (moneyStr && hasElementInArray([currency], [CurrencyEnum.ARS, CurrencyEnum.USD]) && moneyStr.includes('.')) {\n const beforeDot = moneyStr.split('.')[0];\n const afterDot = moneyStr.split('.')[1];\n\n const useDecimals = afterDot.length >= 2 ? 2 : afterDot.length;\n\n moneyStr = `${beforeDot}.${afterDot.substring(0, useDecimals)}`;\n }\n\n if (typeof money === 'number') {\n moneyStr = moneyStr.replace(/\\./g, ',');\n }\n\n let appendSign = currency && currency.toLowerCase().includes('pts') ? ' (pts)' : '';\n let prependSign = '';\n let thousandSeparator = '.';\n\n if (currency === CurrencyEnum.USD) {\n prependSign = 'U$';\n thousandSeparator = ',';\n } else if (currency === CurrencyEnum.EUR) {\n appendSign = `€ ${appendSign}`.trim();\n } else if (currency === CurrencyEnum.MXN) {\n prependSign = '$';\n thousandSeparator = ',';\n } else if (!currency || !currency.toLowerCase().includes('pts')) {\n prependSign = '$';\n }\n\n return prependSign + addThousandSeparator(moneyStr, thousandSeparator) + appendSign;\n};\n\nexport const formatDate = (str: string, timezone = 'America/Santiago', format = 'DD-MM-YYYY HH:mm:ss'): string => {\n if (!str) {\n return '';\n }\n\n const date = new Date(str);\n\n return moment.tz(date, timezone).format(format);\n};\n\nexport const formatPct = (pct: number | string): string => {\n if (!pct) {\n return '';\n }\n\n return `${pct}%`.replace('.', ',');\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "store-scrapper-js-common",
3
- "version": "1.0.205",
3
+ "version": "1.0.206",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,6 +1,6 @@
1
1
  import * as moment from 'moment-timezone';
2
- import { CurrencyEnum } from '../entities';
3
- import { hasElementInArray } from './array-utils';
2
+ import {CurrencyEnum} from '../entities';
3
+ import {hasElementInArray} from './array-utils';
4
4
 
5
5
  export const addThousandSeparator = (str: string, separator = '.') => {
6
6
  let nStr = (`${str}`);
@@ -25,8 +25,7 @@ export const formatMoney = (money: number | string, currency?: CurrencyEnum): st
25
25
 
26
26
  let moneyStr = money.toString();
27
27
 
28
- // TODO: ARS 2 decimals
29
- if (moneyStr && hasElementInArray([currency], [CurrencyEnum.ARS]) && moneyStr.includes('.')) {
28
+ if (moneyStr && hasElementInArray([currency], [CurrencyEnum.ARS, CurrencyEnum.USD]) && moneyStr.includes('.')) {
30
29
  const beforeDot = moneyStr.split('.')[0];
31
30
  const afterDot = moneyStr.split('.')[1];
32
31
 
@@ -1,7 +1,5 @@
1
- import {
2
- addThousandSeparator, formatDate, formatMoney, formatPct,
3
- } from '../../src/utils/string-formatter';
4
- import { CurrencyEnum } from '../../src/entities';
1
+ import {addThousandSeparator, formatDate, formatMoney, formatPct,} from '../../src/utils/string-formatter';
2
+ import {CurrencyEnum} from '../../src/entities';
5
3
 
6
4
  describe('string formatter', () => {
7
5
  it('should add thousand separator', () => {
@@ -58,6 +56,13 @@ describe('string formatter', () => {
58
56
  expect(formatMoney(1434591.1, CurrencyEnum.MXN)).toStrictEqual('$1,434,591.1');
59
57
  });
60
58
 
59
+ it('should round dollars to 2 decimals', () => {
60
+ expect.hasAssertions();
61
+
62
+ expect(formatMoney(175.91, CurrencyEnum.USD)).toStrictEqual('U$175.91');
63
+ expect(formatMoney(175.91000366210938,CurrencyEnum.USD)).toStrictEqual('U$175.91');
64
+ })
65
+
61
66
  it('should round ars price', () => {
62
67
  expect.hasAssertions();
63
68