Commit f5aca14c by Иван Кубота

log impruve

parent 60015c1f
...@@ -24,7 +24,7 @@ var cache = {}; ...@@ -24,7 +24,7 @@ var cache = {};
const serveBundle = async function(tpl, res){ const serveBundle = async function(tpl, res){
var fileName = dir(pack.src, pack.entry.js); var fileName = dir(pack.src, pack.entry.js);
var posixName = pack.entry.js;//path.posix.join(pack.src, ); var posixName = pack.entry.js;//path.posix.join(pack.src, );
console.log(fileName) //console.log(fileName)
fs.readFile(fileName, function(err, jsx) { fs.readFile(fileName, function(err, jsx) {
if(err){ if(err){
return res.end(err.message); return res.end(err.message);
...@@ -38,7 +38,7 @@ const serveBundle = async function(tpl, res){ ...@@ -38,7 +38,7 @@ const serveBundle = async function(tpl, res){
transformJSX(jsx+'', pack.entry.js, function(err, result) { transformJSX(jsx+'', pack.entry.js, function(err, result) {
if(err){ if(err){
console.error(err) res._log('!', err)
cache[ '/' + cacheEntry ] = JSON.stringify(err, null,2); cache[ '/' + cacheEntry ] = JSON.stringify(err, null,2);
}else }else
cache['/'+cacheEntry] = result.code; cache['/'+cacheEntry] = result.code;
...@@ -146,7 +146,6 @@ var transformServe = function(dir, anything) { ...@@ -146,7 +146,6 @@ var transformServe = function(dir, anything) {
file: path.join( __dirname, dir, req.url ), file: path.join( __dirname, dir, req.url ),
sourceMap: true, sourceMap: true,
importer: function( url, prev, done ){ importer: function( url, prev, done ){
console.log('Resolve scss dep ', url, 'for', fixedUrl);
if(url[0] === '/'){ if(url[0] === '/'){
url = path.join( __dirname, dir, url.substr(1)); url = path.join( __dirname, dir, url.substr(1));
} }
...@@ -155,37 +154,36 @@ var transformServe = function(dir, anything) { ...@@ -155,37 +154,36 @@ var transformServe = function(dir, anything) {
let fName; let fName;
done( { let contents;
file: displayName, // only one of them is required, see section Special Behaviours. try{
contents: fs.readFileSync( name ) + '' contents = fs.readFileSync( name ) + '';
} );
return;
let thisOne = function(name, data) {
done( { done( {
file: displayName, // only one of them is required, see section Special Behaviours. file: displayName, // only one of them is required, see section Special Behaviours.
contents: data contents: contents
} ); } );
}; return;
fs.readFile(fName = name, function(err, res) { }catch(e){}
if(err){ res._log('Resolve scss dep ', url, 'for', fixedUrl);
fs.readFile(fName = name+'.scss', function(err, res) {
if(err){
fs.readFile(fName = name+'.css', function(err, res) {
if(err){
var origEnd = qRes.end;
qRes.end = function(data) {
qRes.end = origEnd;
qRes.end(qRes, data);
console.error(data);
};
done(new Error('Can not resolve dependency!'))
}else{ thisOne(fName, res+'') }
})
}else{ thisOne(fName, res+'') }
})
}else{ thisOne(fName, res+'') }
});
try{
contents = fs.readFileSync( name+'.scss' ) + '';
done( {
file: displayName, // only one of them is required, see section Special Behaviours.
contents: contents
} );
return;
}catch(e){}
try{
contents = fs.readFileSync( name+'.css' ) + '';
done( {
file: displayName, // only one of them is required, see section Special Behaviours.
contents: contents
} );
return;
}catch(e){}
done(new Error('Can not resolve dependency!'))
} }
}, function( err, result ){ }, function( err, result ){
...@@ -204,10 +202,10 @@ var transformServe = function(dir, anything) { ...@@ -204,10 +202,10 @@ var transformServe = function(dir, anything) {
if( err ){ if( err ){
next(); next();
}else{ }else{
console.log('Transform jsx', req.url); res._log('Transform jsx');
transformJSX(data+'', req.url, function(err, result) { transformJSX(data+'', req.url, function(err, result) {
if(err){ if(err){
console.log('Error in transforming jsx', err); res._log('!Error in transforming jsx', err);
res.end(err.message+'\n'+err.stack) res.end(err.message+'\n'+err.stack)
}else{ }else{
cache[ req.url + '.map' ] = JSON.stringify( result.map ); cache[ req.url + '.map' ] = JSON.stringify( result.map );
...@@ -243,7 +241,7 @@ var transformServe = function(dir, anything) { ...@@ -243,7 +241,7 @@ var transformServe = function(dir, anything) {
if( err ){ if( err ){
next(); next();
}else{ }else{
console.log('Generate SVG declaration', req.url); res._log('Generate SVG declaration');
bCore.transform( bCore.transform(
`const SVG = D.declare("${req.url.replace(/\//g,'.').split('.').filter(String).join('.')}", (cfg)=>{ return ${(data+'').replace(/(<svg[^>]+"\s*)>/i,'$1 {...cfg}>')}; }); `const SVG = D.declare("${req.url.replace(/\//g,'.').split('.').filter(String).join('.')}", (cfg)=>{ return ${(data+'').replace(/(<svg[^>]+"\s*)>/i,'$1 {...cfg}>')}; });
...@@ -262,8 +260,7 @@ var transformServe = function(dir, anything) { ...@@ -262,8 +260,7 @@ var transformServe = function(dir, anything) {
moduleId: req.url moduleId: req.url
}, function( err, result ){ }, function( err, result ){
if(err){ if(err){
console.log('Error in transforming jsx', err); res._log('!Error in transforming svg', err);
res.end(err.message+'\n'+err.stack) res.end(err.message+'\n'+err.stack)
}else{ }else{
cache[ req.url + '.map' ] = JSON.stringify( result.map ); cache[ req.url + '.map' ] = JSON.stringify( result.map );
...@@ -286,14 +283,16 @@ var transformServe = function(dir, anything) { ...@@ -286,14 +283,16 @@ var transformServe = function(dir, anything) {
return function(req, res, next) { return function(req, res, next) {
if(req.url.substr(-3)[0] === '.' || req.url.substr(-4)[0] === '.')
return next();
let types = 'scss,jsx,svg'.split(',') let types = 'scss,jsx,svg'.split(',')
let test = 0; let test = 0;
let iterate = function() { let iterate = function() {
let outerFixedUrl = req.url+'.'+types[test]; let outerFixedUrl = req.url+'.'+types[test];
serve(req, res, function(a,b,c) { serve(req, res, function(a,b,c) {
console.log('!!!', a,b,c)
if(test<types.length){ if(test<types.length){
console.log('try serve', outerFixedUrl); res._log('try serve', outerFixedUrl);
test++; test++;
iterate(); iterate();
}else{ }else{
...@@ -308,15 +307,63 @@ var transformServe = function(dir, anything) { ...@@ -308,15 +307,63 @@ var transformServe = function(dir, anything) {
var count = 0; var count = 0;
var list = []; var list = [];
var pad = function(n) {
return n<10 ? '0'+n: n+'';
};
var getLogItem = function(logItem) {
if( logItem[ 0 ] === '!' ){
return {data: [ '\t' ].concat( logItem.substr( 1 ) ), error: true };
}else if( logItem[ 0 ][ 0 ] === '!' ){
return {data: [ '\t', logItem[ 0 ].substr( 1 ) ].concat( logItem.slice( 1 ) ), error: true };
}else{
return {data: [ '\t' ].concat( logItem ), error: false };
}
};
app.use(function(req, res, next) { app.use(function(req, res, next) {
console.log('Request', req.url);
var d = new Date();
res.on('finish', function() {
// Do log;
if(log.length){
let udishen = '';
if(log.length === 1){
udishen = getLogItem(log[0]).data;
console[udishen.error?'error':'log'].apply(console, [
d.getHours() + ':' + pad( d.getMinutes() ) + ':' + pad( d.getSeconds() ),
'Request', req.url, '\t→ '
].concat(udishen) )
}else{
console.log.apply(console, [
d.getHours() + ':' + pad( d.getMinutes() ) + ':' + pad( d.getSeconds() ),
'Request', req.url
]);
log.forEach( function( logItem ){
var item = getLogItem(logItem);;
if(item.error){
console.error.apply(console, item.data);
}else{
console.log.apply(console, item.data);
}
} )
}
}
});
let log = [];
res._log = function() {
log.push([...arguments]);
};
next(); next();
}); });
app.use(transformServe('src')); app.use(transformServe('src'));
var lives = []; var lives = [];
app.use('/', function(req, res, next){ app.use('/', function(req, res, next){
console.log( req.originalUrl ) //console.log( req.originalUrl )
if( req.originalUrl === '/' ){ if( req.originalUrl === '/' ){
fs.readFile( dir( pack.src, pack.entry.html ), function( err, data ){ fs.readFile( dir( pack.src, pack.entry.html ), function( err, data ){
if( err ){ if( err ){
...@@ -342,7 +389,7 @@ app.use(App.static(dir(pack.src))) ...@@ -342,7 +389,7 @@ app.use(App.static(dir(pack.src)))
app.use(transformServe('src', true)); app.use(transformServe('src', true));
app.use(function(req, res, next) { app.use(function(req, res, next) {
console.error('Not serving', req.url); res._log('!Not serving', req.url);
}); });
const util = require('util'); const util = require('util');
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment