1.0.9 • Published 6 months ago

packs-template-baseweb v1.0.9

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

toc

npm

Descrição

Esse pacote contem as funções básicas e comuns ao desenvolvimento de todas as aplicações WEB para o time de Packs. O objetivo desse projeto é simplificar e padronizar o uso de recursos de modo que o desenvolvedor não precise re-implementar todas as vezes e de diferentes formas.

Funcionalidades

Para utilizar 100% do pacote as seguintes chaves devem estar no arquivo .env de cada ambiente:

  • REACT_APP_LOG_LEVEL
  • REACT_APP_ENVIRONMENT
  • REACT_APP_NAME
  • REACT_APP_LOG_USER
  • REACT_APP_LOG_PASSWORD
  • REACT_APP_LOG_SERVER
  • REACT_APP_FLAG_SERVER
  • REACT_APP_FLAG_USERNAME
  • REACT_APP_FLAG_PASSWORD
  • REACT_APP_FLAG_SYSTEM_KEY

Segue abaixo a lista de funcionalidades disponíveis no pacote.

AppData

Para implementação de módulos que trabalham com a query string AppData, existe uma funcionalidade para capturar e preparar o parse automático e um objeto do tipo:

{
  "accountToken": "string",
  "profile": {
    "name": "string",
    "website": "string",
    "email": "string",
    "phone_number": "string"
  }
}

Base64

De modo a facilitar, as funções encode() e decode() estão disponíveis. Gerando um base64 a partir de uma string e uma string a partir de um base64 respectivamente.

Blip

Realizar comandos no Blip é sempre um desafio e todas as aplicações precisam realizar. Para deixar bem simples esse uso foi implementado uma abstração da seguinte forma:

import {blip} from "packs.template.baseweb"
...

function test(){

    // Criar um cliente do blip autorizado
    let client = blip.configure("BOT AUTHORIZATION");

    // A partir daí as seguintes funções estão disponíveis

    // Realizar tracking de bots
    await client.trackAsync(eventName, value, contactIdentity);

    // Realizar upload de arquivos
    await client.uploadFileAsync(blob);

    // Realizar quaisquer outros comandos no BLiP
    await client.sendCommandAsync(route, request);
}

As requests são do tipo CommandRequest. Tipo já exportado. Alguns tipos que também são exportados de modo a facilitar a contrução do requisição:

  • route
  • method
  • to
  • type

Environments

Tem a funcionalidade de gerir o ambiente da aplicação para definir fluxos que devem ser executados em determinados ambientes.

Ex: Segment que só deve ser usado em ambiente produtivo

É carregado do arquivo .env o ambiente atual.

As seguintes funções podem ser usadas:

  • isDevelopment()
  • isStaging()
  • isProduction()

Json

Uma coisa simples mas muito útil para efetuar logs é a formatação do objeto a ser logado. E por isso foi disponibilizado a função Json.format(object) que gera uma string a partir do objeto de forma identada.

Local storage

Facilita o armazenamento e recuperação de dados no navegador. As seguintes funções estão disponíveis:

  • add(key, value): Adicionar um novo valor
  • get(key): recupera um valor
  • check(key): verifica se a chave existe
  • remove(key): remove um valor a partir da chave
  • clear(): limpa todo o storage

Logger

Talvez a principal funcionalidade desse pacote é o Logger. Logar as aplicações é de extrema importancia para se obtér métricas.

Para isso utilize das seguintes funções:

  • currentLevel: Retorna o nível de log atual. Não influencia nos logs enviados para o servidor, somente nos exibidos no navegador
  • levels: A lista disponível de nível de log
  • getStatus(): Obtém o nível de preparo da aplicação para logar. 0 -> Não está apta | 1 -> Somente no navegador | 2 -> Loga no servidor
  • configure(): Busca no arquivo .env as seguintes chaves para instanciar o logger:
    • ApplicationName
    • User
    • Password
    • Server
  • debug(message, args): Loga com o níver de "debug"
  • info(message, args): Loga com o nível de "information"
  • warn(message, args): Loga com o nível de "warning"
  • error(message, args): Loga com o nível de "error"
  • fatal(message, args): Loga com o nível de "fatal"

Query string

Para obter um objeto a partir da query string, utilize o queryString.parse(). Todos os campos na query string são recuperados e um objeto json é devolvido.

Segment

Para realizar trackeamento utlizando o segment, esse pacote abstraí as principais funcionalidades a seguir:

  • configure(): Busca no arquivo .env asseguinte chave para instanciar o segment:
    • SegmentKey
  • isReady(): Verifica se à aplicação está preparada para trackear
  • autoTrackPages(userId): Executa o comando page(), para cada nova página acessada pelo usuário
  • identify(userId, traits): Identifica o usuário atual
  • page(userId, category, name, properties): Registra a página visitada pelo usuário
  • track(userId, event, properties): Identifica a ação executada pelo usuário

    Feature flags

As features flags permitem que em tempo de execução uma ação seja feita ou exibida. As flags são controladas por outro sistema. Essa biblioteca tem as seguintes chamadas para facilitar a execução:

  • configure(): Busca no arquivo .env asseguinte chave para instanciar as flags:
    • REACT_APP_FLAG_SERVER
    • REACT_APP_FLAG_USERNAME
    • REACT_APP_FLAG_PASSWORD
    • REACT_APP_FLAG_SYSTEM_KEY
  • isEnabledAsync(flagKey): Verifica na API se a flag correspondente está ativa.
  • getSummaryAsync(flagKey): Obtém a porcentagem de uso da flag. Permite verificar quantos porcento tem sido ativo ou não.

    Para cadastrar, ativar ou desativar flags acesse: FlagsAPI

1.0.9

6 months ago

1.0.8

6 months ago

1.0.84

6 months ago

1.0.83

6 months ago

1.0.82

6 months ago

1.0.81

6 months ago

1.0.7

8 months ago

1.0.6

8 months ago

1.0.5

8 months ago

1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

9 months ago