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

orbitdbconnector

v1.0.5

Published

Database connection provider based on Typeorm with a bunch of tweak to be able to connect to a DB dynamically with or without entities plus perf gains.

Downloads

4

Readme

💾 OrbitDbConnector 🚀

Version License GitHub issues GitHub stars

🔌 Un moyen simple et performant de vous connecter à une ou plusieurs bases de données avec Node.js ! 🌟

OrbitDbConnector est un package innovant conçu pour les développeurs soucieux des performances, qui veulent simplifier la gestion des connexions à leurs bases de données. Que vous ayez besoin de vous connecter à une base de données ou à plusieurs bases de données, OrbitDbConnector facilite grandement le processus et vous permet de gagner du temps ⏰ et de l'énergie ⚡️.

Pourquoi choisir OrbitDbConnector ? 🤔

Facile à utiliser : Avec OrbitDbConnector, vous pouvez vous connecter à vos bases de données en seulement quelques lignes de code. Son API simple et intuitive vous permet de configurer rapidement vos connexions et de les utiliser dans votre application.

Connexions dynamiques : OrbitDbConnector vous permet de gérer dynamiquement vos connexions à travers un tableau interne intelligent. Il réutilise les connexions existantes qui correspondent aux mêmes critères de connexion, ce qui évite les frais généraux liés à la création de nouvelles connexions à chaque requête.

Performances optimisées : En utilisant un moteur modifié de TypeORM et des techniques avancées de gestion des connexions, OrbitDbConnector garantit des performances exceptionnelles. Il minimise les temps de latence, réduit la charge sur vos bases de données et optimise le temps de réponse de vos requêtes.

Compatible avec TypeORM : OrbitDbConnector est construit sur la base solide de TypeORM, une bibliothèque d'ORM populaire pour Node.js. Il bénéficie de toutes les fonctionnalités avancées de TypeORM, vous offrant ainsi une expérience de développement complète et puissante.

Multitudes de Bases / Drivers : OrbitDbConnector prend en charge la connexion à quasi toute les Bases de Données 😉 : "mysql", "postgres", "cockroachdb", "sap", "spanner", "mariadb", "sqlite", "cordova", "react-native", "nativescript", "sqljs", "oracle", "mssql", "mongodb", "aurora-mysql", "aurora-postgres", "expo", "better-sqlite3", "capacitor". 🔥🔥

Installation 📦

Pour installer OrbitDbConnector, utilisez la commande suivante :

npm install orbitdbconnector --save

or 

yarn add orbitdbconnector

Utilisation 💡

Importez OrbitDbConnector dans votre projet :

import { OrbitDbConnector } from 'orbit-db-connector';

Méthode doConnection

La méthode doConnection est la passerelle utilisée pour exécuter le connecteur Orbit et renvoyer les nouvelles données de connexion à l'appelant. Elle accepte les paramètres connectionProps (options de connexion) et entities (entités liées à la base de données) et renvoie une promesse contenant l'objet DataSource correspondant à la connexion établie.

  • 🚩 Exemple d'utilisation avec une entité TypeORM: Vous pouvez vous connectez à une base sur une table précise et bénéficier du typage dynamique et des fonctionnalités de TypeORM rien qu'en passant une entité TypeORM à la méthode doConnection.
const orbitDbConnector = new OrbitDbConnector();

const dbCon = await orbitDbConnector.doConnection(
  {
    name: process.env['DB0_name'],
    type: process.env['DB0_type'],
    host: process.env['DB0_host'],
    port: +process.env['DB0_port'],
    username: process.env['DB0_username'],
    password: process.env['DB0_password'],
    database: process.env['DB0_database'],
    autoLoadEntities: true,
    synchronize: false,
  },
  [QcwsSettings]
);

const smbSharesList = await dbCon.manager.findOne(QcwsSettings, {
  where: { name: 'SMB_SHARES' },
});

console.log(smbSharesList);

