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

soonts-aboutme-manager

v1.0.0

Published

Module Node.js pour gérer le texte 'À propos de moi' sans dépendance Discord. Gestion personnalisée de bio/profile avec support de stockage flexible.

Downloads

97

Readme

@soonts/aboutme-manager

npm version License: MIT Node.js Version

Module Node.js pour gérer le texte "À propos de moi" sans dépendance Discord. Gestion personnalisée de bio/profile avec support de stockage flexible (mémoire, base de données, etc.).

📦 Installation

npm install @soonts/aboutme-manager

🚀 Utilisation

Stockage en mémoire (Map)

const AboutMeManager = require('@soonts/aboutme-manager');

const manager = new AboutMeManager({
  maxLength: 190,
  storage: new Map()
});

// Définir un texte
const result = await manager.setAboutMe('user123', '[ • HOS ❤️ ] [ • M ma maman ]');
console.log(result.message); // "Ton à propos de moi a été mis à jour."

// Récupérer le texte
const text = await manager.getAboutMe('user123');
console.log(text); // "• HOS ❤️\n• M ma maman"

// Supprimer
await manager.clearAboutMe('user123');

Avec adaptateur de base de données personnalisé

const AboutMeManager = require('@soonts/aboutme-manager');
const DatabaseStorageAdapter = require('@soonts/aboutme-manager/db-adapter');

// Vos fonctions de base de données
const { getdb, savedb } = require('./fonctions');

// Créer un adaptateur
const adapter = new DatabaseStorageAdapter(getdb, savedb);

// Initialiser le gestionnaire
const manager = new AboutMeManager({
  maxLength: 190,
  storage: adapter
});

// Utiliser comme précédemment
await manager.setAboutMe('user123', 'Mon texte');

📚 API

AboutMeManager

Constructor

new AboutMeManager(options)

Options:

  • maxLength (number, default: 190) - Longueur maximale du texte
  • storage (Map|Object, default: new Map()) - Système de stockage
  • onUpdate (Function, optional) - Callback appelé lors des mises à jour

Méthodes

setAboutMe(userId, text)

Définit le texte "À propos de moi" pour un utilisateur.

Paramètres:

  • userId (string) - ID de l'utilisateur
  • text (string|null) - Texte à définir

Retourne: Promise<{success: boolean, text: string, message: string}>

getAboutMe(userId)

Récupère le texte "À propos de moi" pour un utilisateur.

Paramètres:

  • userId (string) - ID de l'utilisateur

Retourne: Promise<string|null>

clearAboutMe(userId)

Supprime le texte "À propos de moi" pour un utilisateur.

Paramètres:

  • userId (string) - ID de l'utilisateur

Retourne: Promise<{success: boolean, message: string}>

parseText(raw)

Parse le texte avec support des lignes entre crochets [ligne1] [ligne2].

Paramètres:

  • raw (string) - Texte brut à parser

Retourne: string

Exemple:

manager.parseText('[ligne 1] [ligne 2] [ligne 3]');
// Retourne: "ligne 1\nligne 2\nligne 3"
isValid(text)

Vérifie si le texte est valide (non vide après traitement).

Paramètres:

  • text (string) - Texte à vérifier

Retourne: boolean

🔌 Adaptateurs de stockage

Le module supporte différents systèmes de stockage via des adaptateurs.

Interface d'adaptateur

Un adaptateur doit implémenter ces méthodes :

{
  get(userId) => Promise<string|null> | string|null,
  set(userId, value) => Promise<void> | void,
  delete(userId) => Promise<void> | void
}

Exemple d'adaptateur personnalisé

class MyCustomAdapter {
  async get(userId) {
    // Récupérer depuis votre source
    return await myDatabase.getAboutMe(userId);
  }

  async set(userId, value) {
    // Sauvegarder dans votre source
    await myDatabase.saveAboutMe(userId, value);
  }

  async delete(userId) {
    // Supprimer de votre source
    await myDatabase.deleteAboutMe(userId);
  }
}

const manager = new AboutMeManager({
  storage: new MyCustomAdapter()
});

📝 Exemples

Exemple complet avec callback

const manager = new AboutMeManager({
  maxLength: 190,
  storage: new Map(),
  onUpdate: async (userId, text) => {
    console.log(`Mise à jour pour ${userId}:`, text);
    // Faire quelque chose avec la mise à jour
  }
});

Gestion d'erreurs

try {
  const result = await manager.setAboutMe('user123', 'Mon texte');
  if (!result.success) {
    console.error('Erreur:', result.message);
  }
} catch (error) {
  console.error('Exception:', error);
}

🤝 Contribution

Les contributions sont les bienvenues ! N'hésitez pas à ouvrir une issue ou une pull request.

📄 License

MIT License - voir le fichier LICENSE pour plus de détails.

👤 Auteur

Soonts

🔗 Liens