[build] added gulp builder
This commit is contained in:
24
tasks/download.js
Normal file
24
tasks/download.js
Normal file
@@ -0,0 +1,24 @@
|
||||
'use strict';
|
||||
const path = require('path');
|
||||
const request = require('request');
|
||||
const progress = require('request-progress');
|
||||
const source = require('vinyl-source-stream');
|
||||
const gutil = require('gulp-util');
|
||||
|
||||
|
||||
module.exports = (url) => {
|
||||
const name = path.basename(url);
|
||||
let stream = null;
|
||||
return stream = progress(request({url: url, encoding: null}, function(error, response, body) {
|
||||
try {
|
||||
if (error) throw error;
|
||||
if (response.statusCode !== 200) throw `${response.statusCode} ${response.statusMessage}`;
|
||||
} catch (e) {
|
||||
this.emit('error', new gutil.PluginError({plugin: 'download', message: e}));
|
||||
}
|
||||
}))
|
||||
.on('error', (e) => stream.emit('error', e))
|
||||
.on('progress', (p) => stream.emit('progress', p))
|
||||
.pipe(source(name));
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user