Socket
Socket
Sign inDemoInstall

frete

Package Overview
Dependencies
Maintainers
1
Versions
26
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

frete - npm Package Compare versions

Comparing version 0.3.2 to 0.4.0

test.sh

1

frete.d.ts

@@ -10,2 +10,3 @@ declare module 'frete' {

'40290': 'SEDEX Hoje Varejo*';
[key: string]: string;
}

@@ -12,0 +13,0 @@

99

frete.js

@@ -103,5 +103,5 @@ 'use strict';

allOptions.forEach(function (propertyName) {
let setterName = getSetterName(propertyName);
let proto = Frete.prototype;
for (const propertyName of allOptions) {
const setterName = getSetterName(propertyName);
const proto = Frete.prototype;

@@ -117,3 +117,3 @@ frete[propertyName] = frete[setterName] = function (value) {

}
});
}

@@ -126,4 +126,4 @@ frete.defaultOptions = defaultOptions;

this.options = opts;
for (let key in this.options) {
let value = this.options[key];
for (const key in this.options) {
const value = this.options[key];

@@ -235,7 +235,20 @@ if (!V.isFunction(this[key])) {

]
},
listaServicos: {
correiosMethodName: 'ListaServicos'
},
listaServicosStar: {
correiosMethodName: 'ListaServicosSTAR'
},
verificaModal: {
correiosMethodName: 'VerificaModal',
required: []
}
};
for (let methodName in apiMethods) {
let api = apiMethods[methodName];
for (const methodName in apiMethods) {
const api = apiMethods[methodName];
defineFreteApiMethod(methodName, api.correiosMethodName);

@@ -287,5 +300,5 @@ }

let errors = getValidationErrors(methodName, opts);
const errors = getValidationErrors(methodName, opts);
if (errors.length > 0) {
let err = new Error("Validation error:\n" + errors.join("\n"));
const err = new Error("Validation error:\n" + errors.join("\n"));
return callback(err);

@@ -310,13 +323,13 @@ }

function decorateServices (services) {
services.forEach(function(service) {
for (let key in service) {
let value = service[key];
for (const service of services) {
for (const key in service) {
const value = service[key];
delete service[key];
let keyCamelCase = key[0].toLowerCase() + '' + key.substring(1);
const keyCamelCase = key[0].toLowerCase() + '' + key.substring(1);
service[keyCamelCase] = value;
}
service.name = frete.servicos.names[String(service.codigo).padStart(5, '0')];
});
}

@@ -327,9 +340,9 @@ return services;

function getErrorsFromServices (services) {
let errors = [];
const errors = [];
services.forEach(function(service) {
if (service.MsgErro && errors.indexOf(service.MsgErro) === -1) {
errors.push(service.MsgErro);
for (const service of services) {
if (service.MsgErro && !errors.includes(service.MsgErro)) {
errors.push(`${service.MsgErro} ${service.Erro || ''}`.trim());
}
});
}

@@ -339,2 +352,8 @@ return errors;

const resultParsers = {
ListaServicos(body) { return body.ServicosCalculo.cServicosCalculo; },
ListaServicosSTAR(body) { return body.ServicosCalculo.cServicosCalculo; },
VerificaModal(body) { return body.ServicosModal.cModal; }
};
function doRequest(methodName, opts, callback) {

@@ -345,3 +364,3 @@ V.string(methodName, 'methodName');

let resultNode = methodName + "Result";
const resultNode = methodName + "Result";
execute(methodName, opts, function (err, res, body) {

@@ -357,5 +376,5 @@ if (err) return callback(err, res, body);

let errors = getErrorsFromServices(services);
const errors = getErrorsFromServices(services);
if (errors.length > 0) {
let err = new Error(methodName + ":\n" + errors.join("\n"));
const err = new Error(methodName + ":\n" + errors.join("\n"));
return callback(err, res, body);

@@ -367,2 +386,12 @@ }

if (res[resultNode] && resultParsers[methodName]) {
try {
const parser = resultParsers[methodName];
return callback(null, parser(res[resultNode]));
} catch (ex) {
return callback("Unknown response", res, body);
}
}
return callback("Unknown response", res, body);

@@ -376,3 +405,3 @@ });

let api = apiMethods[methodName];
const api = apiMethods[methodName];
if (!api) {

@@ -382,18 +411,20 @@ throw new Error("Invalid method name: " + methodName);

let requiredFields = api.required.concat(['nCdServico', 'sCepOrigem', 'sCepDestino']);
const requiredFields = api.required ?
api.required.concat(['nCdServico', 'sCepOrigem', 'sCepDestino']) : [];
let errors = [];
requiredFields.forEach(function(fieldName) {
const errors = [];
for (const fieldName of requiredFields) {
// special case for cdServico since its a string but starts with n
// and accepts more numbers with ,
let isString = fieldName == 'nCdServico' || fieldName[0] === 's';
let isNumber = fieldName != 'nCdServico' && fieldName[0] === 'n';
const isString = fieldName == 'nCdServico' || fieldName[0] === 's';
const isNumber = fieldName != 'nCdServico' && fieldName[0] === 'n';
let value = options[fieldName];
const value = options[fieldName];
if ((isString && !V.isString(value)) || (isNumber && !V.isNumber(value))) {
let msg = "Required option: " + fieldName + " has invalid value: " + value;
msg += "\nExpected a valid: " + (isString ? 'string' : 'number');
let msg = `Required option: ${fieldName} has invalid value: ${value}`;
msg += `\nExpected a valid: ${(isString ? 'string' : 'number')}`;
errors.push(msg);
}
});
}

@@ -423,3 +454,3 @@ if (V.isArray(options.nCdServico) && options.nCdServico.length > 1) {

// now we need to set the first letter to lowerCase(), just to be cool
let firstLetter = prettyNameMethod[0].toLowerCase();
const firstLetter = prettyNameMethod[0].toLowerCase();
prettyNameMethod = firstLetter + prettyNameMethod.substring(1);

@@ -426,0 +457,0 @@ }

@@ -8,6 +8,6 @@ 'use strict';

it('Test validation errors', function (done) {
var f = frete()
const f = frete()
f.preco(function (err) {
let msg = err.message;
const msg = err.message;

@@ -32,4 +32,4 @@ assert(/Validation error:/.test(msg));

it('Set default options', function () {
let defaultOptions = frete.defaultOptions;
let expected = {
const defaultOptions = frete.defaultOptions;
const expected = {
sCepOrigem: '',

@@ -60,3 +60,3 @@ sCdMaoPropria: 'N',

it('Request .prazo() ok', function (done) {
let f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');

@@ -66,4 +66,4 @@ f.prazo('13466321', function (err, results) {

let services = f.options.nCdServico;
let hasAllServices = true;
const services = f.options.nCdServico;
const hasAllServices = true;

@@ -90,3 +90,3 @@ services.forEach(function (service) {

it('Requests .prazo() validation errors', function (done) {
let f = frete().servico('');
const f = frete().servico('');

@@ -109,3 +109,3 @@ f.prazo('13466321', function (err) {

it('Requests .prazo() correios error', function (done) {
let f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');

@@ -119,3 +119,3 @@ f.prazo('555555', function (err) {

it('Request .preco()', function (done) {
let f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');

@@ -136,3 +136,3 @@ f

let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -161,3 +161,3 @@

it('Request .precoPrazo()', function (done) {
let f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');

@@ -178,3 +178,3 @@ f

let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -205,3 +205,3 @@

var f = frete({
const f = frete({
cepDestino: '13466321',

@@ -222,3 +222,3 @@ peso: 1,

let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -249,3 +249,3 @@

var f = frete({
const f = frete({
cepDestino: '13466321',

@@ -265,3 +265,3 @@ peso: 1,

let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -287,7 +287,7 @@

it('[promises] Request .prazo() ok', async() => {
let f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const results = await f.prazo('13466321');
let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -336,3 +336,3 @@

it('[promises] request .precoPrazo()', async() => {
let f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');
const f = frete().servico([ frete.servicos.sedex ]).cepOrigem('13467460');

@@ -351,3 +351,3 @@ f

const results = await f.precoPrazo('13466321');
let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -375,3 +375,3 @@

var f = frete({
const f = frete({
cepDestino: '13466321',

@@ -391,3 +391,3 @@ peso: 1,

let services = f.options.nCdServico;
const services = f.options.nCdServico;
let hasAllServices = true;

@@ -411,2 +411,29 @@

});
it('listaServicos', async () => {
const results = await frete().listaServicos();
assert(results);
for (const service in frete.servicos) {
if (service === 'names') { continue; }
assert(results.some((r) => r.codigo == frete.servicos[service]));
}
});
it('listaServicosStar', async () => {
const results = await frete().listaServicosStar();
assert(results);
});
it('verificaModal', async () => {
const results = await frete({
cepOrigem: '13467460',
cepDestino: '13466321',
}).servico([ frete.servicos.sedex ]).verificaModal();
assert(results);
assert(results.length, 1);
assert(results[0].codigo, '04014');
});
});
{
"name": "frete",
"version": "0.3.2",
"version": "0.4.0",
"description": "Modulo para consumo da API de frete dos correios brasileiros, com apenas node-soap como dependencia e consultando *apenas* a api dos correios, promises support.",

@@ -5,0 +5,0 @@ "main": "frete.js",

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