1
+ const { promisify} = require ( "util" ) ;
2
+ const rimraf = promisify ( require ( "rimraf" ) ) ;
1
3
const log = require ( "@ui5/logger" ) . getGroupLogger ( "builder:builder" ) ;
2
4
const resourceFactory = require ( "@ui5/fs" ) . resourceFactory ;
3
5
const MemAdapter = require ( "@ui5/fs" ) . adapters . Memory ;
@@ -203,6 +205,7 @@ module.exports = {
203
205
* @param {Object } parameters Parameters
204
206
* @param {Object } parameters.tree Dependency tree
205
207
* @param {string } parameters.destPath Target path
208
+ * @param {boolean } [parameters.cleanDest=false] Decides whether project should clean the target path before build
206
209
* @param {boolean } [parameters.buildDependencies=false] Decides whether project dependencies are built as well
207
210
* @param {boolean } [parameters.dev=false] Decides whether a development build should be activated (skips non-essential and time-intensive tasks)
208
211
* @param {boolean } [parameters.selfContained=false] Flag to activate self contained build
@@ -213,7 +216,7 @@ module.exports = {
213
216
* @returns {Promise } Promise resolving to <code>undefined</code> once build has finished
214
217
*/
215
218
async build ( {
216
- tree, destPath,
219
+ tree, destPath, cleanDest = false ,
217
220
buildDependencies = false , dev = false , selfContained = false , jsdoc = false ,
218
221
includedTasks = [ ] , excludedTasks = [ ] , devExcludeProject = [ ]
219
222
} ) {
@@ -342,6 +345,9 @@ module.exports = {
342
345
}
343
346
344
347
try {
348
+ if ( cleanDest ) {
349
+ await rimraf ( destPath ) ;
350
+ }
345
351
await buildProject ( tree ) ;
346
352
log . info ( `Build succeeded in ${ getElapsedTime ( startTime ) } ` ) ;
347
353
} catch ( err ) {
0 commit comments