Dans cet exemple, nous utilisons OrbitDbConnector avec une entité TypeORM appelée QcwsSettings. Nous créons une instance d'OrbitDbConnector, puis nous utilisons la méthode doConnection pour établir une connexion à une base de données spécifique en passant les options de connexion et l'entité TypeORM. Ensuite, nous utilisons la connexion établie (dbCon) pour effectuer des opérations sur la base de données, comme trouver un enregistrement avec certaines conditions.

  • 🚩 Exemple d'utilisation sans entité : Vous pouvez, si vous le souhaitez, vous connecter à une base de données sans entité TypeORM. Cela peut être utile si vous souhaitez simplement exécuter des requêtes SQL brutes sur une base de données sans avoir à créer une entité TypeORM pour elle ou si vous souhaitez à partir d'une seule connexion, exécuter des requêtes sur plusieurs tables différentes.
const orbitDbConnector = new OrbitDbConnector();

const dbCon = await orbitDbConnector.doConnection({
  name: process.env['DB0_name'],
  type: process.env['DB0_type'],
  host: process.env['DB0_host'],
  port: +process.env['DB0_port'],
  username: process.env['DB0_username'],
  password: process.env['DB0_password'],
  database: process.env['DB0_database'],
  autoLoadEntities: true,
  synchronize: false,
}, 'name');

const indice = await dbCon.manager.query(
  `SELECT MAX(INDICE) AS lastindice FROM ${campainMapping.tableClient}`,
);

console.log(indice);

Dans cet exemple, nous utilisons OrbitDbConnector sans entité TypeORM spécifique. Nous créons une instance d'OrbitDbConnector, puis nous utilisons la méthode doConnection pour établir une connexion à une base de données spécifique en passant les options de connexion. Ensuite, nous utilisons la connexion établie (dbCon) pour exécuter une requête personnalisée en utilisant dbCon.manager.query.

Configuration des options de connexion

L'objet connectionProps passé à la méthode doConnection doit contenir les options de connexion suivantes :

  • name: Le nom de la connexion.
  • type: Le type de la base de données (par exemple, "mysql", "postgres", "mongodb", etc.).
  • host: L'hôte de la base de données.
  • port: Le port de la base de données.
  • username: Le nom d'utilisateur pour la connexion à la base de données.
  • password: Le mot de passe pour la connexion à la base de données.
  • database: Le nom de la base de données.
  • autoLoadEntities: Une valeur booléenne indiquant si les entités doivent être automatiquement chargées à partir du répertoire spécifié.
  • synchronize: Une valeur booléenne indiquant si la synchronisation automatique des schémas de base de données doit être activée.

Si vous spécifiez des entités (entities) dans la méthode doConnection, OrbitDbConnector utilise le nom de la première entité pour effectuer une correspondance plus précise lors de la recherche d'une connexion existante dans le tableau interne. Cela garantit que la correspondance est basée sur le nom de la base de données et le nom de la table associée à l'entité.

Notez que ces options sont ceux que prennent aussi un DataSource TypeORM. Pour plus d'informations, consultez la documentation de TypeORM.

Fonctionnalités

  • Connexion à plusieurs bases de données : OrbitDbConnector vous permet de vous connecter facilement à plusieurs bases de données en utilisant les options de connexion de TypeORM.

  • Gestion automatique des connexions existantes : Lorsque vous utilisez la méthode doConnection, OrbitDbConnector vérifie s'il existe déjà une connexion pour les mêmes paramètres de connexion et entités. Si une connexion existante est trouvée, elle est renvoyée au lieu d'établir une nouvelle connexion.

  • Gestion des connexions réutilisables : Une fois qu'une connexion est établie avec succès, OrbitDbConnector la stocke dans un tableau interne pour une utilisation future de manière totalement automatique. Lorsque la méthode doConnection est appelée avec des options de connexion déjà existantes, OrbitDbConnector récupère la connexion existante plutôt que d'en créer une nouvelle en évitant les opérations coûteuses de création de nouvelles connexions à chaque fois.

Performance

OrbitDbConnector offre des améliorations significatives de performance par rapport à une approche traditionnelle de gestion des connexions à plusieurs bases de données. Voici en quoi OrbitDbConnector se distingue :

* Réutilisation intelligente des connexions

L'une des forces d'OrbitDbConnector réside dans sa capacité à réutiliser intelligemment les connexions existantes. En utilisant un mécanisme de correspondance basé sur des critères tels que le nom de la connexion, le nom de la base de données et le nom de la table associée à l'entité, OrbitDbConnector peut identifier rapidement si une connexion correspondante existe déjà dans le tableau ODConnectionArray. Cette approche garantit une correspondance précise entre la requête et la connexion, permettant ainsi une réutilisation efficace des connexions existantes. La réutilisation des connexions réduit les temps de latence associés à la création et à la fermeture de connexions à chaque requête, améliorant ainsi les performances globales.

