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 🙏

© 2024 – Pkg Stats / Ryan Hefner

grjs

v0.0.1

Published

Uma biblioteca com diversos métodos para simplifica a manipulação de dados numa variável.

Downloads

2

Readme

grJS

Manipula objetos de um array como se fosse um CRUD, inserindo, alterando, deletando e consultando.

Este pacote foi testado no backend e frontend.

Ao inserir um item é criado automaticamente um ID sequencial, para desabilitar esse recurso definir no construtor {addID: false}

Eu criei este pacote pois buscava uma forma de manipular os dados mais facilmente antes de inserir no banco ou exibir no frontend.

Você também pode passar um array com resultado de uma consulta no banco ou request e manipular os dados.

Ideal para quem está aprendendo frontend e deseja criar um CRUD sem backend ou banco de dados.

####Instalação 

npm install grjs

####Teste 

const grJS = require('grjs')

// const clientes = new grJS({addID: false})  

const clientes = new grJS() // addID padrão é true. 

// Você pode inserir cada item individualmente.
clientes.insert({nome: 'Paulo', profissao: 'Mecânico', sexo: 'M', filhos: []})
clientes.insert({nome: 'Ana', profissao: 'Costureira', sexo: 'F', filhos: []})
clientes.insert({nome: 'Marcos', profissao: 'Motorista', sexo: 'M', filhos: []})
clientes.insert({nome: 'Maria', profissao: 'Mecânico', sexo: 'F', filhos: []})
clientes.insert({nome: 'Maria', profissao: 'Administrador', sexo: 'F', filhos: []})
clientes.insert({nome: 'Carlos', profissao: 'Advogado', sexo: 'M', filhos: []})

// Ou inserir um array de itens.
clientes.insert([
    {nome: 'Patricia', profissao: 'Motorista', sexo: 'F', filhos: []},
    {nome: 'Renata', profissao: 'Contador', sexo: 'F', filhos: []}
])

// Buscar por todos os itens.
console.log( clientes.find() )

// O resultado será atribuído um id automaticamente.
[
    {"id":0,"nome":"Paulo","profissao":"Mecânico","sexo":"M","filhos":[]},
    {"id":1,"nome":"Ana","profissao":"Costureira","sexo":"F","filhos":[]},
    {"id":2,"nome":"Marcos","profissao":"Motorista","sexo":"M","filhos":[]},
    {"id":3,"nome":"Maria","profissao":"Mecânico","sexo":"F","filhos":[]},
    {"id":4,"nome":"Maria","profissao":"Administrador","sexo":"F","filhos":[]},
    {"id":5,"nome":"Carlos","profissao":"Advogado","sexo":"M","filhos":[]},
    {"id":6,"nome":"Patricia","profissao":"Motorista","sexo":"F","filhos":[]},
    {"id":7,"nome":"Renata","profissao":"Contador","sexo":"F","filhos":[]}
]

// Filtra por ID
console.log( clientes.find(3) )

[
    {"id":3,"nome":"Maria","profissao":"Mecânico","sexo":"F","filhos":[]}
]

// Filtra por ID e oculta ID no retorno.
console.log( clientes.find(3, {id: false})  )  

[
    {"nome":"Maria","profissao":"Mecânico","sexo":"F","filhos":[]}
]

// Filtra por um array de ID
console.log( clientes.find([3,5]) )

[
    {"id":3,"nome":"Maria","profissao":"Mecânico","sexo":"F","filhos":[]},
    {"id":5,"nome":"Carlos","profissao":"Advogado","sexo":"M","filhos":[]},
]

// Filtra por um atributo do item.
console.log( clientes.find({sexo: 'F'}) )

[
    {"id":1,"nome":"Ana","profissao":"Costureira","sexo":"F","filhos":[]},
    {"id":3,"nome":"Maria","profissao":"Mecânico","sexo":"F","filhos":[]},
    {"id":4,"nome":"Maria","profissao":"Administrador","sexo":"F","filhos":[]},
    {"id":6,"nome":"Patricia","profissao":"Motorista","sexo":"F","filhos":[]},
    {"id":7,"nome":"Renata","profissao":"Contador","sexo":"F","filhos":[]}
]

// Filtra por um ou mais atributos dos itens.
console.log( clientes.find({sexo: 'F', profissao: 'Administrador'}) )

[
    {"id":4,"nome":"Maria","profissao":"Administrador","sexo":"F","filhos":[]},
]

Os métodos Update e Delete podem utilizar os mesmos critérios de busca dos exemplos anteriores.


// Update retorna um objeto com todos os registros antes e depois de alterado.
clientes.update({ nome: 'Carlos' }, { nome: 'Carlos Luiz', idade: 30 })

{
    before: [
        { id: 5, nome: 'Carlos', profissao: 'Advogado', sexo: 'M', filhos: [] }
    ],
    after: [
        { id: 5, nome: 'Carlos Luiz', profissao: 'Advogado', sexo: 'M', filhos: [], idade: 30 }
    ]
}

// Retorna registros Deletados.
clientes.delete({ sexo: 'F', profissao: 'Administrador' })
[
    {"id":4,"nome":"Maria","profissao":"Administrador","sexo":"F","filhos":[]},
]


// Remove itens do retorno, mas não deleta do array principal.
clientes.exclude({ sexo: 'F'})

[
    {"id":0,"nome":"Paulo","profissao":"Mecânico","sexo":"M","filhos":[]},
    {"id":2,"nome":"Marcos","profissao":"Motorista","sexo":"M","filhos":[]},
    {"id":5,"nome":"Carlos","profissao":"Advogado","sexo":"M","filhos":[]},
]


// Concatena resultado da busca com itens do segundo parâmetro, não altera no array principal.
clientes.include({ nome: 'Ana'}, [{nome: 'Bethe', profissao: 'Vendedor', sexo: 'F'}])

[
    {"id":1,"nome":"Ana","profissao":"Costureira","sexo":"F","filhos":[]},
    { nome: 'Bethe', profissao: 'Vendedor', sexo: 'F' }
]


// Retorna quantidade de itens no array.
clientes.count

8

// Realiza um merge entre os arrays 
clientes.merge('nome', veiculos, {mandatory: 1})



// Retorna os nomes dos atributos e os tipos.
clientes.getSchema()

{ id: 'number', nome: 'string', profissao: 'string', sexo: 'string', filhos: 'array' }