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

plugandwork-sdk

v0.1.2

Published

*plugandwork-sdk* est un client [plugandwork](https://plugandwork.fr) javascript (compatible avec node) qui vous aidera a créer des applications basées sur plugandwork.

Downloads

3

Readme

Plugandwork javascript sdk

plugandwork-sdk est un client plugandwork javascript (compatible avec node) qui vous aidera a créer des applications basées sur plugandwork.


Installation

npm install plugandwork-sdk ou, si vous utilisez yarn, yarn add plugandwork-sdk

Importation

import Plugandwork from "plugandwork-sdk" ou const Plugandwork = require("plugandwork-sdk");

Initialisation du client

Le client plugandwork vous aidera à interagir avec les données d'un serveur plugandwork. Pour l'instancier :

const pawClient = Plugandwork.createClient(options: ClientOptions);

Options du client

interface ClientOptions
{
  host: string; // url de l'hote plugandwork (http/s)
  accessToken?: string; // token d'acces à l'api
  credentials?: { user_token: string; username: string } | { auth_token: string; uuid: string } // identifiants d'accès à l'api
  d3Compatible?: boolean;
}

La seule option obligatoire du client est l'hôte plugandwork.

Outils de base

Connexion

Pour récupérer un token valide, vous pouvez connecter le client à un compte plugandwork avec la méthode login.

pawClient.login({ username: "admin", password: "document" }).then(function() { console.log("connecté!") });

Par défaut, la méthode utilise grant_type: "password", mais vous pouvez surcharger cette options dans les paramètres de la méthode login.

Validation md5

pawClient.validateMd5("md5String")
  .then(function() { console.log("Ce document n'existe pas encore, à vous de le créer !") })
  .catch(function() { console.log("Ce document existe déjà !") });

Attention ! La méthode validateMd5 déclenchera une erreur si le md5 existe déjà, pensez à l'intercepter avec un try catch ...

Accès aux modèles

Le client plugandwork, une fois initialisé, vous donne accès à différents modèles :

  • Doc pawClient.models.Doc
  • Space pawClient.models.Space

Chaque modèle étend la classe PawModel, qui initialise un store redux pour mettre en cache les instances et donne accès à plusieurs méthodes :

Récupération des instances (PawModel.fetch)

La méthode fetch permet de récupérer les instances du modèle sur plugandwork. Cette méthode prend en paramètres une requete.

const query = { per_page: 10, page: 2 };

// docs sera un tableau de 10 documents (typeof pawClient.models.Doc) correspondants aux 10 documents de la page 2
const docs = await pawClient.models.Doc.fetch(query);

Création d'une nouvelle instance (PawModel.create)

La méthode create permet de créer une nouvelle instance d'un modèle.

// doc sera un document plugandwork (typeof pawClient.models.Doc)
const doc = await pawClient.models.Doc.create({ title: "Mon nouveau document !" });

Cas particuliers

Création d'un document avec fichier

Les documents plugandwork sont liés à des fichiers. Pour créer un document avec un fichier, il vous faut envoyer le buffer du fichier dans le champ file

exemple avec node (fs)

  const fileBuffer = fs.createReadStream("./monfichier.png");
  const doc = await pawClient.models.Doc.create({ title: "Mon nouveau document !", file: fileBuffer });
  console.log(doc.file_url); // /send/...

Mettre à jour une instance (PawModel.prototype.update)

  const space = await pawClient.models.Space.create({ title: "Mon espace plugandwork" });
  await space.update({ title: "Mon espace plugandwork modifié" });
  console.log(space.title); // Mon espace plugandwork modifié

Supprimer une instance (PawModel.prototype.delete)

  const space = await pawClient.models.Space.create({ title: "Mon espace plugandwork" });
  await space.delete();

récupérer une instance (PawModel.get)

Une fois instancié (avec le client plugandwork), le modèle vous permet d'accéder à son cache et d'y récupérer une instance via son id.

const doc = pawClient.models.Doc.get("identifiant");
console.log(doc?.id); // "identifiant"

Cette méthode vous permet également de récupérer une instance sur plugandwork, en définissant le second paramètre de la méthode fetch à true (fetch). Dans ce cas, la méthode fetch renverra un Promise

const doc = await pawClient.models.Doc.get("identifiant");
console.log(doc?.id); // "identifiant"

Récupérer une instance en cache (PawModel.get)

Une fois instancié (avec le client plugandwork), le modèle vous permet d'accéder à son cache et d'y récupérer une instance via son id.

const doc = pawClient.models.Doc.get("identifiant");
console.log(doc?.id); // "identifiant"

Récupérer une instance avec son id (PawModel.get)

Cette méthode vous permet également de récupérer une instance sur plugandwork, en définissant le second paramètre de la méthode fetch à true (fetch). Dans ce cas, la méthode fetch renverra un Promise

const doc = await pawClient.models.Doc.get("identifiant");
console.log(doc?.id); // "identifiant"

Compatibilité d3

Si votre instance plugandwork est compatible avec l'api d3 (version >= 3.5), vous pouvez récupérer une version simplifié de certains modèles (pour la recherche par exemple). Pour activer cette option, pensez à définir l'option d3Compatible à true à l'initialisation du client (voir l'initialisation du client ci-dessus).

Si cette option est activée, les modèles suivants seront simplifiés:

  • Doc

Autrement dit, la méthode fetch de ces modèles ne renverra pas la version complète mais une version simplifié. Vous bénéficierez donc d'un temps d'exécution beaucoup plus rapide. Cependant, si vous avez besoin d'accéder à l'instance complète, vous pourrez la récupérer en la peuplant.

Peupler une instance (PawModel.prototype.populate)

const doc = await pawClient.models.Doc.create({ ... });

🚀