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

dbjson-client

v1.0.6

Published

The dbjson client package to communicate with databases.

Downloads

284

Readme

🗃️ dbjson-client

English version

↓ Version française en bas ↓


➡️ Link to official documentation

dbjson-client is a simple and efficient JavaScript library for interacting with a database through a remote JSON API. Manage your tables, columns, and data easily via this RESTful API.

🚀 Features

  • 📄 Retrieve Tables: Get the tables in your project.
  • 📝 Create & Delete Tables: Create or delete tables as needed.
  • 🔎 Retrieve Fields: Retrieve fields from a specific table.
  • ✍️ Manipulate Items: Add, update, and delete items in your tables.
  • 📚 Manage Columns: Add, update, or delete columns in your tables.
  • 🔗 Manage Relationships: Create and manage relationships between your tables.

🛠️ Installation

Install the package via npm:

npm install dbjson-client
  • 📦 Importation

Start by importing the module into your project:

const dbjsonClient = require('dbjson-client');
  • ⚙️ Initialization

Create an instance of the client by specifying your API key and project name :

const database = new dbjsonClient({
    api_key: 'API_KEY',
    project_name: 'PROJECT_NAME'
})

📖 API Usage

Here is an overview of the main methods available for interacting with your database.

📊 Tables Management

🔍 getTables

Get all the tables within a project :

 database.getTables({
    tables: ['clients', 'commandes'], // or ['*'] to retrieve all tables
    response_type: 'object' 
    // If response_type is not explicitly mentioned
    // the default response type will be an array.
}).then(results => {
    console.log(results)
})

➕ createTable

Create a new table with defined columns.

database.createTable({
    name: 'clients',
    columns: {
        first_name:{
            type: 'STRING',
            default_value: ''
        },
        last_name:{
            type: 'STRING',
            default_value: ''
        },
        age:{
            type: 'NUMBER',
            default_value: 0
        },
        is_major:{
            type: 'BOOLEAN',
            default_value: false
        },
    }
}).then(status => {
    console.log(status)
})

❌ removeTable

Delete a table from the project.

database.removeTable({
    table: 'clients'
}).then(status => {
    console.log(status)
})

🗄️ Columns Management

🔍 getColumns

Get columns from a table :

database.getColumns({
    table: 'clients',
    column_names: ['first_name', 'age'], // or ['*'] to retrieve all columns
}).then(columns => {
    console.log(columns)
})

➕ addColumns

Add one or more columns to a table :

database.addColumns({
    table: 'cities',
    columns: {
        zip_code:{
            type: 'NUMBER',
            default_value: 12345
        },
    }
}).then(status => {
    console.log(status)
})

🔄 updateColumns

Update one or more columns in a table :

database.updateColumns({
    table: 'clients',
    columns: {
        first_name: {
            type: 'STRING',
            default_value: 'Eric'
        }
    }
}).then(status => {
    console.log(status)
})

❌ removeColumns

Delete columns from a table :

database.removeColumns({
    table: 'cities',
    column_names: ['name']
}).then(status => {
    console.log(status)
})

🧩 Items Management

🔍 getElements

Retrieve items from a table by ID :

database.getElements({
    table: 'clients',
    ids: [1,2,4,8], // or ['*'] to retrieve all items
    selected_fields: ['first_name', 'age'] // optional, to get specifics fields
}).then(elements => {
    console.log(elements)
})

🔍 getElementsWhere

Retrieve items from a table by condition(s) :

database.getElementsWhere({
    table: 'clients',
    conditions: `(last_name == Perez) || (last_name == Dos Santos)`,
    selected_fields: ['first_name', 'age'] // optional, to get specifics fields
}).then(elements => {
    console.log(elements)
})

➕ addElements

Add one or more items to a table :

database.addElements({
    table: 'clients',
    elements: [
        {
            first_name: 'Maxime',
            last_name: 'Perez',
            age: 34
        },
        {
            first_name: 'Roger',
            last_name: 'Patrick',
            age: 28
        },
        {
            first_name: 'Youssef',
            last_name: 'Laraoui',
            age: 17
        }
    ]
}).then(status => {
    console.log(status)
})

🔄 updateElements

Update one or more items in a table by ID :

