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

microfact-mock-server

v1.0.5

Published

Serveur de mock pour les services de l'application Microfact. Ce projet utilise [Mirage JS](https://miragejs.com/) pour simuler les appels aux services.

Downloads

2

Readme

MicrofactMockServer

Serveur de mock pour les services de l'application Microfact. Ce projet utilise Mirage JS pour simuler les appels aux services.

Installation

npm install microfact-mock-server --save-dev

Utilisation

import { startServer, IServerConfig, IServer } from 'microfact-mock-server';

const config:Partial<IServerConfig> = {
  ...
}

const server:IServer = startServer(config);

Appel à placer, par exemple, avant le démarrage d'une application Angular (app.config.ts en standalone).

Remarques :

  • La config est optionnelle (startServer()).
  • La méthode startServer() retourne un objet IServer qui possède une méthode shutdown() pour stopper le serveur (server.shutdown()).

Configuration

/**
 * Interface de configuration du serveur
 */
export interface IServerConfig {
  // Préfixe de l'url pour les appels API
  urlPrefix: string;
  // Namespace pour les appels API
  namespace: string;
  // Doit-on renvoyer un businessResult dans les réponses
  businessResult: boolean;
  // Nombre de catégories et d'articles à générer
  seeds?: ISeeds | null;
}

/**
 * Interface qui va définir le nombre de catégories et d'articles à générer
 */
export interface ISeeds {
  totalCategories: number;
  totalArticles: number;
}

Si aucune configuration n'est passée dans le startServer(), la configuration par défaut est la suivante :

export const defaultConfig:IServerConfig = {
  urlPrefix: 'http://localhost:46001',
  namespace: 'api',
  businessResult: false
}

Important : Le paramètre seeds est optionnel. Si vous ne le passez pas, le serveur charge un jeu de données par défaut.

Le BusinessResult

Par défaut, les données sont renvoyées directement dans la réponse. Si vous souhaitez renvoyer un businessResult dans les réponses, vous pouvez le spécifier dans la configuration.

Le format du businessResult est le suivant :

export interface IBusinessResult<T> {
  result: T;
  errors: IError[];
  warnings: unknown[];
  metadata: {
    page: number;
    limit: number;
    total: number;
  };
}

export interface IError {
  code: number;
  message: string;
}

Remarque : Seuls le result et les errors sont utilisés dans les réponses. Les autres champs ne sont pas utilisés dans ce mock.

Gestion des erreurs

Le serveur peut renvoyer des erreurs.

Si le serveur est configuré pour ne pas renvoyer de businessResult

Les erreurs sont renvoyées directement dans l'entête de la réponse errors sous forme de chaine dont le format est le suivant code1:message1, code2:message2, ... (les codes étant des nombres)

Si le serveur est configuré pour renvoyer un businessResult

Les erreurs sont renvoyées dans le champ errors du businessResult sous forme de tableau d'objets dont le format est le suivant :

export interface IError {
  code: number;
  message: string;
}

Données de test

Ce serveur de mock fournit des données de test pour les entités suivantes :

  • Des Catégories
    • get /categories
    • get /categories/:id
    • post /categories
    • put /categories/:id
    • delete /categories/:id
  • Des Articles
    • get /articles
    • get /articles/:id
    • post /articles
    • put /articles/:id
    • delete /articles/:id

Les url complètes sont préfixées, par defaut, par http://localhost:46001/api (ex : http://localhost:46001/api/categories). Comme vu précédement ceci est modifiable via la configuration.

Catégories

  • id (string) : Identifiant de la catégorie
  • libelle (string) : Nom de la catégorie (unique)

Remarque : En dehors de l'identifiant, les catégories sont uniques par leur libelle. Une erreur est remontée si vous tentez de créer une catégorie avec un libellé déjà existant. Un libelle vide remonte aussi une erreur.

Articles

  • id (string) : Identifiant de l'article
  • nom (string) : Nom de l'article
  • codeArticle (string) : Code de l'article (unique)
  • puht (number) : Prix unitaire hors taxe
  • disponibilite (number) : Disponibilité de l'article
    • 0 : abandonné
    • 1 : en stock
    • 2 : en rupture
    • 3 : épuisé
  • categoryIds (string[]) : Identifiants des catégories de l'article

Remarques :

  • En dehors de l'identifiant, les articles sont uniques par leur codeArticle. Une erreur est remontée si vous tentez de créer un article avec un codeArticle déjà existant.
  • Les champs codeArticle et nom vides remontent une erreur.
  • Un prix inférieur ou égal à 0 remonte une erreur.