Erreur

Un outil Sumor Cloud.
Plus de documentation Une bibliothèque de gestion des erreurs prenant en charge plusieurs langues, des codes d'erreur prédéfinis et des données en transit.

CI Test Couverture Audit

Installation

npm i @sumor/error --save

Prérequis

Version de Node.JS

Nécessite la version de Node.JS 16.x ou supérieure

Requiert le module ES de Node.JS

Comme ce package est écrit en module ES, veuillez changer le code suivant dans votre fichier package.json :

{
  "type": "module"
}

Utilisation

Définir une Erreur

import defineError from '@sumor/error'

const MonErreur = defineError({
  nom: 'MonErreur',
  code: {
    UTILISATEUR_NON_TROUVÉ: 'Utilisateur non trouvé',
    UTILISATEUR_EXISTANT: 'L'utilisateur {nom} existe'
  }
})

throw new MonErreur('UTILISATEUR_NON_TROUVÉ')
// sortie: Erreur: Utilisateur non trouvé

throw new MonErreur('UTILISATEUR_EXISTANT', { nom: 'Alice' })
// sortie: Erreur: L'utilisateur Alice existe

Multi-langue

import defineError from '@sumor/error'

const MonErreur = defineError({
  nom: 'MonErreur',
  langue: 'en', // langue par défaut
  code: {
    UTILISATEUR_NON_TROUVÉ: 'Utilisateur non trouvé',
    UTILISATEUR_EXISTANT: "L'utilisateur {nom} existe"
  },
  i18n: {
    zh: {
      UTILISATEUR_NON_TROUVÉ: 'Utilisateur non trouvé',
      UTILISATEUR_EXISTANT: "L'utilisateur {nom} existe"
    }
  }
})

const erreur = new MonErreur('UTILISATEUR_EXISTANT', { nom: 'Alice' })
erreur.language = 'en' // changer la langue de l'erreur
console.log(erreur)
// sortie: Erreur: L'utilisateur Alice existe

erreur.language = 'zh' // changer la langue de l'erreur
console.log(erreur)
// sortie: Erreur: L'utilisateur Alice existe

Convertir une Erreur en JSON

import defineError from '@sumor/error'

const MonErreur = defineError({
  nom: 'MonErreur',
  code: {
    UTILISATEUR_NON_TROUVÉ: 'Utilisateur non trouvé',
    UTILISATEUR_EXISTANT: 'L'utilisateur {nom} existe'
  }
})

const erreur = new MonErreur('UTILISATEUR_EXISTANT', { nom: 'Alice' })
console.log(erreur.json())
// sortie: {"code":"UTILISATEUR_EXISTANT","message":"L'utilisateur Alice existe"}

Erreur Sous-jacente

import defineError from '@sumor/error'

const MonErreur = defineError({
  nom: 'MonErreur',
  code: {
    VÉRIFICATION_DU_CHAMP_ÉCHOUÉ: 'Échec de la vérification du champ',
    CHAMP_NON_VIDE: 'Le champ {nom} ne peut pas être vide',
    TROP_LONG: 'Le champ {nom} est trop long'
  },
  i18n: {
    zh: {
      VÉRIFICATION_DU_CHAMP_ÉCHOUÉ: 'Échec de la vérification du champ',
      CHAMP_NON_VIDE: 'Le champ {nom} ne peut pas être vide',
      TROP_LONG: 'Le champ {nom} est trop long'
    }
  }
})

const erreur = new MonErreur('VÉRIFICATION_DU_CHAMP_ÉCHOUÉ', {}, [
  new MonErreur('CHAMP_NON_VIDE', { nom: 'nom_utilisateur' }),
  new MonErreur('TROP_LONG', { nom: 'mot_de_passe' })
])

console.log(erreur.json())
/* 
sortie: 
{
  "code":"VÉRIFICATION_DU_CHAMP_ÉCHOUÉ",
  "message":"Échec de la vérification du champ",
  "erreurs":[
    {
      "code":"CHAMP_NON_VIDE",
      "message":"Le champ nom_utilisateur ne peut pas être vide"
    },{
      "code":"TROP_LONG",
      "message":"Le champ mot_de_passe est trop long"
    }
  ]
}
*/

erreur.language = 'zh'
console.log(erreur.json())
/*
sortie:
{
  "code":"VÉRIFICATION_DU_CHAMP_ÉCHOUÉ",
  "message":"Échec de la vérification du champ",
  "erreurs":[
    {
      "code":"CHAMP_NON_VIDE",
      "message":"Le champ nom_utilisateur ne peut pas être vide"
    },{
      "code":"TROP_LONG",
      "message":"Le champ mot_de_passe est trop long"
    }
  ]
}
*/

Combinaison d'Erreurs Standards

import defineError from '@sumor/error'

const MonErreur = defineError({
  nom: 'MonErreur',
  code: {
    VÉRIFICATION_DU_CHAMP_ÉCHOUÉ: 'Échec de la vérification du champ',
    CHAMP_NON_VIDE: 'Le champ {nom} ne peut pas être vide',
    TROP_LONG: 'Le champ {nom} est trop long'
  }
})

const erreur = new MonErreur('VÉRIFICATION_DU_CHAMP_ÉCHOUÉ', {}, [
  new MonErreur('CHAMP_NON_VIDE', { nom: 'nom_utilisateur' }),
  new MonErreur('TROP_LONG', { nom: 'mot_de_passe' }),
  new Error('Erreur Inconnue')
])

console.log(erreur.json())
/*
sortie:
{
  "code":"VÉRIFICATION_DU_CHAMP_ÉCHOUÉ",
  "message":"Échec de la vérification du champ",
  "erreurs":[
    {
      "code":"CHAMP_NON_VIDE",
      "message":"Le champ nom_utilisateur ne peut pas être vide"
    },{
      "code":"TROP_LONG",
      "message":"Le champ mot_de_passe est trop long"
    },{
      "code":"UNKNOWN_ERROR",
      "message":"Erreur Inconnue"
    }
  ]
}
 */