reflow build/serve of alt, update app-server dep for proper fallthrough handling
This commit is contained in:
parent
b046ae2fa8
commit
fc63f395a4
3 changed files with 54 additions and 86 deletions
104
app.js
104
app.js
|
|
@ -37,7 +37,6 @@ let util;
|
|||
let dir;
|
||||
let log;
|
||||
let pre;
|
||||
let alt;
|
||||
|
||||
const EventEmitter = require('events');
|
||||
class AppEmitter extends EventEmitter {}
|
||||
|
|
@ -65,7 +64,6 @@ function init(mod) {
|
|||
startTime = time();
|
||||
lastmod = mod.util.lastmod;
|
||||
logger = mod.log;
|
||||
alt = ENV.alt;
|
||||
pre = ENV.pre || mod.meta.pre;
|
||||
debug = ENV.debug || mod.meta.debug;
|
||||
oversion = ENV.over || mod.meta.over;
|
||||
|
|
@ -80,10 +78,6 @@ function init(mod) {
|
|||
dversion = debug ? `_${version}` : version;
|
||||
forceUseCache = ENV.cache ? true : false;
|
||||
|
||||
if (!ENV.electron) {
|
||||
generateDevices();
|
||||
}
|
||||
|
||||
if (pre) {
|
||||
for (let [k,v] of Object.entries(productionMap)) {
|
||||
productionMap[`${pre}${k}`] = `${pre}${v}`;
|
||||
|
|
@ -142,7 +136,8 @@ function init(mod) {
|
|||
return "reload";
|
||||
});
|
||||
}
|
||||
mod.add(rewriteHtmlVersion);
|
||||
mod.add(addAppHeaders);
|
||||
mod.static("/lib/", "alt");
|
||||
mod.static("/lib/", "src");
|
||||
mod.static("/obj/", "web/obj");
|
||||
mod.static("/font/", "web/font");
|
||||
|
|
@ -194,28 +189,26 @@ function init(mod) {
|
|||
}
|
||||
}
|
||||
|
||||
if (alt) {
|
||||
for (let [ key, val ] of Object.entries(append)) {
|
||||
let src = `src/main/${key}.js`;
|
||||
if (!fs.existsSync(src)) {
|
||||
logger.log('missing:', src);
|
||||
continue;
|
||||
}
|
||||
fs.mkdirSync(`alt/main`, { recursive: true });
|
||||
let body = fs.readFileSync(src);
|
||||
fs.writeFileSync(`alt/main/${key}.js`, body + val);
|
||||
if (true) {
|
||||
// packed
|
||||
src= `src/pack/${key}-main.js`;
|
||||
if (!fs.existsSync(src)) {
|
||||
logger.log('missing:', src);
|
||||
continue;
|
||||
}
|
||||
fs.mkdirSync(`alt/pack`, { recursive: true });
|
||||
body = fs.readFileSync(src);
|
||||
fs.writeFileSync(`alt/pack/${key}-main.js`, body + val);
|
||||
}
|
||||
// create alt artifacts with module extensions
|
||||
logger.log('create alt artifacts');
|
||||
for (let [ key, val ] of Object.entries(append)) {
|
||||
let src = `src/main/${key}.js`;
|
||||
if (!fs.existsSync(src)) {
|
||||
logger.log('missing:', src);
|
||||
continue;
|
||||
}
|
||||
fs.mkdirSync(`alt/main`, { recursive: true });
|
||||
let body = fs.readFileSync(src);
|
||||
fs.writeFileSync(`alt/main/${key}.js`, body + val);
|
||||
|
||||
src= `src/pack/${key}-main.js`;
|
||||
if (!fs.existsSync(src)) {
|
||||
logger.log('missing:', src);
|
||||
continue;
|
||||
}
|
||||
fs.mkdirSync(`alt/pack`, { recursive: true });
|
||||
body = fs.readFileSync(src);
|
||||
fs.writeFileSync(`alt/pack/${key}-main.js`, body + val);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -440,28 +433,6 @@ function serveWasm(req, res, next) {
|
|||
}
|
||||
}
|
||||
|
||||
// pack/concat device script strings to inject into /code/ scripts
|
||||
function generateDevices() {
|
||||
let root = PATH.join(dir,"src","kiri","dev");
|
||||
let devs = {};
|
||||
fs.readdirSync(root).forEach(type => {
|
||||
let map = devs[type] = devs[type] || {};
|
||||
fs.readdirSync(PATH.join(root,type)).forEach(device => {
|
||||
let deviceName = device.endsWith('.json')
|
||||
? device.substring(0,device.length-5)
|
||||
: device;
|
||||
map[deviceName] = JSON.parse(fs.readFileSync(PATH.join(root,type,device)));
|
||||
});
|
||||
});
|
||||
let dstr = JSON.stringify(devs);
|
||||
util.mkdir(PATH.join(dir,"src","pack"));
|
||||
fs.writeFileSync(PATH.join(dir,"src","pack","kiri-devs.js"), `export const devices = ${dstr};`);
|
||||
if (alt) {
|
||||
fs.mkdirSync('alt/pack', { recursive: true });
|
||||
fs.writeFileSync(PATH.join(dir,"alt","pack","kiri-devs.js"), `export const devices = ${dstr};`);
|
||||
}
|
||||
}
|
||||
|
||||
function minify(code) {
|
||||
let mini = uglify.minify(code.toString(), {
|
||||
compress: {
|
||||
|
|
@ -585,7 +556,7 @@ function cookieValue(cookie,key) {
|
|||
}
|
||||
}
|
||||
|
||||
function rewriteHtmlVersion(req, res, next) {
|
||||
function addAppHeaders(req, res, next) {
|
||||
if ([
|
||||
"/kiri/",
|
||||
"/mesh/",
|
||||
|
|
@ -599,37 +570,6 @@ function rewriteHtmlVersion(req, res, next) {
|
|||
].indexOf(req.app.path) >= 0) {
|
||||
addCorsHeaders(req, res);
|
||||
}
|
||||
if ([
|
||||
"/lib/main/kiri.js",
|
||||
"/lib/main/mesh.js"
|
||||
].indexOf(req.app.path) >= 0) {
|
||||
addCorsHeaders(req, res);
|
||||
// const data = append[req.app.path.split('/')[3].split('.')[0]];
|
||||
const data = append[req.app.path.split('.')[0].split('/').pop()];
|
||||
|
||||
if (!data) return next();
|
||||
if (debug) logger.log({ append: req.app.path, data: data.length });
|
||||
|
||||
const real_write = res.write;
|
||||
const real_end = res.end;
|
||||
let body = '';
|
||||
|
||||
res.write = function (chunk, encoding) {
|
||||
body += chunk.toString(encoding);
|
||||
};
|
||||
|
||||
res.end = function (chunk, encoding) {
|
||||
if (chunk) {
|
||||
body += chunk.toString(encoding);
|
||||
}
|
||||
body += data;
|
||||
res.setHeader('Content-Length', Buffer.byteLength(body));
|
||||
res.setHeader('Content-Type', "application/javascript; charset=utf-8");
|
||||
real_write.call(res, body);
|
||||
real_end.call(res);
|
||||
};
|
||||
}
|
||||
|
||||
next();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue