graphql-crud-sveltekit

fonction crud utilisant graphql, créer un client graphql et vous fournis des fonctions crud déja préparées, package utiliser pour graphcms

Usage no npm install needed!

<script type="module">
  import graphqlCrudSveltekit from 'https://cdn.skypack.dev/graphql-crud-sveltekit';
</script>

README

crud sveltekit

ce package est à utiliser avec graphcms

IMPORTANT : il existe une " vulnerabilities "
sur le package node-fetch qui est contenu
dans le package cross-fetch utiliser par graphql-request
ceci ne concerne pas notre package, car nous n'utilisons pas
ce coté de graphql-request, la redirection, la creation de cookies
ou autre ne sont pas utiliser ici, et ne le sera jamais
le package sera mis à jour régulèrement, un correctif est en cours
donc cette " vulnerabilities " à terme disparaitra

fonctionnement / utilisation

  • creation du client graphql
const client = WooGraphqlCrud('myUrlEndPoint');
  • creation d'un nouveau client graphql depuis un client existant

    si vous avez besoin de creer vos propres fonction de requetes
    basé sur le meme endPoint
    car peut-etre que celle fournis par la fonction WooGraphqlCrud
    ne vous convienne pas, alors creer un nouveau client
    comme le montre le code ci-dessous

// 1er client
const client = WooGraphqlCrud('myUrlEndPoint');

// nouveau client creer avec le premier
const client2 = client.client();

/*
...
// creer votre nouvelle request comme bon vous semble
// comme un client graphql basic
client2.request()
...
*/
  • utilisation d'une fonction

// creation client
const client = WooGraphqlCrud('myUrlEndPoint');

// utilisation
const res = await client1.create<typeOfReturn, typeOfData>(myData, myQuery);

console.log(res);

/*
output ...

le model creer

...
*/
  • fonctions mise à disposition par la fonction WooGraphqlCrud

    je rappelle que ce package est utiliser pour travailler
    avec graphcms donc toute les fonctions sont implementées dans ce sens
    toutes les fonctions utilise async / await et elles peuvent toutes être typer

  1. client: () => GraphQLClient;
    creation d'une nouvelle instance graphql avec le meme endPoint
    fournis à l'instance utiliser pour la création de la nouvelle.
  2. publish: <T>(id: string, query: string) => Promise<T>;
    passe en mode " publié " le model ciblé avec son id
  3. create: <T, I>(data: I, query: string) => Promise<T>;
    creation d'un model
  4. getOne: <T>(where: string, query: string) => Promise<T>;
    recuperation d'un model ciblé avec une proprieter de votre choix
  5. deleteOne: <T>(where: string, query: string) => Promise<T>; suppression d'un model ciblé avec une proprieter de votre choix
  6. getAll: <T>(query: string) => Promise<T[]>;
    recuperation de tous les models ciblé avec votre request
  7. setheader: (token: string) => void;
    ajoute authorization au headers du graphqlClient

request graphql avec un cas d'utilisation

graphql-crud-sveltekit utilise des mots clés pour réduire les efforts des développeurs
chaque crud possède un mot clé pour les arguments
un exemple sera mieux qu'un grand discours

  • request graphql
// utilisation du mot " new " pour le crud " create "
export const ReqCreatePerson = gql`
  mutation createPerson($new: PersonCreateInput!) {
    createPerson(data: $new) {
      id
    }
  }
`;

Voila vous n'avez plus rien à vous souciez

donner cette request à la fonction create de ce package
et il fera le travaille pour vous

  • mot clé par CRUD
  1. create => $new
  2. publish => $id
  3. getOne => $where
  4. delete => $where
  5. getAll => pas d'argument

mise à jour

ce package à pour but de réduire la dificulté de la mise en place des requetes graphql
les arguments de requetes peuvent devenir un probleme entre developpeur si les noms
d'argument diffère il peut y avoir des erreurs
avec ce package il suffis d'utiliser les mots clef fournis pour nommée vos arguments
et il y aura plus d'erreur possible.
apporter vos idées, forker le projet et apporter votre contribution

le crud update est en cours de développement