Compare commits

...

2 Commits

@ -4,17 +4,15 @@ var path = require("path");
var xtend = require("xtend"); var xtend = require("xtend");
var rfr = require("rfr"); var rfr = require("rfr");
var riot = require("gulp-riot");
var sass = require("gulp-sass");
var jade = require("gulp-jade");
var babel = require("gulp-babel");
var livereload = require("gulp-livereload"); var livereload = require("gulp-livereload");
var cache = require("gulp-cached");
var remember = require("gulp-remember");
var plumber = require("gulp-plumber");
var rename = require("gulp-rename"); var rename = require("gulp-rename");
var namedLog = require("gulp-named-log"); var namedLog = require("gulp-named-log");
var presetES2015 = require("@joepie91/gulp-preset-es2015");
var presetJade = require("@joepie91/gulp-preset-jade");
var presetSCSS = require("@joepie91/gulp-preset-scss");
var presetRiot = require("@joepie91/gulp-preset-riot");
var runProcess = rfr("src/gulp/run-process"); var runProcess = rfr("src/gulp/run-process");
var patchLivereloadLogger = rfr("src/gulp/patch-livereload-logger"); var patchLivereloadLogger = rfr("src/gulp/patch-livereload-logger");
@ -22,10 +20,6 @@ var loggerOptions = {
basePath: __dirname basePath: __dirname
} }
var babelLogger = namedLog("babel", loggerOptions);
var jadeLogger = namedLog("jade", loggerOptions);
var sassLogger = namedLog("sass", loggerOptions);
var riotLogger = namedLog("riot", loggerOptions);
var electronLogger = namedLog("electron", loggerOptions); var electronLogger = namedLog("electron", loggerOptions);
var livereloadLogger = namedLog("livereload", loggerOptions); var livereloadLogger = namedLog("livereload", loggerOptions);
@ -39,14 +33,6 @@ var sources = {
"riot-components": "src/components/**/*.tag" "riot-components": "src/components/**/*.tag"
} }
function getLiveReloadStream() {
var lr = livereload({
quiet: true
});
return lr;
}
gulp.task("electron", ['babel-lib', 'babel-main', 'jade-views', 'sass-main', 'riot-components'], function() { gulp.task("electron", ['babel-lib', 'babel-main', 'jade-views', 'sass-main', 'riot-components'], function() {
var electronProcess = runProcess(path.join(__dirname, "node_modules/.bin/electron"), [__dirname], { var electronProcess = runProcess(path.join(__dirname, "node_modules/.bin/electron"), [__dirname], {
logger: electronLogger, logger: electronLogger,
@ -58,67 +44,56 @@ gulp.task("electron", ['babel-lib', 'babel-main', 'jade-views', 'sass-main', 'ri
gulp.task('babel-main', function() { gulp.task('babel-main', function() {
return gulp.src(sources["babel-main"]) return gulp.src(sources["babel-main"])
.pipe(plumber(babelLogger.error)) .pipe(presetES2015({
.pipe(cache("babel-main")) livereload: livereload,
.pipe(babel({presets: ["es2015"]})) basePath: __dirname
.pipe(babelLogger.stream()) }))
.pipe(getLiveReloadStream())
.pipe(rename("app.es5.js")) .pipe(rename("app.es5.js"))
.pipe(gulp.dest("./")); .pipe(gulp.dest("./"));
}); });
gulp.task('babel-lib', function() { gulp.task('babel-lib', function() {
return gulp.src(sources["babel-lib"]) return gulp.src(sources["babel-lib"])
.pipe(plumber(babelLogger.error)) .pipe(presetES2015({
.pipe(cache("babel-lib")) livereload: livereload,
.pipe(babel({presets: ["es2015"]})) basePath: __dirname
.pipe(babelLogger.stream()) }))
.pipe(getLiveReloadStream()) .pipe(gulp.dest("./lib/"));
.pipe(gulp.dest("lib/"));
}); });
gulp.task("jade-views", function() { gulp.task("jade-views", function() {
return gulp.src(sources["jade-views"]) return gulp.src(sources["jade-views"])
.pipe(plumber(jadeLogger.error)) .pipe(presetJade({
.pipe(cache("jade-views")) livereload: livereload,
.pipe(jade()) basePath: __dirname
.pipe(jadeLogger.stream()) }))
.pipe(getLiveReloadStream())
.pipe(gulp.dest("lib/views/")); .pipe(gulp.dest("lib/views/"));
}); });
gulp.task("sass-main", function() { gulp.task("sass-main", function() {
return gulp.src(sources["sass-main"]) return gulp.src(sources["sass-main"])
.pipe(plumber(sassLogger.error)) .pipe(presetSCSS({
.pipe(cache("sass-main")) livereload: livereload,
.pipe(sass()) basePath: __dirname
.pipe(sassLogger.stream()) }))
.pipe(getLiveReloadStream())
.pipe(gulp.dest("lib/stylesheets/")); .pipe(gulp.dest("lib/stylesheets/"));
}); });
gulp.task("riot-components", function() { gulp.task("riot-components", function() {
return gulp.src(sources["riot-components"]) return gulp.src(sources["riot-components"])
.pipe(plumber(riotLogger.error)) .pipe(presetRiot({
.pipe(cache("riot-components")) livereload: livereload,
.pipe(riot({ basePath: __dirname
type: "babel",
template: "jade",
style: "scss"
})) }))
.pipe(riotLogger.stream())
.pipe(getLiveReloadStream())
.pipe(gulp.dest("lib/components/")); .pipe(gulp.dest("lib/components/"));
}); });
gulp.task('watch', function () { gulp.task('watch', function () {
livereload.listen(); livereload.listen();
gulp.watch(sources["babel-lib"], ["babel-lib"]); Object.keys(sources).forEach(function(source) {
gulp.watch(sources["babel-main"], ["babel-main"]); gulp.watch(sources[source], [source]);
gulp.watch(sources["jade-views"], ["jade-views"]); });
gulp.watch(sources["sass-main"], ["sass-main"]);
gulp.watch(sources["riot-components"], ["riot-components"]);
}); });
gulp.task('default', ['watch', 'electron']); gulp.task('default', ['watch', 'electron']);

@ -37,6 +37,10 @@
"xtend": "^4.0.1" "xtend": "^4.0.1"
}, },
"devDependencies": { "devDependencies": {
"@joepie91/gulp-preset-es2015": "^1.0.0",
"@joepie91/gulp-preset-jade": "^1.0.0",
"@joepie91/gulp-preset-riot": "^1.0.0",
"@joepie91/gulp-preset-scss": "^1.0.0",
"babel-core": "^6.7.6", "babel-core": "^6.7.6",
"babel-preset-es2015": "^6.6.0", "babel-preset-es2015": "^6.6.0",
"babel-preset-es2015-riot": "^1.0.4", "babel-preset-es2015-riot": "^1.0.4",

@ -3,7 +3,9 @@
const Promise = require("bluebird"); const Promise = require("bluebird");
const fs = Promise.promisifyAll(require("fs")); const fs = Promise.promisifyAll(require("fs"));
const path = require("path"); const path = require("path");
const naturalSort = require("natural-sort"); const rfr = require("rfr");
const directorySorter = rfr("lib/sorting/directory")();
function statComplete(target) { function statComplete(target) {
return Promise.try(() => { return Promise.try(() => {
@ -75,16 +77,6 @@ module.exports = function(basePath, options = {}) {
} }
}) })
}).then((entries) => { }).then((entries) => {
let sorter = naturalSort(); return entries.sort(directorySorter);
return entries.sort((entryA, entryB) => {
if (entryA.targetType == "folder" && entryB.targetType != "folder") {
return -1;
} else if (entryB.targetType == "folder" && entryA.targetType != "folder") {
return 1;
} else {
return sorter(entryA.name, entryB.name);
}
});
}); });
} }

@ -0,0 +1,28 @@
'use strict';
const naturalSort = require("natural-sort");
const rfr = require("rfr");
const priorityRules = rfr("lib/sorting/priority-rules");
module.exports = function() {
let naturalSorter = naturalSort();
let ruleSorter = priorityRules([
function(entry) {
return entry.name === "..";
},
function(entry) {
return entry.targetType === "folder";
}
]);
return function(entryA, entryB) {
let result = ruleSorter(entryA, entryB);
if (result !== 0) {
return result;
} else {
return naturalSorter(entryA.name, entryB.name);
}
}
}

@ -0,0 +1,19 @@
'use strict';
module.exports = function(rules) {
return function(entryA, entryB) {
for (let i = 0; i < rules.length; i++) {
let rule = rules[i];
let resultA = !!(rule(entryA));
let resultB = !!(rule(entryB));
if (resultA && !resultB) {
return -1;
} else if (resultB && !resultA) {
return 1;
}
}
return 0;
}
}
Loading…
Cancel
Save