gulp-lpmotor-jswrap

Wraps every function in the try-catch statement

Usage no npm install needed!

<script type="module">
  import gulpLpmotorJswrap from 'https://cdn.skypack.dev/gulp-lpmotor-jswrap';
</script>

README

Плагин оборачивает каждую функцию JavaScript-а в конструкцию try..catch.

Данная функциональность позволяет сделать единый обработчик для всех исключений, которые могут возникнуть в коде. Обработчик может, например, производить логирование или оповещение об ошибках.

Использование

Для начала нужно подготовить сборку всех файлов в один (concat). После этого можно применять jswrap, который для каждой функции в итоговом (минифицированном) варианте сделает обертку try..catch.

Можно задать, какая функция будет ловить исключения. В примере это error_handle(e, '{{fn_id}}').

где {{fn_id}} - это специальный текст, который будет заменён на номер исключения.

var gulp = require('gulp');
var gulp_jswrap = require('gulp-jswrap');
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
var uglify = require('gulp-uglify');

gulp.task('jswrap', function() {
    return gulp.src('src/**/*.js')
        .pipe(sourcemaps.init())
        .pipe(concat('all.js'))
        .pipe(gulp_jswrap('error_handle(e, \'{{fn_id}}\')'))
        .pipe(uglify())
        .pipe(sourcemaps.write('maps'))
        .pipe(gulp.dest('./dist'))
        ;
});

gulp.task('default', function() {
    gulp.start('jswrap');
});

gulp.task('watch', function() {
    gulp.watch('src/**/*.js', ['jswrap']);
});