Parse R package DESCRIPTION files
This package can parse DESCRIPTION from a file or a stream:
parse_stream(stream)parse_file(path)
Both functions return a promise and auto-detect the input format using the magic byte. We support 5 types:
text/plain: plain-text file in dcf format (i.e. raw DESCRIPTION file)application/zip: zip archive containing one file namedDESCRIPTIONapplication/gzip: tar.gz archive containing one file namedDESCRIPTIONapplication/zstd: tar.zstd archive containing one file namedDESCRIPTIONother: uncomprssed tarball archive containing one file namedDESCRIPTION
// npm install rdesc-parser
let { parse_stream } = await import("rdesc-parser");
let stream = fs.createReadStream('DESCRIPTION');
var desc = await parse_stream(stream);
descWe get same result by reading the file directly:
let { parse_file } = await import("rdesc-parser");
var desc = await parse_file('DESCRIPTION');
desc{
Package: 'sysreqs',
Title: 'Install SystemRequirements of Packages',
Version: '1.0.0.9000',
Author: 'Gabor Csardi',
Maintainer: 'Gabor Csardi <csardi.gabor@gmail.com>',
Description: 'Automatically download and install system requirements of R packages.',
License: 'MIT + file LICENSE',
LazyData: 'true',
URL: 'https://github.com/r-hub/sysreqs',
BugReports: 'https://github.com/r-hub/sysreqs/issues',
RoxygenNote: '5.0.1.9000',
Suggests: [ { package: 'testthat' } ],
Imports: [ { package: 'debugme' }, { package: 'desc' }, { package: 'utils' } ]
}The same interface is used for tar.zstd, .tar.gz, .tar and .zip package files.
let { parse_file } = await import("rdesc-parser");
var desc = await parse_file('curl_7.0.0.tar.gz');
descWe can use parse_stream to read a DESCRIPTION directly from an internet stream:
let { Readable } = await import( "stream");
let { parse_stream } = await import("rdesc-parser");
let response = await fetch('https://cran.r-project.org/src/contrib/Archive/curl/curl_6.0.0.tar.gz');
var desc = parse_stream(Readable.fromWeb(response.body));
descISC @ Gábor Csárdi
This repo is part of the R-hub project