* Optimisations de TypeORM

OrbitDbConnector est construit sur la base de TypeORM, une bibliothèque d'ORM populaire pour Node.js. En utilisant un moteur modifié de TypeORM, OrbitDbConnector intègre des optimisations spécifiques pour gérer efficacement les connexions multiples et maximiser les performances des opérations de base de données. Ces optimisations incluent la mise en cache des métadonnées des entités, la gestion fine des transactions et l'utilisation de requêtes préparées. Ces améliorations techniques contribuent à réduire la charge sur la base de données, à améliorer le temps de réponse des requêtes et à optimiser les performances globales de l'application.

Grâce à ces techniques avancées de gestion des connexions et aux optimisations de TypeORM, OrbitDbConnector permet d'obtenir des performances exceptionnelles lors de l'accès à des bases de données multiples, offrant ainsi une expérience utilisateur fluide et une exécution rapide des opérations de base de données.

Commencez dès maintenant à connecter facilement vos bases de données avec style et performance grâce à OrbitDbConnector !

Configuration

Avant d'utiliser OrbitDbConnector, assurez-vous d'avoir les informations de connexion correctes pour vos bases de données. Vous pouvez les stocker dans des variables d'environnement ou les inclure directement dans votre code.

API

Classe OrbitDbConnector

La classe OrbitDbConnector représente le point d'entrée principal de la bibliothèque. Elle expose une méthode doConnection pour établir des connexions à des bases de données.

Méthode doConnection(connectionProps: DataSourceOptions, entities?: (string | EntitySchema<any> | EntityClassOrSchema)[]): Promise<DataSource>

La méthode doConnection permet d'établir une connexion à une base de données en utilisant les options de connexion connectionProps fournies. Vous pouvez également spécifier les entités liées à la base de données en utilisant le paramètre entities. Cette méthode renvoie une promesse contenant l'objet DataSource correspondant à la connexion établie.

Next Steps / Coming Soon

  • CLI Tool for DB Connections.
  • Website & Documentation.
  • ...

Licence

OrbitDbConnector est distribué sous la licence MIT. Pour plus d'informations, veuillez consulter le fichier LICENSE.

Contributions

Les contributions sont les bienvenues ! Si vous souhaitez améliorer OrbitDbConnector, veuillez consulter les instructions de contribution pour savoir comment commencer.

  1. Forkez le projet depuis le dépôt GitHub.
  2. Créez une branche pour votre fonctionnalité ou correction de bug : git checkout -b ma-branche.
  3. Faites vos modifications et commit : git commit -m "Ma modification".
  4. Poussez les modifications vers votre dépôt : git push origin ma-branche.
  5. Ouvrez une pull request vers la branche main du dépôt OrbitDbConnector.

Auteur

OrbitDbConnector a été développé par OrbitTurner.

Pour plus d'informations, vous pouvez me contacter par e-mail à [email protected]


Merci d'avoir choisi OrbitDbConnector ! Nous espérons que cette bibliothèque vous aidera à simplifier et à améliorer vos connexions dynamiques.

*
*
*     ██████╗ ██████╗ ██████╗ ██╗████████╗    ████████╗██╗   ██╗██████╗ ███╗   ██╗███████╗██████╗ 
*    ██╔═══██╗██╔══██╗██╔══██╗██║╚══██╔══╝    ╚══██╔══╝██║   ██║██╔══██╗████╗  ██║██╔════╝██╔══██╗
*    ██║   ██║██████╔╝██████╔╝██║   ██║          ██║   ██║   ██║██████╔╝██╔██╗ ██║█████╗  ██████╔╝
*    ██║   ██║██╔══██╗██╔══██╗██║   ██║          ██║   ██║   ██║██╔══██╗██║╚██╗██║██╔══╝  ██╔══██╗
*    ╚██████╔╝██║  ██║██████╔╝██║   ██║          ██║   ╚██████╔╝██║  ██║██║ ╚████║███████╗██║  ██║
*     ╚═════╝ ╚═╝  ╚═╝╚═════╝ ╚═╝   ╚═╝          ╚═╝    ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚═╝  ╚═╝
*   
*

Better Things are Comming !


❤ KEEP GOING FURTHER ❤