swagger-ts-generator
Version:
Given a swagger.json file, generates a number of TypeScript files which can be used as models and model-driven forms in Angular 2 (and above)
62 lines (50 loc) • 1.94 kB
JavaScript
/*global __dirname */
;
var gulp = require('gulp');
var $ = require('gulp-load-plugins')({ lazy: true });
var args = require('yargs').argv;
var swaggerTSGenerator = require('./index');
var request = require('request');
var source = require('vinyl-source-stream');
var config = require('./gulp.config');
//--------------- gulp tasks ---------------
gulp.task('show-help', gulp.series($.taskListing));
gulp.task('default', gulp.series('show-help')); // Set default gulp tasks
gulp.task('gen-webapi-download-swagger', genWebapiDownloadSwagger);
gulp.task('gen-webapi', gulp.series('gen-webapi-download-swagger', genWebapi));
gulp.task('gen', gulp.series('gen-webapi'));
gulp.task('gen-webapi-no-download', genWebapi);
//--------------- generator tasks ---------------
function genWebapi(done) {
swaggerTSGenerator.generateTSFiles(config.swagger.swaggerFile, config.swagger.swaggerTSGeneratorOptions);
done();
}
function genWebapiDownloadSwagger(done) {
process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; // Ignore 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' authorization error
// console.log(config);
return request
.get({
url: config.swagger.url,
headers: {
'User-Agent': 'request',
'content-type': 'application/json'
}
})
.pipe(customPlumber('Error gen-webapi-autorest'))
.pipe(source(config.files.swaggerJson))
.pipe($.streamify($.jsbeautifier(/*{ mode: 'VERIFY_AND_WRITE' }*/)))
.pipe(gulp.dest(config.swagger.swaggerFolder));
}
function customPlumber(errTitle) {
return $.plumber({
errorHandler: $.notify.onError({
// Customizing error title
title: errTitle || 'Error running Gulp',
message: 'Error: <%= error.message %>',
sound: 'Glass'
})
});
}
function log(msg) {
$.util.log($.util.colors.yellow(msg));
}