Currently engine pipeline (EnginePipeline and EnginePipelineRun classes in lazy repo) has a high level of domain knowledge with hard-coded function names (analyzeFile), parameters (hostPath, content, context, etc.), dispatch mechanism (languages) and results (warnings). Instead it should be able to execute any function (through JS late binding), passing a single object as parameter, accepting a single result object (to be passed further down the pipeline) and delegating per-language dispatching to a specialized engine.
Consider extracting engine pipeline (and its tests) as a separate node module flexible enough to be used for any domain.
Consider extracting engine pipeline configuration-from-YAML as a separate module.
Consider extracting C&C internal lazy controllers into a separate module to be used in conjunction with engine pipeline and custom engines.
Consider creating a separate C&C HTTP server for engines where they could be started, configured, shut down by lazy (that is central node of such a system)
Consider extracting lazy's proxy-ing of calls to engines as a separate external server (and making it optional)
Currently engine pipeline (
EnginePipeline
andEnginePipelineRun
classes inlazy
repo) has a high level of domain knowledge with hard-coded function names (analyzeFile
), parameters (hostPath
,content
,context
, etc.), dispatch mechanism (languages
) and results (warnings
). Instead it should be able to execute any function (through JS late binding), passing a single object as parameter, accepting a single result object (to be passed further down the pipeline) and delegating per-language
dispatching to a specialized engine.