UNPKG

ima-gulp-tasks

Version:

Default gulp tasks for IMA.js applications.

51 lines (43 loc) 1.41 kB
const gulp = require('gulp'); const plumber = require('gulp-plumber'); const messageFormat = require('gulp-messageformat'); const insert = require('gulp-insert'); const rename = require('gulp-rename'); exports.__requiresConfig = true; exports.default = gulpConfig => { let files = gulpConfig.files; function locale() { function parseLocale(language, selector) { return gulp .src(selector) .pipe(plumber()) .pipe( rename(path => { path.basename = path.basename.replace( new RegExp(language.toUpperCase(), 'g'), '' ); }) ) .pipe(messageFormat({ locale: language, namespace: '$IMA.i18n' })) .pipe(plumber.stop()) .pipe( insert.wrap( '(function () {var $IMA = {}; if ((typeof window !== "undefined") && (window !== null)) { window.$IMA = window.$IMA || {}; $IMA = window.$IMA; }', ';return $IMA.i18n; })();' ) ) .pipe(gulp.dest(files.locale.dest.client)) .pipe(insert.wrap('module.exports =', '')) .pipe(gulp.dest(files.locale.dest.server)); } let locales = Object.keys(files.locale.src).map(language => { let selector = files.locale.src[language]; return parseLocale(language, selector); }); return locales[locales.length - 1]; } return { locale }; };