New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@sankhyalabs/core

Package Overview
Dependencies
Maintainers
1
Versions
745
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sankhyalabs/core - npm Package Compare versions

Comparing version 1.0.14 to 1.0.15

32

dist/utils/NumberUtils.d.ts

@@ -11,5 +11,5 @@ /**

/**
* @stringToNumber: converts a string based number on a number.
* @stringToNumber: converte um numero em formato de string em numero
*
* @param value string based number to convert
* @param value numero em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico: ######.##)
*

@@ -30,14 +30,26 @@ * @returns string based number

*
* @param value numero em formato de string a ser convertido
* @param value numero em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico<sem separadors de milhares>: ######.##)
* @param precision (numero de decimais)
* @param prettyPrecision (number os zeros in decimals)
* @param prettyPrecision (numero de zeros nos decimais)
*
* @returns numero em formato de string formatado
* @returns numero em formato de string formatado em PT-BR
*/
static format: (value: string, precision: number, prettyPrecision?: number) => string;
/**
* @keepOnlyDecimalSeparator: retira os separadores de milhar de um número em formato de string
*
* @Exemplos
* @"1001200", 4, 1 | "1001200.000"
* @"1001200,005500",6 ,5 | "1001200.0055"
* @"string" | NaN
* @param value numero em formato de string a ser convertido
* @param formatnumber (formatação de ENTRADA e SAÍDA do utilitário: pt-BR="###.###,##" en-US="###,###.##"; Default: "pt-BR")
*
* @returns numero em formato de string formatado apenas com separador decimal
*/
static format: (value: string, precision: number, prettyPrecision?: number) => string;
static keepOnlyDecimalSeparator: (value: string, formatnumber?: string) => string;
/**
* @changeFormat: troca o formato do numero string de "PT-BR" para "EN-US" e vice-versa
*
* @param value numero em formato de string a ser convertido
*
* @returns numero em formato de string formatado de "PT-BR" para "EN-US" e vice-versa
*/
static changeFormat: (value: string) => string;
}

@@ -13,5 +13,5 @@ const NUMBERINPUTS_REGEX_SCIENTIFIC_PARTS = /^([+-])?(\d+).?(\d*)[eE]([-+]?\d+)$/;

/**
* @stringToNumber: converts a string based number on a number.
* @stringToNumber: converte um numero em formato de string em numero
*
* @param value string based number to convert
* @param value numero em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico: ######.##)
*

@@ -63,12 +63,7 @@ * @returns string based number

*
* @param value numero em formato de string a ser convertido
* @param value numero em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico<sem separadors de milhares>: ######.##)
* @param precision (numero de decimais)
* @param prettyPrecision (number os zeros in decimals)
* @param prettyPrecision (numero de zeros nos decimais)
*
* @returns numero em formato de string formatado
*
* @Exemplos
* @"1001200", 4, 1 | "1001200.000"
* @"1001200,005500",6 ,5 | "1001200.0055"
* @"string" | NaN
* @returns numero em formato de string formatado em PT-BR
*/

