lightning-flow-scanner-core
Advanced tools
Comparing version
@@ -7,3 +7,3 @@ import { IRuleDefinition } from './main/interfaces/IRuleDefinition'; | ||
export declare function scan(flows: Flow[], ruleOptions?: IRulesConfig): ScanResult[]; | ||
export declare function fix(flows: Flow[]): ScanResult[]; | ||
export declare function fix(results: ScanResult[]): ScanResult[]; | ||
export { Flow } from './main/models/Flow'; | ||
@@ -10,0 +10,0 @@ export { FlowAttribute } from './main/models/FlowAttribute'; |
@@ -50,4 +50,14 @@ "use strict"; | ||
exports.scan = scan; | ||
function fix(flows) { | ||
return (0, FixFlows_1.FixFlows)(flows); | ||
function fix(results) { | ||
let newResults = []; | ||
for (let result of results) { | ||
let flow = result.flow; | ||
let ruleResults = result.ruleResults; | ||
let ruleNames = ruleResults.filter((r) => r.occurs).map((r) => r.ruleName); | ||
if (ruleNames.includes('UnusedVariable') || ruleNames.includes('UnconnectedElement')) { | ||
result.flow = (0, FixFlows_1.FixFlows)(flow, ruleResults); | ||
newResults.push(result); | ||
} | ||
} | ||
return newResults; | ||
} | ||
@@ -54,0 +64,0 @@ exports.fix = fix; |
import * as core from '../internals/internals'; | ||
export declare function FixFlows(flows: core.Flow[]): core.ScanResult[]; | ||
export declare function FixFlows(flow: core.Flow, ruleResults: core.RuleResult[]): core.Flow; |
@@ -27,39 +27,32 @@ "use strict"; | ||
exports.FixFlows = void 0; | ||
const UnconnectedElement_1 = require("../rules/UnconnectedElement"); | ||
const UnusedVariable_1 = require("../rules/UnusedVariable"); | ||
const BuildFlow_1 = require("./BuildFlow"); | ||
const core = __importStar(require("../internals/internals")); | ||
function FixFlows(flows) { | ||
function FixFlows(flow, ruleResults) { | ||
const flowResults = []; | ||
for (const flow of flows) { | ||
const unconnectedElementsResult = new UnconnectedElement_1.UnconnectedElement().execute(flow); | ||
const unusedVariablesResult = new UnusedVariable_1.UnusedVariable().execute(flow); | ||
const ruleResults = [unusedVariablesResult, unconnectedElementsResult]; | ||
const unusedVariableReferences = unusedVariablesResult.details ? unusedVariablesResult.details.map(unusedVariable => unusedVariable.name) : []; | ||
const unconnectedElementsReferences = unconnectedElementsResult.details ? unconnectedElementsResult.details.map(unconnectedElement => unconnectedElement.name) : []; | ||
const nodesToBuild = flow.elements.filter(node => { | ||
switch (node.metaType) { | ||
case 'variable': | ||
const nodeVar = node; | ||
if (!unusedVariableReferences.includes(nodeVar.name)) { | ||
return node; | ||
} | ||
break; | ||
case 'node': | ||
const nodeElement = node; | ||
if (!unconnectedElementsReferences.includes(nodeElement.name)) { | ||
return node; | ||
} | ||
break; | ||
case 'metadata': | ||
const unusedVariableReferences = ruleResults.find((r) => r.ruleName === 'UnusedVariable').details.map((d) => d.name); | ||
const unconnectedElementsReferences = ruleResults.find((r) => r.ruleName === 'UnconnectedElement').details.map((d) => d.name); | ||
const nodesToBuild = flow.elements.filter(node => { | ||
switch (node.metaType) { | ||
case 'variable': | ||
const nodeVar = node; | ||
if (!unusedVariableReferences.includes(nodeVar.name)) { | ||
return node; | ||
} | ||
}); | ||
flow.xmldata = (0, BuildFlow_1.BuildFlow)(nodesToBuild); | ||
flow.preProcessNodes(); | ||
flowResults.push(new core.ScanResult(flow, ruleResults)); | ||
} | ||
return flowResults; | ||
} | ||
break; | ||
case 'node': | ||
const nodeElement = node; | ||
if (!unconnectedElementsReferences.includes(nodeElement.name)) { | ||
return node; | ||
} | ||
break; | ||
case 'metadata': | ||
return node; | ||
} | ||
}); | ||
flow.xmldata = (0, BuildFlow_1.BuildFlow)(nodesToBuild); | ||
flow.preProcessNodes(); | ||
flowResults.push(new core.ScanResult(flow, ruleResults)); | ||
return flow; | ||
} | ||
exports.FixFlows = FixFlows; | ||
//# sourceMappingURL=FixFlows.js.map |
{ | ||
"name": "lightning-flow-scanner-core", | ||
"version": "2.32.0", | ||
"version": "2.33.0", | ||
"main": "out/**", | ||
@@ -5,0 +5,0 @@ "types": "index.d.ts", |
@@ -55,4 +55,16 @@ import {IRuleDefinition} from './main/interfaces/IRuleDefinition'; | ||
export function fix(flows: Flow[]): ScanResult[] { | ||
return FixFlows(flows); | ||
export function fix(results : ScanResult[]): ScanResult[] { | ||
let newResults = []; | ||
for (let result of results){ | ||
let flow = result.flow; | ||
let ruleResults = result.ruleResults; | ||
let ruleNames = ruleResults.filter((r) => r.occurs).map((r) => r.ruleName); | ||
if(ruleNames.includes('UnusedVariable') || ruleNames.includes('UnconnectedElement')){ | ||
result.flow = FixFlows(flow, ruleResults); | ||
newResults.push(result); | ||
} | ||
} | ||
return newResults | ||
} | ||
@@ -59,0 +71,0 @@ |
@@ -1,39 +0,32 @@ | ||
import { UnconnectedElement } from '../rules/UnconnectedElement'; | ||
import { UnusedVariable } from '../rules/UnusedVariable'; | ||
import { BuildFlow } from './BuildFlow'; | ||
import * as core from '../internals/internals'; | ||
export function FixFlows(flows: core.Flow[]): core.ScanResult[] { | ||
export function FixFlows(flow: core.Flow, ruleResults: core.RuleResult[]): core.Flow { | ||
const flowResults: core.ScanResult[] = []; | ||
for (const flow of flows) { | ||
const unconnectedElementsResult: core.RuleResult = new UnconnectedElement().execute(flow); | ||
const unusedVariablesResult: core.RuleResult = new UnusedVariable().execute(flow); | ||
const ruleResults: core.RuleResult[] = [unusedVariablesResult, unconnectedElementsResult]; | ||
const unusedVariableReferences = unusedVariablesResult.details ? (unusedVariablesResult.details as core.ResultDetails[]).map(unusedVariable => unusedVariable.name) : []; | ||
const unconnectedElementsReferences = unconnectedElementsResult.details ? (unconnectedElementsResult.details as core.ResultDetails[]).map(unconnectedElement => unconnectedElement.name) : []; | ||
const nodesToBuild = flow.elements.filter(node => { | ||
switch (node.metaType) { | ||
case 'variable': | ||
const nodeVar = node as core.FlowVariable; | ||
if (!unusedVariableReferences.includes(nodeVar.name)) { | ||
return node; | ||
} | ||
break; | ||
case 'node': | ||
const nodeElement = node as core.FlowNode; | ||
if (!unconnectedElementsReferences.includes(nodeElement.name)) { | ||
return node; | ||
} | ||
break; | ||
case 'metadata': | ||
const unusedVariableReferences = ruleResults.find((r) => r.ruleName === 'UnusedVariable').details.map((d) => d.name); | ||
const unconnectedElementsReferences = ruleResults.find((r) => r.ruleName === 'UnconnectedElement').details.map((d) => d.name); | ||
const nodesToBuild = flow.elements.filter(node => { | ||
switch (node.metaType) { | ||
case 'variable': | ||
const nodeVar = node as core.FlowVariable; | ||
if (!unusedVariableReferences.includes(nodeVar.name)) { | ||
return node; | ||
} | ||
} | ||
break; | ||
case 'node': | ||
const nodeElement = node as core.FlowNode; | ||
if (!unconnectedElementsReferences.includes(nodeElement.name)) { | ||
return node; | ||
} | ||
break; | ||
case 'metadata': | ||
return node; | ||
} | ||
); | ||
flow.xmldata = BuildFlow(nodesToBuild); | ||
flow.preProcessNodes(); | ||
flowResults.push(new core.ScanResult(flow, ruleResults)); | ||
} | ||
return flowResults; | ||
); | ||
flow.xmldata = BuildFlow(nodesToBuild); | ||
flow.preProcessNodes(); | ||
flowResults.push(new core.ScanResult(flow, ruleResults)); | ||
return flow; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
34229
0.02%1033422
-0.01%