database.updateElements({
    table: 'clients',
    ids: ['*'], // assigne la valeur du champ 'is_authorized' à false pour tous les éléments
    fields: {
        "is_authorized" : false
    }
}).then(status => {
    console.log(status)
})

🔄 updateElementsWhere

Update one or more items in a table by condition(s) :

database.updateElementsWhere({
    table: 'clients',
    fields: {
        'is_major': true
    },
    conditions: "(age >= 18)"
}).then(updated_elements => {
    console.log(updated_elements)
})

❌ removeElements

Delete items from a table by ID :

database.removeElements({
    table: 'clients',
    ids: [10, 14, 27] // or ['*'] to delete all items
}).then(status => {
    console.log(status)
})

❌ removeElementsWhere

Delete items from a table by condition(s) :

database.removeElementsWhere({
    table: 'clients',
    conditions: "(is_major == false)"
}).then(status => {
    console.log(status)
})

🔗 Relationships Management

➕ addRelations

Add one or more relationships with the current table :

database.addRelations({
    table: 'clients', 
    relations: {
        cities: {
            type: 'one_to_many'
        },
        orders: {
            type: 'one_to_one'
        }
    }
}).then(status => {
    console.log(status)
})

🔄 updateRelations

Update one or more relationships of the current table :

database.updateRelations({
    table: 'clients', 
    relations: {
        cities: {
            type: 'many_to_many',
            show_by: 'zipcode' 
              // show_by allows you to define
              //which column the elements of a relationship 
              //will be displayed in the graphical interface 
              //of dbjson.io
        }
    }
}).then(status => {
    console.log(status)
})

❌ removeRelations

Delete relationships with the current table :

database.removeRelations({
    table: 'clients', 
    relation_names: ["sport_clubs"]
}).then(status => {
    console.log(status)
})

Version française

➡️ Lien vers la documentation officielle

dbjson-client est une bibliothèque JavaScript simple et efficace pour interagir avec une base de données via une API JSON distante. Gérez vos tables, colonnes et données facilement à travers cette API RESTful.

🚀 Fonctionnalités

  • 📄 Récupération des tables : Obtenez les tables de votre projet.
  • 📝 Création & Suppression de tables : Créez ou supprimez des tables selon vos besoins.
  • 🔎 Récupération des champs : Récupérez les champs d'une table spécifique.
  • ✍️ Manipulation des éléments : Ajoutez, mettez à jour, et supprimez des éléments dans vos tables.
  • 📚 Gestion des colonnes : Ajoutez, mettez à jour ou supprimez des colonnes dans vos tables.
  • 🔗 Gestion des relations : Créez et gérez des relations entre vos tables.

🛠️ Installation

Installez le package via npm :

npm install dbjson-client
  • 📦 Importation

Commencez par importer le module dans votre projet :

const dbjsonClient = require('dbjson-client');
  • ⚙️ Initialisation

Créez une instance du client en spécifiant votre clé d'API et le nom de votre projet :

const database = new dbjsonClient({
    api_key: 'CLE_API',
    project_name: 'NOM_DE_PROJET'
})

📖 Utilisation de l'API

Voici un aperçu des principales méthodes disponibles pour interagir avec votre base de données.

📊 Gestion des tables

🔍 getTables

Obtenir l'intégralité des tables au sein d'un projet :

 database.getTables({
    tables: ['clients', 'commandes'],  // ou ['*'] pour récupérer toutes les tables
    response_type: 'object' 
    // Si response_type n'est pas mentionné explicitement
    // la résponse par défaut des résultats sera de type
    // array.
}).then(results => {
    console.log(results)
})

➕ createTable

Créer une nouvelle table avec des colonnes définies.

database.createTable({
    name: 'clients',
    columns: {
        first_name:{
            type: 'STRING',
            default_value: ''
        },
        last_name:{
            type: 'STRING',
            default_value: ''
        },
        age:{
            type: 'NUMBER',
            default_value: 0
        },
        is_major:{
            type: 'BOOLEAN',
            default_value: false
        },
    }
}).then(status => {
    console.log(status)
})

❌ removeTable

Supprimer une table du projet.

database.removeTable({
    table: 'clients'
}).then(status => {
    console.log(status)
})

🗄️ Gestion des colonnes

