@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
116 lines • 9.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.BuiltInPlugins = void 0;
exports.registerPluginMaker = registerPluginMaker;
exports.getPlugin = getPlugin;
exports.makePlugin = makePlugin;
const flowr_analyzer_description_file_plugin_1 = require("./file-plugins/flowr-analyzer-description-file-plugin");
const flowr_analyzer_package_versions_description_file_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-description-file-plugin");
const flowr_analyzer_package_versions_sigdb_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-sigdb-plugin");
const flowr_analyzer_package_versions_lockfile_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-lockfile-plugin");
const flowr_analyzer_package_versions_session_info_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-session-info-plugin");
const flowr_analyzer_loading_order_description_file_plugin_1 = require("./loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin");
const flowr_analyzer_loading_order_implicit_sources_plugin_1 = require("./loading-order-plugins/flowr-analyzer-loading-order-implicit-sources-plugin");
const flowr_analyzer_rmd_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-rmd-file-plugin");
const flowr_analyzer_qmd_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-qmd-file-plugin");
const assert_1 = require("../../util/assert");
const flowr_analyzer_jupyter_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin");
const flowr_analyzer_namespace_files_plugin_1 = require("./file-plugins/flowr-analyzer-namespace-files-plugin");
const flowr_analyzer_package_versions_namespace_file_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-namespace-file-plugin");
const flowr_analyzer_news_file_plugin_1 = require("./file-plugins/flowr-analyzer-news-file-plugin");
const flowr_analyzer_rda_file_plugin_1 = require("./file-plugins/flowr-analyzer-rda-file-plugin");
const flowr_analyzer_vignette_file_plugin_1 = require("./file-plugins/flowr-analyzer-vignette-file-plugin");
const flowr_analyzer_test_file_plugin_1 = require("./file-plugins/flowr-analyzer-test-file-plugin");
const flowr_analyzer_inst_file_plugin_1 = require("./file-plugins/flowr-analyzer-inst-file-plugin");
const flowr_analyzer_license_file_plugin_1 = require("./file-plugins/flowr-analyzer-license-file-plugin");
const flowr_analyzer_virtualenv_file_plugin_1 = require("./file-plugins/flowr-analyzer-virtualenv-file-plugin");
const flowr_analyzer_manifest_file_plugin_1 = require("./file-plugins/flowr-analyzer-manifest-file-plugin");
const flowr_analyzer_meta_manifest_file_plugin_1 = require("./package-version-plugins/flowr-analyzer-meta-manifest-file-plugin");
const flowr_analyzer_meta_description_file_plugin_1 = require("./package-version-plugins/flowr-analyzer-meta-description-file-plugin");
const flowr_analyzer_sweave_file_plugin_1 = require("./file-plugins/notebooks/flowr-analyzer-sweave-file-plugin");
const flowr_analyzer_ignore_file_project_discovery_plugin_1 = require("./project-discovery/flowr-analyzer-ignore-file-project-discovery-plugin");
const flowr_analyzer_project_discovery_plugin_1 = require("./project-discovery/flowr-analyzer-project-discovery-plugin");
const flowr_analyzer_rprofile_file_plugin_1 = require("./file-plugins/flowr-analyzer-rprofile-file-plugin");
const flowr_analyzer_loading_order_rprofile_plugin_1 = require("./loading-order-plugins/flowr-analyzer-loading-order-rprofile-plugin");
const flowr_analyzer_package_versions_library_plugin_1 = require("./package-version-plugins/flowr-analyzer-package-versions-library-plugin");
const flowr_analyzer_loading_order_included_files_plugin_1 = require("./loading-order-plugins/flowr-analyzer-loading-order-included-files-plugin");
/**
* The built-in Flowr Analyzer plugins that are always available.
*/
exports.BuiltInPlugins = [
['file:description', flowr_analyzer_description_file_plugin_1.FlowrAnalyzerDescriptionFilePlugin],
['versions:description', flowr_analyzer_package_versions_description_file_plugin_1.FlowrAnalyzerPackageVersionsDescriptionFilePlugin],
['versions:sigdb', flowr_analyzer_package_versions_sigdb_plugin_1.FlowrAnalyzerPackageVersionsSigDbPlugin],
['versions:library', flowr_analyzer_package_versions_library_plugin_1.FlowrAnalyzerPackageVersionsLibraryPlugin],
['versions:renv', flowr_analyzer_package_versions_lockfile_plugin_1.FlowrAnalyzerPackageVersionsRenvPlugin],
['versions:rv', flowr_analyzer_package_versions_lockfile_plugin_1.FlowrAnalyzerPackageVersionsRvPlugin],
['versions:uvr', flowr_analyzer_package_versions_lockfile_plugin_1.FlowrAnalyzerPackageVersionsUvrPlugin],
['versions:packrat', flowr_analyzer_package_versions_lockfile_plugin_1.FlowrAnalyzerPackageVersionsPackratPlugin],
['versions:session-info', flowr_analyzer_package_versions_session_info_plugin_1.FlowrAnalyzerPackageVersionsSessionInfoPlugin],
['loading-order:description', flowr_analyzer_loading_order_description_file_plugin_1.FlowrAnalyzerLoadingOrderDescriptionFilePlugin],
['loading-order:implicit-sources', flowr_analyzer_loading_order_implicit_sources_plugin_1.FlowrAnalyzerLoadingOrderImplicitSourcesPlugin],
['loading-order:rprofile', flowr_analyzer_loading_order_rprofile_plugin_1.FlowrAnalyzerLoadingOrderRprofilePlugin],
['loading-order:included-files', flowr_analyzer_loading_order_included_files_plugin_1.FlowrAnalyzerLoadingOrderIncludedFilesPlugin],
['meta:description', flowr_analyzer_meta_description_file_plugin_1.FlowrAnalyzerMetaDescriptionFilePlugin],
['meta:rproject', flowr_analyzer_meta_manifest_file_plugin_1.FlowrAnalyzerMetaRProjectFilePlugin],
['meta:uvr', flowr_analyzer_meta_manifest_file_plugin_1.FlowrAnalyzerMetaUvrManifestFilePlugin],
['file-roles:vignette', flowr_analyzer_vignette_file_plugin_1.FlowrAnalyzerMetaVignetteFilesPlugin],
['file-roles:test', flowr_analyzer_test_file_plugin_1.FlowrAnalyzerMetaTestFilesPlugin],
['file-roles:inst', flowr_analyzer_inst_file_plugin_1.FlowrAnalyzerMetaInstFilesPlugin],
['file:rmd', flowr_analyzer_rmd_file_plugin_1.FlowrAnalyzerRmdFilePlugin],
['file:qmd', flowr_analyzer_qmd_file_plugin_1.FlowrAnalyzerQmdFilePlugin],
['file:rnw', flowr_analyzer_sweave_file_plugin_1.FlowrAnalyzerSweaveFilePlugin],
['file:ipynb', flowr_analyzer_jupyter_file_plugin_1.FlowrAnalyzerJupyterFilePlugin],
['file:namespace', flowr_analyzer_namespace_files_plugin_1.FlowrAnalyzerNamespaceFilesPlugin],
['versions:namespace', flowr_analyzer_package_versions_namespace_file_plugin_1.FlowrAnalyzerPackageVersionsNamespaceFilePlugin],
['file:news', flowr_analyzer_news_file_plugin_1.FlowrAnalyzerNewsFilePlugin],
['file:rda', flowr_analyzer_rda_file_plugin_1.FlowrAnalyzerRdaFilePlugin],
['file:license', flowr_analyzer_license_file_plugin_1.FlowrAnalyzerLicenseFilePlugin],
['file:virtualenv', flowr_analyzer_virtualenv_file_plugin_1.FlowrAnalyzerVirtualEnvFilePlugin],
['file:rproject', flowr_analyzer_manifest_file_plugin_1.FlowrAnalyzerRProjectFilePlugin],
['file:uvr', flowr_analyzer_manifest_file_plugin_1.FlowrAnalyzerUvrManifestFilePlugin],
['file:rprofile', flowr_analyzer_rprofile_file_plugin_1.FlowrAnalyzerRprofileFilePlugin],
['project-discovery:gitignore', flowr_analyzer_ignore_file_project_discovery_plugin_1.FlowrAnalyzerGitignoreProjectDiscoveryPlugin],
['project-discovery:rbuildignore', flowr_analyzer_ignore_file_project_discovery_plugin_1.FlowrAnalyzerRbuildignoreProjectDiscoveryPlugin],
['project-discovery:ignore-files', flowr_analyzer_ignore_file_project_discovery_plugin_1.FlowrAnalyzerIgnoreFileProjectDiscoveryPlugin],
['project-discovery:default', flowr_analyzer_project_discovery_plugin_1.FlowrAnalyzerDefaultProjectDiscoveryPlugin],
['project-discovery:full', flowr_analyzer_project_discovery_plugin_1.FlowrAnalyzerFullProjectDiscoveryPlugin]
];
/**
* The registry of built-in and user-registered Flowr Analyzer plugins.
* Used by the {@link FlowrAnalyzerBuilder} and {@link FlowrAnalyzer} to instantiate plugins by name.
*/
const PluginRegistry = new Map(exports.BuiltInPlugins);
/**
* Register a new Flowr Analyzer plugin for the registry,
* to be used by the {@link FlowrAnalyzerBuilder} and {@link FlowrAnalyzer}.
*/
function registerPluginMaker(plugin, name = plugin.name) {
PluginRegistry.set(name, plugin);
}
/**
* Retrieve a registered Flowr Analyzer plugin by its name.
* @see {@link PluginToRegister}
*/
function getPlugin(name, args) {
const plugin = PluginRegistry.get(name);
return plugin ? new plugin(...args) : undefined;
}
/**
* Create a Flowr Analyzer plugin from a {@link PluginToRegister} specification.
*/
function makePlugin(toRegister) {
if (toRegister instanceof Object && 'process' in toRegister) {
return toRegister;
}
if (Array.isArray(toRegister)) {
const [name, args] = toRegister;
const plugin = getPlugin(name, args);
(0, assert_1.guard)(plugin !== undefined, () => `Unknown Flowr Analyzer plugin: ${name.toString()}`);
return plugin;
}
const plugin = getPlugin(toRegister, []);
(0, assert_1.guard)(plugin !== undefined, () => `Unknown Flowr Analyzer plugin: ${toRegister.toString()}`);
return plugin;
}
//# sourceMappingURL=plugin-registry.js.map