"use strict"; import { join } from "path"; import * as _ from "underscore"; import { Settings, Task } from "../types"; import dotnetbuilderwrapper from "./dotnetbuilderwrapper"; export default ((params, processor) => { if (processor.settings.isCodeAnalysisUnsupported && params.forceCodeAnalysis) { processor.onError("Code analysis is not supported"); return processor.done(); } const getAdditionalSigningParameters = () => { if (processor.settings.skipCodeSigning || params.skipCodeSigning) { return {}; } return { SigningKey: processor.settings.codeSigningKeyFile }; }; const skipCodeAnalysis = processor.settings.isCodeAnalysisUnsupported || params.ignoreCodeAnalysis || (processor.settings.ignoreCodeAnalysisByDefault && !params.forceCodeAnalysis); const compileParams = { Configuration: params.configuration, OutputDirectory: params.overrideOutputDirectory, SkipCodeAnalysis: skipCodeAnalysis, SolutionPath: join(processor.context.exported, params.solution), Target: params.target, command: "compile", }; return dotnetbuilderwrapper({ ...compileParams, ...getAdditionalSigningParameters(), }, processor); }) as Task;