@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
41 lines • 2.03 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FlowrAnalyzerMetaDescriptionFilePlugin = void 0;
const flowr_analyzer_package_versions_plugin_1 = require("./flowr-analyzer-package-versions-plugin");
const flowr_analyzer_description_file_plugin_1 = require("../file-plugins/flowr-analyzer-description-file-plugin");
const semver_1 = require("semver");
const flowr_analyzer_meta_context_1 = require("../../context/flowr-analyzer-meta-context");
/**
* This plugin extracts package meta information from R `DESCRIPTION` files.
*/
class FlowrAnalyzerMetaDescriptionFilePlugin extends flowr_analyzer_package_versions_plugin_1.FlowrAnalyzerPackageVersionsPlugin {
name = 'flowr-analyzer-meta-file-plugin';
description = 'Extracts package meta information from DESCRIPTION files.';
version = new semver_1.SemVer('0.1.0');
process(ctx) {
const deps = flowr_analyzer_description_file_plugin_1.DescriptionFile.single(ctx, 'No description file found, cannot extract package versions.');
if (deps === undefined) {
return;
}
const pkg = deps.packageName();
ctx.meta.contribute({
name: pkg,
// a DESCRIPTION marks a real package, so its name is also the namespace `a::b` resolves against
namespace: pkg,
version: deps.version(),
title: deps.packageTitle(),
authors: deps.authors(),
encoding: deps.content().get('Encoding')?.[0],
licenses: deps.license(),
declares: {
imports: deps.imports(),
depends: deps.depends(),
suggests: deps.suggests(),
linkingTo: deps.linkingTo(),
enhances: deps.enhances()
}
}, flowr_analyzer_meta_context_1.MetaPriority.Description);
}
}
exports.FlowrAnalyzerMetaDescriptionFilePlugin = FlowrAnalyzerMetaDescriptionFilePlugin;
//# sourceMappingURL=flowr-analyzer-meta-description-file-plugin.js.map