🔍 getColumns

Obtenir des colonnes d'une table :

database.getColumns({
    table: 'clients',
    column_names: ['first_name', 'age'], // ou ['*'] pour récupérer toutes les colonnes
}).then(columns => {
    console.log(columns)
})

➕ addColumns

Rajouter une ou plusieurs colonnes à une table :

database.addColumns({
    table: 'cities',
    columns: {
        zip_code:{
            type: 'NUMBER',
            default_value: 12345
        },
    }
}).then(status => {
    console.log(status)
})

🔄 updateColumns

Mettre à jour une ou plusieurs colonnes d'une table :

database.updateColumns({
    table: 'clients',
    columns: {
        first_name: {
            type: 'STRING',
            default_value: 'Eric'
        }
    }
}).then(status => {
    console.log(status)
})

❌ removeColumns

Supprimer des colonnes d'une table :

database.removeColumns({
    table: 'cities',
    column_names: ['name']
}).then(status => {
    console.log(status)
})

🧩 Gestion des éléments

🔍 getElements

Récupérer les éléments d'une table par ID :

database.getElements({
    table: 'clients',
    ids: [1,2,4,8],  // ou ['*'] pour récupérer tous les éléments
    selected_fields: ['first_name', 'age'] // optionnel, pour cibler des champs précis
}).then(elements => {
    console.log(elements)
})

🔍 getElementsWhere

Récupérer les éléments d'une table par condition(s) :

database.getElementsWhere({
    table: 'clients',
    conditions: `(last_name == Perez) || (last_name == Dos Santos)`,
    selected_fields: ['first_name', 'age'] // optionnel, pour cibler des champs précis
}).then(elements => {
    console.log(elements)
})

➕ addElements

Rajouter un ou plusieurs éléments à une table :

database.addElements({
    table: 'clients',
    elements: [
        {
            first_name: 'Maxime',
            last_name: 'Perez',
            age: 34
        },
        {
            first_name: 'Roger',
            last_name: 'Patrick',
            age: 28
        },
        {
            first_name: 'Youssef',
            last_name: 'Laraoui',
            age: 17
        }
    ]
}).then(status => {
    console.log(status)
})

🔄 updateElements

Mettre à jour un ou plusieurs éléments d'une table par ID :

database.updateElements({
    table: 'clients',
    ids: ['*'], // assigne la valeur du champ 'is_authorized' à false pour tous les éléments
    fields: {
        "is_authorized" : false
    }
}).then(status => {
    console.log(status)
})

🔄 updateElementsWhere

Mettre à jour un ou plusieurs éléments d'une table par condition(s) :

database.updateElementsWhere({
    table: 'clients',
    fields: {
        'is_major': true
    },
    conditions: "(age >= 18)"
}).then(updated_elements => {
    console.log(updated_elements)
})

❌ removeElements

Supprimer des éléments d'une table par ID :

database.removeElements({
    table: 'clients',
    ids: [10, 14, 27] // ou ['*'] pour supprimer tous les éléments
}).then(status => {
    console.log(status)
})

❌ removeElementsWhere

Supprimer des éléments d'une table par condition(s) :

database.removeElementsWhere({
    table: 'clients',
    conditions: "(is_major == false)"
}).then(status => {
    console.log(status)
})

🔗 Gestion des relations

➕ addRelations

Rajouter une ou plusieurs relations avec la table actuelle :

database.addRelations({
    table: 'clients', 
    relations: {
        cities: {
            type: 'one_to_many'
        },
        orders: {
            type: 'one_to_one'
        }
    }
}).then(status => {
    console.log(status)
})

🔄 updateRelations

Mettre à jour une ou plusieurs relations de la table actuelle :

database.updateRelations({
    table: 'clients', 
    relations: {
        cities: {
            type: 'many_to_many',
            show_by: 'zipcode' // show_by permet de définir par quelle colonne s'afficheront
                               // les éléments d'une relation depuis l'interface graphique
                               // du site dbjson.io
        }
    }
}).then(status => {
    console.log(status)
})

❌ removeRelations

Supprimer des relations avec la table actuelle :

database.removeRelations({
    table: 'clients', 
    relation_names: ["sport_clubs"]
}).then(status => {
    console.log(status)
})