npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

versatus-arch-framework

v1.15.16

Published

<h1>VersatusFK</h1>

Readme

Para fazermos as validações que são possiveis no versatusFK, primeiro precisamos criar um contexto, e dentro do contexto podemos chamar qualquer função do versatusFK, siga o exemplo abaixo:

import VersatusFK, { VersatusFKInterface } from 'versatus-fk';

VersatusFK.loginContext("NOME-DE-USUARIO", "SENHA", "METODO-DA-CHAMADA", async (fk: VersatusFKInterface)=>{
    //sua função

    //chamando metodos do versatusFK
    fk.validadeRole("foo");
    fk.setCache("key", "value");
});

Ha tambem outra forma de criarmos o contexto, no lugar de usuario e senha, utilizamos o accessToken informado no momento da autenticação:

import VersatusFK, { VersatusFKInterface } from 'versatus-fk';

VersatusFK.context("ACCESS-TOKEN", "METODO-DA-CHAMADA", async (fk: VersatusFKInterface)=>{
    //sua função

    //chamando metodos do versatusFK
    fk.validadeRole("foo");
    fk.setCache("key", "value");
});

com o contexto criado, podemos ver quais modulos podemos utilizar:

    fk.validate('FOO_TOGGLE', 'FOO_ROLE');

O metodo validate tambem valida se o accessToken é valido, e se ele esta expirado ou não.

É possivel tambem fazer validações especificas com os metodos:

    //apenas as validações referente a toggle;
    fk.validateToggle('FOO_TOGGLE');


    //validações apenas das permissoes do usuario
    fk.validadeRole('FOO_ROLE');


    validações referentes ao accessToken
    fk.validateToken();
    //retorna o accessToken
    fk.token();

    //retorna o id do usuario
    fk.loginId();

    //retorna o ambiente do servico que esta sendo executado, ex (DEV, HML, PRD)
    fk.environment();


    //obtem valores de variaveis de ambiente, ou do arquivo dev-environment.json
    fk.getEnv('FOO');
    //persistindo dado no cache por 1800 segundos, caso a chave não exista sera criada
    fk.setCache("key","value", 1800);

    //buscando dados do cache pela chave, caso a chave não exista retornara null
    fk.getCache("key");

    //apagando uma chave no cache
    fk.deleteCache("key);

No metodo setCache o parametro de tempo de expiração é opcional, caso ele não seja enviado o dado ficara em cache por 1 dia

    const result = await fk.getPgPool().query<IUser[]>('SELECT * FROM USER');

Esta query esta sendo executada no banco default, que foi adicionado na variavel de ambiente PG_DB_DATABASE

No exemplo a seguir, vemos como consultar outro banco:

    const config = {
        user: "PG_USERNAME",
        database: "DATABASE_NAME",
        password: "PG_PASSWORD",
        port: 5432,
        host: "PG_PASSWORD",
        ssl: false
    }

    const result = await fk.getPgPool(config).query<IUser[]>('SELECT * FROM USER');

Desta forma podemos acessar qualquer outro banco de dados.

    const result = await fk.cassandraDb().execute('SELECT * FROM user');

neste caso acima, estamos fazendo uma busca no keyspace default, mas podemos tambem consultar outros keyspaces como no exemplo abaixo:

    const result = await fk.cassandraDb('users_keyspace').execute('SELECT * FROM user');

Assim conseguimos consultar qualquer keyspace que esteja na mesma conexão o banco cassandra;

No exemplo a seguir podemos ver como enviar mensagem para uma fila chamada "FILA1":

    fk.sendToQueue('FILA1', "hello world");

Se a fila: "FILA1" não existir, ela sera criada.

É possivel enviar para a fila, apenas dados no formato de string

É possivel tambem consumir mensagens das filas:

    fk.queueConsumer('FILA1', (msg: ConsumeMessage | null)=>{
        if(msg){
            console.log(`content: ${msg.content.toString()}!!`);
        }
    })

Toda vez que for enviada uma mensagem para a fila FILA1, sera executada a função callback do metodo queueConsumer.

    fk.warning("message");
    fk.info("message");
    fk.error("message");
    fk.error("message", false);

Alem da mensagem, há tambem um segundo parametro que pode ser adicionado ao metodo, o parametro showLog, é um parametro booleano que define se o log sera exibido na tela ou não, por default ele é true, ou seja, caso o desenvolvedor não atribua o valor falso a este parametro, alem da mensagem de log ser enviada para o serviço de log, ela tambem sera exibida na tela.

    import { cache } from 'versatus-fk';

    cache.set("key", "value", 1800);
    const result = await cache.getVal("key");
    cache.del("key");

Neste caso, diferente de quando temos um contexto criado, no campo set, é obrigatorio adicionar um tempo de expiração em segundos para o dado que esta sendo adicionado ao cache.

    import { getPgPool } from 'versatus-fk';

    //banco de dados default do sistema
    const result = await getPgPool().query<IUser[]>('SELECT * FROM USER');


    //Banco de dados adicional
    const config = {
        user: "PG_USERNAME",
        database: "DATABASE_NAME",
        password: "PG_PASSWORD",
        port: 5432,
        host: "PG_PASSWORD",
        ssl: false
    }

    const result = await getPgPool(config).query<IUser[]>('SELECT * FROM USER');
    import { cassandraDb } from 'versatus-fk';

    //keyspace default do sistema
    const result = await cassandraDb().execute('SELECT * FROM user');


    //keyspace adicional
    const result = await cassandraDb('users_keyspace').execute('SELECT * FROM user');
    import { queue } from 'versatus-fk';
    
    //enviando um dado para a fila
    queue.sendToQueue("FILA1", "CONTENT");


    //consumindo um dado da fila
    queue.consumer('FILA1', (msg: ConsumeMessage | null)=>{
        if(msg){
            console.log(`content: ${msg.content.toString()}!!`);
        }
    });
    import { Log } from 'versatus-fk';
    
    Log.setWarning("message");
    Log.setInfo("message");
    Log.setError("message");


    //não exibir o log na tela
    Log.setInfo("message", false);
    import { getEnv } from 'versatus-fk';

    //Obtendo o valor da variavel de ambiente ENVIRONMENT
    const environment = getEnv("ENVIRONMENT");
    import { TokenCore } from 'versatus-fk';


    //atualizando o accessToken;
    const newAccessToken = await TokenCore.refreshToken("REFRESH_TOKEN");


    //gerando um accessToken a partir do usuario e senha
    const newAccessToken = await TokenCore.generateToken({username: "username", password: "password"});

    //obtendo as permissões do usuario para o client atual
    const roles: string[] = TokenCore.getRoles("ACCESS_TOKEN");

    //obtendo informacoes do usuario
    const userData = await TokenCore.getUserInfo("ACCESS_TOKEN");

    //validando se o token é valido, ou se expirou
    const result = await TokenCore.validateToken("ACCESS_TOKEN");