timpla
Version:
An optimal website development experience for [server-side] web frameworks.
146 lines • 6.4 kB
JavaScript
"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