in build-scripts/generateRunners.ts [29:90]
function generate(
filename: string,
clientTypes: string[],
additionalArguments?: string[],
additionalImports?: string[],
additionalSetupStatements?: string[],
successResult?: string,
returnType?: string
) {
const importStament = `
import * as tl from 'azure-pipelines-task-lib/task'
import { SdkUtils } from 'lib/sdkutils'
import { warnIfBuildAgentTooLow } from 'lib/vstsUtils'
${
clientTypes === undefined
? ''
: `\nimport { ${clientTypes.map(it => 'createDefault' + it).join(', ')} } from 'lib/defaultClients'`
}
import { TaskOperations } from './TaskOperations'
import { buildTaskParameters } from './TaskParameters'${
additionalImports === undefined ? '' : '\n\n' + additionalImports.join('\n ')
}
`
const runStatement = `
async function run(): Promise<${returnType === undefined ? 'void' : returnType}> {
SdkUtils.readResources()${
additionalSetupStatements === undefined ? '' : '\n ' + additionalSetupStatements.join('\n ')
}
const taskParameters = buildTaskParameters()
return new TaskOperations(${
clientTypes === undefined
? ''
: '\n ' +
clientTypes
.map(it => {
// tslint:disable-next-line:prefer-template
return 'await createDefault' + it + '(taskParameters, tl.debug),'
})
.join('\n ')
}${
// tslint:disable-next-line:prefer-template
additionalArguments === undefined ? '' : '\n ' + additionalArguments.join(',\n ') + ','
}
taskParameters).execute()
}
`
// TODO: Optionally output "TaskResult.SucceededWithIssues" depending on result?
const run = `
run().then((result) => {
tl.setResult(tl.TaskResult.Succeeded, '')
}).catch((error) => {
tl.setResult(tl.TaskResult.Failed, \`\${error}\`)
})
`
const output = header + importStament + runStatement + run
fs.writeFileSync(`src/tasks/${filename}/${filename}.runner.ts`, output)
}