fronteasy
Version:
Work in progress...
56 lines (46 loc) • 1.42 kB
JavaScript
module.exports = (function(observe) {
'use strict';
var chokidar = require('chokidar');
var task = require('./tasks/tasks');
var mimeTypes = require('mime-types');
function onFileChange(data) {
var mimeType = mimeTypes.lookup(data.info) || 'application/octet-stream';
// console.log(mimeType);
switch(mimeType) {
// template
case 'text/html': task.create.html(data);
break;
// styles
case 'text/css': task.create.css(data);
// console.log('compile:css');
break;
case 'text/x-scss':
// console.log('compile:scss');
break;
case 'text/x-sass':
// console.log('compile:x-sass');
break;
case 'text/less':
// console.log('compile:less');
break;
}
// console.log(data + ' ----> ' + mimeType);
}
function dispatcher(data) {
if (data.evt === 'add' || data.evt === 'change') onFileChange(data);
if (data.evt === 'addDir') task.create.directory(data.info);
// if (evt === 'unlinkDir' || evt === 'unlink') remove(data);
}
function project(data) {
chokidar.watch('./src/**/*').on('all', function(evt, info) {
dispatcher({
evt: evt,
info: info,
client: data.client
});
});
}
return {
project: project
};
})(global.observe || (global.observe = {}));