@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
30 lines • 1.62 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FlowrAnalyzerPackageVersionsDescriptionFilePlugin = 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");
/**
* This plugin extracts package versions from R `DESCRIPTION` files.
* It looks at the `Depends` and `Imports` fields to find package names and their version constraints.
*/
class FlowrAnalyzerPackageVersionsDescriptionFilePlugin extends flowr_analyzer_package_versions_plugin_1.FlowrAnalyzerPackageVersionsPlugin {
name = 'flowr-analyzer-package-version-description-file-plugin';
description = 'Extracts package versions 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;
}
this.retrieveVersionsFromField(ctx, deps.depends() ?? []);
this.retrieveVersionsFromField(ctx, deps.imports() ?? []);
}
retrieveVersionsFromField(ctx, pkgs) {
for (const pkg of pkgs) {
ctx.deps.addDeclaredDependency(pkg);
}
}
}
exports.FlowrAnalyzerPackageVersionsDescriptionFilePlugin = FlowrAnalyzerPackageVersionsDescriptionFilePlugin;
//# sourceMappingURL=flowr-analyzer-package-versions-description-file-plugin.js.map