Commit 80ad3716 by talequale

merge

parents ec6b8bc6 f5aca14c
......@@ -24,7 +24,7 @@ var cache = {};
const serveBundle = async function(tpl, res){
var fileName = dir(pack.src, pack.entry.js);
var posixName = pack.entry.js;//path.posix.join(pack.src, );
console.log(fileName)
//console.log(fileName)
fs.readFile(fileName, function(err, jsx) {
if(err){
return res.end(err.message);
......@@ -38,7 +38,7 @@ const serveBundle = async function(tpl, res){
transformJSX(jsx+'', pack.entry.js, function(err, result) {
if(err){
console.error(err)
res._log('!', err)
cache[ '/' + cacheEntry ] = JSON.stringify(err, null,2);
}else
cache['/'+cacheEntry] = result.code;
......@@ -146,7 +146,6 @@ var transformServe = function(dir, anything) {
file: path.join( __dirname, dir, req.url ),
sourceMap: true,
importer: function( url, prev, done ){
console.log('Resolve scss dep ', url, 'for', fixedUrl);
if(url[0] === '/'){
url = path.join( __dirname, dir, url.substr(1));
}
......@@ -155,37 +154,36 @@ var transformServe = function(dir, anything) {
let fName;
let contents;
try{
contents = fs.readFileSync( name ) + '';
done( {
file: displayName, // only one of them is required, see section Special Behaviours.
contents: fs.readFileSync( name ) + ''
contents: contents
} );
return;
let thisOne = function(name, data) {
}catch(e){}
res._log('Resolve scss dep ', url, 'for', fixedUrl);
try{
contents = fs.readFileSync( name+'.scss' ) + '';
done( {
file: displayName, // only one of them is required, see section Special Behaviours.
contents: data
contents: contents
} );
};
fs.readFile(fName = name, function(err, res) {
if(err){
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+'') }
});
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 ){
......@@ -204,10 +202,10 @@ var transformServe = function(dir, anything) {
if( err ){
next();
}else{
console.log('Transform jsx', req.url);
res._log('Transform jsx');
transformJSX(data+'', req.url, function(err, result) {
if(err){
console.log('Error in transforming jsx', err);
res._log('!Error in transforming jsx', err);
res.end(err.message+'\n'+err.stack)
}else{
cache[ req.url + '.map' ] = JSON.stringify( result.map );
......@@ -243,7 +241,7 @@ var transformServe = function(dir, anything) {
if( err ){
next();
}else{
console.log('Generate SVG declaration', req.url);
res._log('Generate SVG declaration');
bCore.transform(
`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) {
moduleId: req.url
}, function( err, result ){
if(err){
console.log('Error in transforming jsx', err);
res._log('!Error in transforming svg', err);
res.end(err.message+'\n'+err.stack)
}else{
cache[ req.url + '.map' ] = JSON.stringify( result.map );
......@@ -286,14 +283,16 @@ var transformServe = function(dir, anything) {
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 test = 0;
let iterate = function() {
let outerFixedUrl = req.url+'.'+types[test];
serve(req, res, function(a,b,c) {
console.log('!!!', a,b,c)
if(test<types.length){
console.log('try serve', outerFixedUrl);
res._log('try serve', outerFixedUrl);
test++;
iterate();
}else{
......@@ -308,15 +307,63 @@ var transformServe = function(dir, anything) {
var count = 0;
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) {
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();
});
app.use(transformServe('src'));
var lives = [];
app.use('/', function(req, res, next){
console.log( req.originalUrl )
//console.log( req.originalUrl )
if( req.originalUrl === '/' ){
fs.readFile( dir( pack.src, pack.entry.html ), function( err, data ){
if( err ){
......@@ -342,7 +389,7 @@ app.use(App.static(dir(pack.src)))
app.use(transformServe('src', true));
app.use(function(req, res, next) {
console.error('Not serving', req.url);
res._log('!Not serving', req.url);
});
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