@@ -86,3 +81,3 @@ NumberUtils.format = (value, precision, prettyPrecision = NaN) => {

//Validation "precision"
if (precision.toFixed(0) !== precision.toString() || precision < 0) {
if (Math.abs(Math.round(precision * 1) / 1) !== precision) {
throw new Error(`O argumento "precision" precisa ser um número inteiro positivo.`);

@@ -99,7 +94,6 @@ }

}
if (prettyPrecisionInternal.toFixed(0) !== prettyPrecisionInternal.toString()) {
if (Math.abs(Math.round(prettyPrecisionInternal * 1) / 1) !== prettyPrecisionInternal) {
throw new Error(`O argumento "prettyPrecision" precisa ser um número inteiro positivo.`);
}
;
// const numeroRound =
let newValueStr;

@@ -124,3 +118,36 @@ newValueStr = (Math.round(newValue * Math.pow(10, precision)) / Math.pow(10, precision)).toLocaleString('pt-br', { minimumFractionDigits: precision });

};
/**
* @keepOnlyDecimalSeparator: retira os separadores de milhar de um número em formato de string
*
* @param value numero em formato de string a ser convertido
* @param formatnumber (formatação de ENTRADA e SAÍDA do utilitário: pt-BR="###.###,##" en-US="###,###.##"; Default: "pt-BR")
*
* @returns numero em formato de string formatado apenas com separador decimal
*/
NumberUtils.keepOnlyDecimalSeparator = (value, formatnumber = 'pt-BR') => {
//Formatting formatnumber to be able to get lowercases
formatnumber = formatnumber.toUpperCase();
//Formatting value following formatnumber parameter
//keep only decimal character in order to correct format the string
//This transformation is due the "stringtoNumber" method is a general method that tries to convert all formated strings
if (formatnumber === 'EN-US') {
value = value.replace(/\,/g, '');
}
else {
value = value.replace(/\./g, '');
}
return value;
};
/**
* @changeFormat: troca o formato do numero string de "PT-BR" para "EN-US" e vice-versa
*
* @param value numero em formato de string a ser convertido
*
* @returns numero em formato de string formatado de "PT-BR" para "EN-US" e vice-versa
*/
NumberUtils.changeFormat = (value) => {
//Formatting output following formatnumber
return value.replace(/\./g, '_').replace(/\,/g, '.').replace(/\_/g, ',');
};
;
//# sourceMappingURL=NumberUtils.js.map
{
"name": "@sankhyalabs/core",
"version": "1.0.14",
"version": "1.0.15",
"description": "Modulo core JavaScript da Sankhya.",

@@ -5,0 +5,0 @@ "main": "dist/index.js",

@@ -18,5 +18,5 @@

/**
* @stringToNumber: converts a string based number on a number.
* @stringToNumber: converte um numero em formato de string em numero
*
* @param value string based number to convert
* @param value numero em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico: ######.##)
*

@@ -73,15 +73,11 @@ * @returns string based number

/**
* @format: converte um numero em formato de string em um numero em formato de string formatado de acordo com os parametros de "precision" e "prettyPrecision"
*
* @param value numero em formato de string a ser convertido
* @param value numero em formato de string a ser convertido (Importante: formato PT-BR ou já em formato numérico<sem separadors de milhares>: ######.##)
* @param precision (numero de decimais)
* @param prettyPrecision (number os zeros in decimals)
* @param prettyPrecision (numero de zeros nos decimais)
*
* @returns numero em formato de string formatado
*
* @Exemplos
* @"1001200", 4, 1 | "1001200.000"
* @"1001200,005500",6 ,5 | "1001200.0055"
* @"string" | NaN
* @returns numero em formato de string formatado em PT-BR
*/

@@ -101,3 +97,3 @@ static format = (value: string, precision: number, prettyPrecision: number = NaN): string => {

//Validation "precision"
if (precision.toFixed(0) !== precision.toString() || precision < 0) {
if (Math.abs(Math.round(precision * 1) / 1) !== precision) {
throw new Error(`O argumento "precision" precisa ser um número inteiro positivo.`);

@@ -116,7 +112,6 @@ };

if (prettyPrecisionInternal.toFixed(0) !== prettyPrecisionInternal.toString()) {
if (Math.abs(Math.round(prettyPrecisionInternal * 1) / 1) !== prettyPrecisionInternal) {
throw new Error(`O argumento "prettyPrecision" precisa ser um número inteiro positivo.`);
};
// const numeroRound =
let newValueStr: string;

@@ -142,5 +137,46 @@ newValueStr = (Math.round(newValue * Math.pow(10, precision)) / Math.pow(10, precision)).toLocaleString('pt-br', { minimumFractionDigits: precision });

return newValueStr;
}
/**
* @keepOnlyDecimalSeparator: retira os separadores de milhar de um número em formato de string
*
* @param value numero em formato de string a ser convertido
* @param formatnumber (formatação de ENTRADA e SAÍDA do utilitário: pt-BR="###.###,##" en-US="###,###.##"; Default: "pt-BR")
*
* @returns numero em formato de string formatado apenas com separador decimal
*/
static keepOnlyDecimalSeparator = (value: string, formatnumber: string = 'pt-BR'): string => {
//Formatting formatnumber to be able to get lowercases
formatnumber = formatnumber.toUpperCase();
//Formatting value following formatnumber parameter
//keep only decimal character in order to correct format the string
//This transformation is due the "stringtoNumber" method is a general method that tries to convert all formated strings
if (formatnumber === 'EN-US') {
value = value.replace(/\,/g, '');
} else {
value = value.replace(/\./g, '');
}
return value;
};
/**
* @changeFormat: troca o formato do numero string de "PT-BR" para "EN-US" e vice-versa
*
* @param value numero em formato de string a ser convertido
*
* @returns numero em formato de string formatado de "PT-BR" para "EN-US" e vice-versa
*/
static changeFormat = (value: string): string => {
//Formatting output following formatnumber
return value.replace(/\./g, '_').replace(/\,/g, '.').replace(/\_/g, ',');
};
};

@@ -9,340 +9,134 @@ import { NumberUtils } from '../../src/utils/NumberUtils';

//Positives
it('stringToNumber - integer Number | ###', function () {
const arrayDataTest = [
{ valueInput: '100', valueOutput: 100 },
{ valueInput: '100,12', valueOutput: 100.12 },
{ valueInput: '11500,12', valueOutput: 11500.12 },
{ valueInput: '11500', valueOutput: 11500 },
{ valueInput: '11.500,003', valueOutput: 11500.003 },
{ valueInput: '-100', valueOutput: -100 },
{ valueInput: '-100,12', valueOutput: -100.12 },
{ valueInput: '-11500,1', valueOutput: -11500.1 },
{ valueInput: '-11500', valueOutput: -11500 },
{ valueInput: '-11.500,003', valueOutput: -11500.003 },
{ valueInput: 'R$100', valueOutput: 100 },
{ valueInput: 'R$100,12', valueOutput: 100.12 },
{ valueInput: 'R$11500,12', valueOutput: 11500.12 },
{ valueInput: 'R$11500', valueOutput: 11500 },
{ valueInput: 'R$11.500,003', valueOutput: 11500.003 },
{ valueInput: '-R$100', valueOutput: -100 },
{ valueInput: '-R$100,12', valueOutput: -100.12 },
{ valueInput: '-R$11500,12', valueOutput: -11500.12 },
{ valueInput: '-R$11500', valueOutput: -11500 },
{ valueInput: '-R$11.500,003', valueOutput: -11500.003 },
{ valueInput: '', valueOutput: NaN },
{ valueInput: 'OrdinaryString', valueOutput: NaN },
{ valueInput: '100.167.80', valueOutput: NaN },
{ valueInput: 'uahsuhas,auhsuhasu', valueOutput: NaN },
{ valueInput: '100,100,100', valueOutput: NaN },
{ valueInput: 'OrdinaryString,.OrdinaryString', valueOutput: NaN },
{ valueInput: 'OrdinaryString.,OrdinaryString', valueOutput: NaN },
{ valueInput: '.121212', valueOutput: 0.121212 },
{ valueInput: ',121212', valueOutput: 0.121212 },
{ valueInput: '1,232,333.345', valueOutput: NaN },
{ valueInput: '1232333,345', valueOutput: 1232333.345 },
]
let result = NumberUtils.stringToNumber('100');
expect(result).toBe(100);
it('stringToNumber', function () {
let result: number;
arrayDataTest.forEach(e => {
result = NumberUtils.stringToNumber(e.valueInput);
expect(result).toBe(e.valueOutput);
})
});
it('stringToNumber - decimal Number with comma | ###,##', function () {
let result = NumberUtils.stringToNumber('100,12');
expect(result).toBe(100.12);
});
it('stringToNumber - decimal Number with comma | #####,##', function () {
let result = NumberUtils.stringToNumber('11500,12');
expect(result).toBe(11500.12);
});
it('stringToNumber - integer valeu | #####', function () {
let result = NumberUtils.stringToNumber('11500');
expect(result).toBe(11500);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('11.500,003');
expect(result).toBe(11500.003);
});
//Negatives
it('stringToNumber - integer Number | -###', function () {
let result = NumberUtils.stringToNumber('-100');
expect(result).toBe(-100);
});
it('stringToNumber - decimal Number with comma | -###,##', function () {
let result = NumberUtils.stringToNumber('-100,12');
expect(result).toBe(-100.12);
});
it('stringToNumber - decimal Number with comma | -#####,##', function () {
let result = NumberUtils.stringToNumber('-11500,12');
expect(result).toBe(-11500.12);
});
it('stringToNumber - integer valeu | -#####', function () {
let result = NumberUtils.stringToNumber('-11500');
expect(result).toBe(-11500);
});
it('stringToNumber - valor | -##.###,###', function () {
let result = NumberUtils.stringToNumber('-11.500,003');
expect(result).toBe(-11500.003);
});
//Currency
it('stringToNumber - integer Number | R$###', function () {
let result = NumberUtils.stringToNumber('R$100');
expect(result).toBe(100);
});
it('stringToNumber - decimal Number with comma | R$###,##', function () {
let result = NumberUtils.stringToNumber('R$100,12');
expect(result).toBe(100.12);
});
it('stringToNumber - decimal Number with comma | R$#####,##', function () {
let result = NumberUtils.stringToNumber('R$11500,12');
expect(result).toBe(11500.12);
});
it('stringToNumber - integer valeu | R$#####', function () {
let result = NumberUtils.stringToNumber('R$11500');
expect(result).toBe(11500);
});
it('stringToNumber - valor | R$##.###,###', function () {
let result = NumberUtils.stringToNumber('R$11.500,003');
expect(result).toBe(11500.003);
});
//Currency - Negative
it('stringToNumber - integer Number | -R$###', function () {
let result = NumberUtils.stringToNumber('-R$100');
expect(result).toBe(-100);
});
it('stringToNumber - decimal Number with comma | -R$###,##', function () {
let result = NumberUtils.stringToNumber('-R$100,12');
expect(result).toBe(-100.12);
});
it('stringToNumber - decimal Number with comma | -R$#####,##', function () {
let result = NumberUtils.stringToNumber('-R$11500,12');
expect(result).toBe(-11500.12);
});
it('stringToNumber - integer valeu | -R$#####', function () {
let result = NumberUtils.stringToNumber('-R$11500');
expect(result).toBe(-11500);
});
it('stringToNumber - valor | -R$##.###,###', function () {
let result = NumberUtils.stringToNumber('-R$11.500,003');
expect(result).toBe(-11500.003);
});
//ERROR - NA
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('OrdinaryString');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('100.167.80');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('uahsuhas,auhsuhasu');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('100,100,100');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('OrdinaryString,.OrdinaryString');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('OrdinaryString.,OrdinaryString');
expect(result).toBe(NaN);
});
it('stringToNumber - valor | ##,###.###', function () {
let result = NumberUtils.stringToNumber('.121212');
expect(result).toBe(0.121212);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber(',121212');
expect(result).toBe(0.121212);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber(',121212');
expect(result).toBe(0.121212);
});
it('stringToNumber - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('100,0005');
expect(result).toBe(100.0005);
});
it('format - valor | ##.###,###', function () {
let result = NumberUtils.stringToNumber('R$ 1.001.200,00');
expect(result).toBe(1001200);
});
// FORMAT
// ----------------------------------------------------------------------------------------
it('format - valor | ##.###,###', function () {
let result = NumberUtils.format('100,0005', 1, 1)
expect(result).toBe("100,0");
});
const casesStrValue = [
it('format - valor | ##.###,###', function () {
{ precision: 4, prettyprecision: 2, strvalue: '1.200.999,3333', strvalueOutPut: '1.200.999,3333' },
{ precision: 2, prettyprecision: 1, strvalue: '1.000', strvalueOutPut: '1,0' },
{ precision: 2, prettyprecision: 1, strvalue: '1200999,99', strvalueOutPut: '1.200.999,99' },
{ precision: 4, prettyprecision: 2, strvalue: '1,232,333.345', strvalueOutPut: 'NaN' },
{ precision: 2, prettyprecision: 1, strvalue: '1,23', strvalueOutPut: '1,23' },
let result = NumberUtils.format('1000', 0, 0)
expect(result).toBe("1.000");
});
{ precision: 4, prettyprecision: 2, strvalue: '1.200.999', strvalueOutPut: 'NaN' },
{ precision: 2, prettyprecision: 1, strvalue: '1.000', strvalueOutPut: '1,0' },
{ precision: 2, prettyprecision: 1, strvalue: '1200999,99', strvalueOutPut: '1.200.999,99' },
{ precision: 4, prettyprecision: 2, strvalue: '1,232,333.345', strvalueOutPut: 'NaN' },
{ precision: 2, prettyprecision: 1, strvalue: '1,23', strvalueOutPut: '1,23' },
it('format - valor | ##.###,###', function () {
]
let result = NumberUtils.format('R$ 1.001.200,00', 0, 0)
expect(result).toBe("1.001.200");
});
it('format', function () {
let result: string = '';
casesStrValue.forEach(e => {
result = NumberUtils.format(e.strvalue, e.precision, e.prettyprecision);
expect(result).toBe(e.strvalueOutPut);
})
it('format - valor | ##.###,###', function () {
let result = NumberUtils.format('1001200,0055', 4, 5)
expect(result).toBe("1.001.200,0055");
});
it('format - valor | ##.###,###', function () {
let result = NumberUtils.format('1001200,005500', 6, 5)
expect(result).toBe("1.001.200,00550");
it('Should return error an error in cause of a negative precision', function () {
expect(() => { NumberUtils.format('111', -1, 1); }).toThrowError('O argumento "precision" precisa ser um número inteiro positivo.');
});
it('format - valor | ##.###,###', function () {
let result = NumberUtils.format('1001200', 4, 0)
expect(result).toBe("1.001.200");
it('Should return error an error in cause of a negative prettyPrecision', function () {
expect(() => { NumberUtils.format('111', 1, -1); }).toThrowError('O argumento "prettyPrecision" precisa ser um número inteiro positivo.');
});
it('format - valor | ##.###,###', function () {
let result = NumberUtils.format('1001200', 4, 1)
expect(result).toBe('1.001.200,0');
});
it('format - valor | ##.###,###', function () {
// keepOnlyDecimalSeparator
// ----------------------------------------------------------------------------------------
const testCasesTo_changeFormat = [
let result = NumberUtils.format('10.012.00', 4, 1)
expect(result).toBe("NaN");
});
{ inputValue: '1.200.999', outPutValue: '1,200,999' },
{ inputValue: '1.000,99', outPutValue: '1,000.99' },
{ inputValue: '1200999,99', outPutValue: '1200999.99' },
{ inputValue: 'R$ 1,232,333.345', outPutValue: 'R$ 1.232.333,345' },
{ inputValue: 'R$ 1.232.333,345', outPutValue: 'R$ 1,232,333.345' },
it('format - valor | ##.###,###', function () {
]
let result = NumberUtils.format('10,012,00', 4, 1)
expect(result).toBe("NaN");
});
it('format without formatnumber parameter', function () {
let result: string = '';
testCasesTo_changeFormat.forEach(e => {
result = NumberUtils.changeFormat(e.inputValue);
expect(result).toBe(e.outPutValue);
})
it('format - valor | ##.###,###', function () {
let result = NumberUtils.format('1001200', 4)
expect(result).toBe("1.001.200,0000");
});
// keepOnlyDecimalSeparator
// ----------------------------------------------------------------------------------------
const testCasesTo_keepOnlyDecimalSeparator = [
it('format - valor | ##.###,###', function () {
{ formatnumber: 'pt-BR', inputValue: '1.200.999', outPutValue: '1200999' },
{ formatnumber: 'pt-BR', inputValue: '1000,99', outPutValue: '1000,99' },
{ formatnumber: 'pt-BR', inputValue: '1200999,99', outPutValue: '1200999,99' },
{ formatnumber: 'pt-BR', inputValue: 'R$ 1.232.333,345', outPutValue: 'R$ 1232333,345' },
let result = NumberUtils.format('OrdinaryString', 4, 1)
expect(result).toBe("NaN");
});
{ formatnumber: 'en-US', inputValue: '1,200,999', outPutValue: '1200999' },
{ formatnumber: 'en-US', inputValue: '1,000.99', outPutValue: '1000.99' },
{ formatnumber: 'en-US', inputValue: '1200999.99', outPutValue: '1200999.99' },
{ formatnumber: 'en-US', inputValue: 'EUR 1,232,333.345', outPutValue: 'EUR 1232333.345' },
it('format - valor | NaN', function () {
]
let result = NumberUtils.format('NaN', 4, 1)
expect(result).toBe("NaN");
});
it('format without formatnumber parameter', function () {
let result: string = '';
testCasesTo_keepOnlyDecimalSeparator.forEach(e => {
result = NumberUtils.keepOnlyDecimalSeparator(e.inputValue, e.formatnumber);
expect(result).toBe(e.outPutValue);
})
it('format', function () {
let result = NumberUtils.format('100.0000', 2, 1)
expect(result).toBe("100,0");
});
it('format', function () {
let result = NumberUtils.format('100.1000', 2, 1)
expect(result).toBe("100,1");
});
it('format', function () {
let result = NumberUtils.format('100.1200', 2, 1)
expect(result).toBe("100,12");
});
it('format', function () {
let result = NumberUtils.format('1000.01', 2, 1)
expect(result).toBe("1.000,01");
});
it('format', function () {
let result = NumberUtils.format('1000.11', 2, 1)
expect(result).toBe("1.000,11");
});
it('format', function () {
let result = NumberUtils.format('1000.10', 2, 1)
expect(result).toBe("1.000,1");
});
it('format', function () {
let result = NumberUtils.format('100.0050', 2, 0)
expect(result).toBe("100,01");
});
it('format', function () {
let result = NumberUtils.format('100.0040', 2, 0)
expect(result).toBe("100");
});
it('format', function () {
let result = NumberUtils.format('1.000,59000', 5, 2)
expect(result).toBe("1.000,59");
});
it('format', function () {
let result = NumberUtils.format('10', 1, 2)
expect(result).toBe("10,0");
});
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc