0.1.2 • Published 4 years ago
fvi-node-utils v0.1.2
fvi-node-utils
npm run compile: Executa a limpeza dos arquivos e diretorios.npm run debug-test: Executa os testes unitários com o DEBUG ativo.npm run test: Executa os testes unitários.npm run debug-dev: Executa os testes unitários e espera por alterações com o DEBUG ativo.npm run dev: Executa os testes unitários e espera por alterçãoes.npm run prod: Executa o código com NODE_ENV=production.npm run coverage: Executa os testes unitários e retorna a cobertura dos códigos através do nycnpm run release: Inicia uma nova release de versão incrementando o patch, git flow release start.npm run release:minor: Inicia uma nova release de versão incrementando o minor, git flow release start.npm run release:major: Inicia uma nova release de versão incrementando o major, git flow release start.npm run release:finish: Finaliza a release, ou seja, realiza o git flow release finish.
FVI - Node Utilities
Biblioteca fvi de funções e bibliotecas utilitárias para programação em Node.js.
Core Utilities
const {
env,
sugar,
debug,
logger,
string,
config,
blocked,
arrays,
objects,
} = require('fvi-node-utils')- sugar: sugar.js
- debug: debug-safe.js
- logger: pino
- string: voca.js
- config: convict.js, uma implementação que busca sempre arquivos *.json no diretório raiz do projeto.
- blocked: blocked.js
- env: Ver documentação abaixo.
- arrays: Ver documentação abaixo.
- objects: Ver documentação abaixo.
Env Utilities
const {
DEVELOPMENT,
LOCALHOST,
TEST,
STAGING,
PRODUCTION,
IS_ENV,
IS_DEV,
IS_TEST,
IS_LOCAL,
IS_STAG,
IS_PROD,
} = require('fvi-node-utils/app/env)- DEVELOPMENT: Constanten que representa a
Stringdevelopment. - LOCALHOST: Constanten que representa a
Stringlocalhost. - TEST: Constanten que representa a
Stringtest. - STAGING: Constanten que representa a
Stringstaging. - PRODUCTION: Constanten que representa a
Stringproduction. - IS_ENV(node_env: string): Função que recebe uma
Stringe retorna a validaçãoprocess.env.NODE_ENV === param. - IS_DEV: Propriedade booleana
true: process.env.NODE_ENV === DEVELOPMENT, oufalse. - IS_TEST: Propriedade booleana
true: process.env.NODE_ENV === TEST, oufalse. - IS_LOCAL: Propriedade booleana
true: process.env.NODE_ENV === LOCALHOST, oufalse. - IS_STAG: Propriedade booleana
true: process.env.NODE_ENV === STAGING, oufalse. - IS_PROD: Propriedade booleana
true: process.env.NODE_ENV === PRODUCTION, oufalse.
Array Utilities
const {
chunk,
flatmap,
asyncFilter,
arrayToBase64,
arrayToJson,
collect,
} = require('fvi-node-utils/app/arrays)- chunck(xs: array, limit: int):
chunk([1, 2, 3, 4, 5], 2)resultado[[1, 2], [3, 4], 5]. - flatmap: Função de
flatmappara versões Node.js sem esta implementação nativa. - asyncFilter: Função de
filterpara cenários assíncronos, portanto retorna uma Promise. - arrayToBase64(xs: array): Função que recebe um Array e retorna um Base64 equivalente, senão dispara o erro.
- arrayToJson(base64: string): Função que recebe um Base64 e retorna um Object equivalente, senão dispara o erro.
- collect: collect.js
Object Utilities
const {
merge,
json,
inspect,
isConfig,
toJson,
toBase64,
toError,
toErrorStack,
joi,
} = require('fvi-node-utils/app/objects')- joi: joi.js
- merge: Atalho p/
const merge = (obj, toMerge) => Object.assign(obj, toMerge). - json: Atalho p/
const json = obj => JSON.stringify(obj). - inspect: Atalho p/
const inspect = obj => util.inspect(obj, false, null). - toJson(base64: string): Função que recebe um Base64 e retorna o Json equivalente, senão dispara o erro.
- toBase64(json: string): Função que recebe um Object e retorna o Base64 equivalente, senão dispara o erro.
- toErrorStack: Função que retorna um Error detalhado, com
codeetype. Exemplo:
const stackError = toErrorStack(new Error('Message'))
console.log(stackError.code) // 500
console.log(stackError.type) // error
console.log(stackError.message) // Message
const stackError = toErrorStack(null)
console.log(stackError.code) // 520
console.log(stackError.type) // unknown_error
console.log(stackError.message) // nullEsta função também trata erros que são Object's que possuem uma estrutura de erro HTTP, e.g. error.request ou error.response.
- toErrorTrace: Função que retorna uma Promise com o error detalhado, com trace completo em formato json. Exemplo:
toErrorTrace(e)
.then(hydrateError => console.error(hydrateError))
.catch(console.error)Essa função utiliza a biblioteca stacktrace.js para recuperar o trace do erro passado como parâmetro, caso ocorra um erro durante o processo de recuperar o erro detalhado usando o stacktracejs será retornado o erro original em .catch(e => console.error(e)).
- isConfig(obj): Função que retorna
truese o Object passado repeitar o contrato básico like a convict ou node_config, esta função é útil caso tenhamos uma biblioteca que utiliza configurações externas e as recebe através de uma Object e pode validar se este parâmetro passado respeita métodos base que recupera as configurações externas. Basicamente esta função valida o seguinte:
interface IConfig {
get(param: String): Object
has(param: String): Boolean
getProperties(): Object
}Portanto,
let isValidConfig = isConfig({
label: 'value',
})
// isValidConfig === false
isValidConfig = isConfig({
get: s => s,
has: s => !!s,
getProperties: () => {},
})
// isValidConfig === true