UNPKG

timpla

Version:

An optimal website development experience for [server-side] web frameworks.

146 lines 6.4 kB
"use strict"; /** * gulpfile */ var __read = (this && this.__read) || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spread = (this && this.__spread) || function () { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; }; Object.defineProperty(exports, "__esModule", { value: true }); var RBrowserSync = require("browser-sync"); var gulp = require("gulp"); var internal_1 = require("./internal"); // Create gulp tasks using the timpla config var browserSync = internal_1.browserSync(internal_1.TIMPLA_CONFIG); var clean = internal_1.clean(internal_1.TIMPLA_CONFIG); exports.clean = clean; var open = internal_1.open(internal_1.TIMPLA_CONFIG); var openAnalyzer = internal_1.openAnalyzer(internal_1.TIMPLA_CONFIG); exports.openAnalyzer = openAnalyzer; var javascripts = internal_1.webpackProduction(internal_1.TIMPLA_CONFIG); exports.javascripts = javascripts; var rev = internal_1.rev(internal_1.TIMPLA_CONFIG); exports.rev = rev; var sizeReport = internal_1.sizeReport(internal_1.TIMPLA_CONFIG); exports.sizeReport = sizeReport; var init = internal_1.init(); exports.init = init; var initJS = internal_1.init(false); exports.initJS = initJS; var initConfig = internal_1.initConfig(internal_1.TIMPLA_CONFIG); exports.initConfig = initConfig; // Grab alternative tasks var alternateHtmlTask = internal_1.TIMPLA_CONFIG.html && internal_1.TIMPLA_CONFIG.html.alternate; var alternateSvgTask = internal_1.TIMPLA_CONFIG.svg && internal_1.TIMPLA_CONFIG.svg.alternate; var alternateStylesheetsTask = internal_1.TIMPLA_CONFIG.stylesheets && internal_1.TIMPLA_CONFIG.stylesheets.alternate; var alternateImagesTask = internal_1.TIMPLA_CONFIG.images && internal_1.TIMPLA_CONFIG.images.alternate; var alternateFontsTask = internal_1.TIMPLA_CONFIG.fonts && internal_1.TIMPLA_CONFIG.fonts.alternate; var alternateStaticFilesTask = internal_1.TIMPLA_CONFIG.staticFiles && internal_1.TIMPLA_CONFIG.staticFiles.alternate; // Create alternateable tasks var timplaHelper = { browserSync: RBrowserSync, gulp: gulp, projectDestPath: internal_1.projectDestPath, projectSrcPath: internal_1.projectSrcPath, timplaConfig: internal_1.TIMPLA_CONFIG, timplaProcess: internal_1.TIMPLA_PROCESS, }; var createExtraTasks = internal_1.TIMPLA_CONFIG.additionalTasks && internal_1.TIMPLA_CONFIG.additionalTasks.initialize; if (createExtraTasks) { createExtraTasks(timplaHelper); } var fonts = alternateFontsTask ? alternateFontsTask(timplaHelper) : internal_1.fonts(internal_1.TIMPLA_CONFIG); exports.fonts = fonts; var images = alternateImagesTask ? alternateImagesTask(timplaHelper) : internal_1.images(internal_1.TIMPLA_CONFIG); exports.images = images; var staticFiles = alternateStaticFilesTask ? alternateStaticFilesTask(timplaHelper) : internal_1.staticFiles(internal_1.TIMPLA_CONFIG); exports.staticFiles = staticFiles; var html = alternateHtmlTask ? alternateHtmlTask(timplaHelper) : internal_1.html(internal_1.TIMPLA_CONFIG); exports.html = html; var svg = alternateSvgTask ? alternateSvgTask(timplaHelper) : internal_1.svg(internal_1.TIMPLA_CONFIG); exports.svg = svg; var stylesheets = alternateStylesheetsTask ? alternateStylesheetsTask(timplaHelper) : internal_1.stylesheets(internal_1.TIMPLA_CONFIG); exports.stylesheets = stylesheets; // Init development watch // We're passing the created functions to keep the gulp task references var watch = internal_1.watch(internal_1.TIMPLA_CONFIG, { fonts: fonts, html: html, images: images, staticFiles: staticFiles, stylesheets: stylesheets, svg: svg, }); internal_1.checkAndLabel(browserSync, 'browserSync'); internal_1.checkAndLabel(fonts, 'fonts'); internal_1.checkAndLabel(clean, 'clean'); internal_1.checkAndLabel(open, 'open'); internal_1.checkAndLabel(javascripts, 'javascripts'); internal_1.checkAndLabel(rev, 'rev'); internal_1.checkAndLabel(sizeReport, 'sizeReport'); internal_1.checkAndLabel(images, 'images'); internal_1.checkAndLabel(staticFiles, 'staticFiles'); internal_1.checkAndLabel(html, 'html'); internal_1.checkAndLabel(svg, 'svg'); internal_1.checkAndLabel(stylesheets, 'stylesheets'); internal_1.checkAndLabel(watch, 'watch'); // Common tasks are used by both prod and dev runs var commonTasks = [ internal_1.TIMPLA_CONFIG.fonts && fonts, internal_1.TIMPLA_CONFIG.html && html, internal_1.TIMPLA_CONFIG.images && images, internal_1.TIMPLA_CONFIG.svg && svg, internal_1.TIMPLA_CONFIG.stylesheets && stylesheets, internal_1.TIMPLA_CONFIG.staticFiles && staticFiles, ].filter(Boolean); var parallelCommon = commonTasks.length && gulp.parallel.apply(gulp, __spread(commonTasks)); var currentEnv = internal_1.TIMPLA_PROCESS.isProduction ? 'production' : 'development'; var _a = (internal_1.TIMPLA_CONFIG.additionalTasks && internal_1.TIMPLA_CONFIG.additionalTasks[currentEnv]) || {}, _b = _a.prebuild, prebuildT = _b === void 0 ? false : _b, _c = _a.postbuild, postbuildT = _c === void 0 ? false : _c; var prebuild = prebuildT && prebuildT(timplaHelper); var postbuild = postbuildT && postbuildT(timplaHelper); var isOpenEnabled = !internal_1.TIMPLA_PROCESS.isTimplaReloaded && internal_1.TIMPLA_CONFIG[currentEnv] && internal_1.TIMPLA_CONFIG[currentEnv].open; var isCleanEnabled = !!internal_1.TIMPLA_CONFIG.clean; var devSeries = [ prebuild, isCleanEnabled && clean, parallelCommon, postbuild, browserSync, watch, isOpenEnabled && open, ].filter(Boolean); var prodSeries = [ prebuild, isCleanEnabled && clean, parallelCommon, internal_1.TIMPLA_CONFIG.javascripts && javascripts, internal_1.TIMPLA_CONFIG.production && internal_1.TIMPLA_CONFIG.production.rev && rev, sizeReport, postbuild, isOpenEnabled && open, ].filter(Boolean); var development = gulp.series.apply(gulp, __spread(devSeries)); var build = gulp.series.apply(gulp, __spread(prodSeries)); exports.build = build; exports.default = development; //# sourceMappingURL=index.js.map