Paquet CSV pour Node.js version 6

Version 6 de la csv forfait for Node.js est publié avec ses sous-projets. Voici les dernières versions :

  • csv version 6.0.0la dernière version était 5.5.3
    MNP
  • csv-generate version 4.0.0la dernière version était 3.4.3
    MNP
  • csv-parse version 5.0.0la dernière version était 4.16.3
    MNP
  • csv-stringify version 6.0.0la dernière version était 5.6.5
    MNP
  • stream-transform version 4.0.0la dernière version était 2.1.3
    MNP

Il y a eu beaucoup de commits depuis la sortie du dernier paquet, environ 100, beaucoup trop à mon avis. La plupart des efforts ont porté sur la migration vers Modules ECMAScript (ESM) et fournir une infrastructure de construction robuste basée sur Cumul. Le site a été mis à jour et enrichi de nombreux exemples.

Avant de présenter les nouveautés, voici d’abord les changements de rupture. Certains noms de module ont changé en fonction de votre environnement ciblé. La documentation fournit maintenant des informations détaillées et des exemples sur ce sujet. De plus, certaines options ont été renommées dans le csv-parse forfait. Il n’y en a pas trop :

  • Les utilisateurs de CommonJS doivent mettre à jour le chemin vers les modules de synchronisation, à partir de package_name/lib/sync à package_name/sync.
  • Les importations sont toujours détruites, par exemple import parse from 'csv-parse'il y a maintenant des exportations par défaut.
  • Dans le csv-parse forfait, options relax a été renommé relax_quotes.
  • Dans le csv-parse forfait, options skip_lines_with_empty_values a été renommé skip_records_with_empty_values.
  • Dans le csv-parse forfait, options skip_lines_with_error a été renommé skip_records_with_error.
  • Dans le csv-parse colis, erreur CSV_RECORD_DONT_MATCH_COLUMNS_LENGTH a été renommé CSV_RECORD_INCONSISTENT_COLUMNS.
  • Dans le csv-parse colis, erreur INCONSISTENT_RECORD_LENGTH a été renommé RECORD_INCONSISTENT_FIELDS_LENGTH.

Voici les principales fonctionnalités :

  • Tous les projets et modules sont désormais écrits sous forme de modules ECMAScript.
  • Utilisation transparente entre CommonJS et ESM avec package.json exports propriété
  • Rédaction de nombreux exemples intégrés au site de documentation
  • Remplacez la distribution du navigateur par la distribution IIFE générée par Rollup
  • Nouvelle distribution UMD
  • Intégrez les règles de charpie sur tous les fichiers js et café
  • Compatibilité de rétroportage avec Node.js 8 en csv-stringify
  • Dans csv-parseimprimer le tampon actuel avec les options skip_line_with_errors et raw
  • Dans csv-parseoption objname peut maintenant se référer à la position d’index
  • Quelques améliorations TypeScript

Voici un exemple rapide illustrant certains des changements, en utilisant le csv-parse/lib/sync module. Dans la version précédente, le code ressemblait à :

const parse = require('csv-parse/lib/sync');
const records = parse('a, "b" ,c', 
  relax: true
);

Dans la dernière version, le code mis à jour est désormais :

// `parse` is now destructured, it is consistent with
// `const parse = require('csv/sync');` if you are using the `csv` package.
// Also, the path to the sync module is now 'csv-parse/sync'
const parse = require('csv-parse/sync');
const records = parse('a, "b" ,c', 
  // `relax` was renamed `relax_quotes`, this is one of the few options from
  // `csv-parse` which were renamed.
  relax_quotes: true
);

Veuillez signaler les bogues et proposer des fonctionnalités au Référentiel CSV sur GitHub.

Leave a Reply