Aller au contenu

JavaScript

Quelques notes

NodeJS

Pour installer NodeJS, voir :

curl -sS https://mborne.github.io/outils/js/install-nodejs.sh | bash
winget install -e --id OpenJS.NodeJS.LTS

Gestion de dépendances

  • npm assure le téléchargement des dépendances et l'exécution des scripts définis dans le fichier package.json.
  • yarn est une alternative possible à npm
  • www.npmjs.com est le principal dépôt public.
  • npm-check-updates facilite la mise à jour des dépendances :
# Pour identifier les mises à jour possibles
npx npm-check-updates
# Pour mettre à jour les dépendances sans modifier la version majeure :
npx npm-check-updates -u -t minor

Bundlers

# Pour un projet React+TypeScript
npm create vite@latest demo-vite-ts -- --template react-ts
cd demo-vite-ts
npm run dev

Création d'API WEB

Création d'API CLI

  • commander simplifie la gestion des paramètres passés en ligne de commande et la mise en oeuvre d'un --help.

Frameworks

Tests unitaires et fonctionnels

  • Mocha pour l'exécution des tests unitaires + Chai supportant différents styles d'assertions (should, expect et assert)
  • Jest est une alternative qui inclue les assertions.
    • ts-jest assure la transpilation pour TypeScript et ES6
  • supertest permet de tester un service HTTP

Cartographie WEB

  • leaflet est une bibliothèque de cartographie web simple d'utilisation.
  • OpenLayers est une bibliothèque de cartographie web disposant de fonctionnalités avancées.
    • ol-ext propose un ensemble d'extensions pour OpenLayers.

Manipulation de données géographiques

  • proj4js permet de transformer des coordonnées géographiques
  • jsts est portage en JavaScript de la bibliotheque java JTS (portée en C++ sous le nom GEOS pour PostGIS) permettant d'effectuer des calculs géométriques tels des calculs de zones tampons.
  • turfjs permet elle aussi de réaliser de calculs géométriques avec des données GeoJSON et des coordonnées en longitude et latitude.
  • mapshaper est un utilitaire proposant entre autre des fonctionnalités de simplification géométrique conservant la topologie à l'échelle d'une couche.
  • topojson-simplify est lui aussi un utilitaire de simplification des géométries conservant la topologie.
  • node-gdal est un binding NodeJS de la bibliothèque GDAL supportant de nombreux formats vecteurs et images.

Rendu 3D

Markdown

  • marked.js pour la conversion de markdown en HTML.
  • marpit pour la convertion de markdown en présentation HTML.
  • remarkjs pour la convertion de markdown en présentation HTML.

Recherche full-text

LLM

  • langchain-js: Framework pour le développement d'application s'appuyant sur des grands modèles de langage (LLMs) avec appel d'outil, RAG, mémoire des conversations,...

Divers

Expérimentations

  • mborne/crash-test : Une application pour illustrer les redémarrages automatiques en cas de crash et les limites CPU/RAM avec Docker / Kubernetes.
  • mborne/math-city : Un mini-jeu pour apprendre les tables (développé pour prendre en main React plutôt que faire réciter des tables de multiplication).
  • mborne/markdown-to-html : Mon propre convertisseur de markdown en HTML puisqu'il n'y a pas assez de générateurs de sites statiques sur le marché 😉
  • mborne/ts-examples illustre la configuration des outils autour de TypeScript (ts-node, mocha, chai, nyc).

Les dépôts suivants doivent être archivés. Ils étaient utilisés par mborne/postgis-integration avant le portage en Python :

  • mborne/node-dl qui encapsule des appels à wget pour le téléchargement des données.
  • mborne/node-extract qui appelle l'exécutable adapté (tar, unzip,...) pour décompresser les archives.
  • mborne/node-ogr2pg qui exécute des commandes ogr2ogr pour charger différents formats dans PostgreSQL/PostGIS.
  • mborne/node-postgis-helper qui est une tentative d'aller un plus plus loin avec une gestion des métadonnées sur les sources et une exploration des schémas en vue de générer des API.

Ressources

Les bases :

NodeJS et npm :

Deno (alternative à NodeJS) :