UNPKG

gulp-msbuild

Version:

msbuild plugin for gulp. Inspired by grunt-msbuild.

94 lines (87 loc) 3.12 kB
import { MSBuildOptions } from './msbuild/msbuild-options'; import through from 'through2'; import { MSBuildRunner } from './msbuild/msbuild-runner'; import { join } from 'path'; import { ArchitectureService } from './utilities/ArchitectureService'; import * as os from 'os'; import { v4 } from 'uuid'; function MSBuild({ stdout = false, stderr = true, errorOnFail = false, logCommand = false, targets = ['rebuild'], configuration = 'Release', toolsVersion = 'auto', properties = {}, verbosity = 'normal', maxcpucount = 0, nologo = true, platform = process.platform, architecture = ArchitectureService.Architecture, windir = ArchitectureService.Platform, msbuildPath = undefined, fileLoggerParameters = undefined, consoleLoggerParameters = undefined, loggerParameters = undefined, nodeReuse = true, customArgs = [], emitEndEvent = false, solutionPlatform = undefined, emitPublishedFiles = false, deployDefaultTarget = 'WebPublish', webPublishMethod = 'FileSystem', deleteExistingFiles = 'true', findDependencies = 'true', publishDirectory = join(os.tmpdir(), v4()) }) { let options = new MSBuildOptions({ stdout: stdout, stderr: stderr, errorOnFail: errorOnFail, logCommand: logCommand, targets: targets, configuration: configuration, toolsVersion: toolsVersion, properties: properties, verbosity: verbosity, maxcpucount: maxcpucount, nologo: nologo, platform: platform, architecture: architecture, windir: windir, msbuildPath: msbuildPath, fileLoggerParameters: fileLoggerParameters, consoleLoggerParameters: consoleLoggerParameters, loggerParameters: loggerParameters, nodeReuse: nodeReuse, customArgs: customArgs, emitEndEvent: emitEndEvent, solutionPlatform: solutionPlatform, emitPublishedFiles: emitPublishedFiles, deployDefaultTarget: deployDefaultTarget, webPublishMethod: webPublishMethod, deleteExistingFiles: deleteExistingFiles, findDependencies: findDependencies, publishDirectory: publishDirectory }); const stream = through.obj(function (file: any, enc: BufferEncoding, callback: through.TransformCallback) { const self = this; if (!file || !file.path) { self.push(file); return callback(); } return MSBuildRunner.startMsBuildTask(options, file, self, function (err: Error | null) { if (err) { return callback(err); } if (options.emitEndEvent) { self.emit("end"); } return callback(); }); }); return stream; } module.exports = MSBuild; module.exports.default = MSBuild;