fvi-node-utils
v0.1.2
Published
Freunde Von Idden - Node Utils Library
Downloads
7
Maintainers
Readme
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
String
development. - LOCALHOST: Constanten que representa a
String
localhost. - TEST: Constanten que representa a
String
test. - STAGING: Constanten que representa a
String
staging. - PRODUCTION: Constanten que representa a
String
production. - IS_ENV(node_env: string): Função que recebe uma
String
e 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
flatmap
para versões Node.js sem esta implementação nativa. - asyncFilter: Função de
filter
para 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
code
etype
. 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) // null
Esta 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
true
se 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