@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
33 lines • 1.79 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FlowrAnalyzerLoadingOrderPlugin = void 0;
const flowr_analyzer_plugin_1 = require("../flowr-analyzer-plugin");
const semver_1 = require("semver");
/**
* This is the base class for all plugins that determine the loading order of files in a project.
* These plugins interplay with the {@link FlowrAnalyzerFilesContext} to gather information about the files in the project and determine their loading order.
* See {@link DefaultFlowrAnalyzerLoadingOrderPlugin} for the dummy default implementation.
*
* In general, these plugins only trigger for a full project analysis after all files have been discovered and loaded.
* Otherwise, they may trigger multiple times (if for some reason, discovery reveals new files during the analysis).
*/
class FlowrAnalyzerLoadingOrderPlugin extends flowr_analyzer_plugin_1.FlowrAnalyzerPlugin {
type = flowr_analyzer_plugin_1.PluginType.LoadingOrder;
static defaultPlugin() {
return new DefaultFlowrAnalyzerLoadingOrderPlugin();
}
}
exports.FlowrAnalyzerLoadingOrderPlugin = FlowrAnalyzerLoadingOrderPlugin;
/**
* This is the default dummy implementation of the {@link FlowrAnalyzerLoadingOrderPlugin}.
* It does nothing and relies on the chronological order of file discovery.
*/
class DefaultFlowrAnalyzerLoadingOrderPlugin extends FlowrAnalyzerLoadingOrderPlugin {
name = 'default-loading-order-plugin';
description = 'This is the default loading order plugin that does nothing.';
version = new semver_1.SemVer('0.0.0');
process() {
/* we always *have* to have a loading order, this plugin does not have to guess to rely on chronological order */
}
}
//# sourceMappingURL=flowr-analyzer-loading-order-plugin.js.map