UNPKG

@eagleoutice/flowr-dev

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

30 lines 1.62 kB
"use strict"; 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