change electron build context detection, move mods package deps to main package
This commit is contained in:
parent
97fd508e46
commit
99503f5072
7 changed files with 55 additions and 51 deletions
|
|
@ -32,7 +32,7 @@ function createWindow() {
|
||||||
height: 900,
|
height: 900,
|
||||||
webPreferences: {
|
webPreferences: {
|
||||||
// contextIsolation: true,
|
// contextIsolation: true,
|
||||||
// nodeIntegration: false,
|
// nodeIntegration: true,
|
||||||
// sandbox: true,
|
// sandbox: true,
|
||||||
// preload: undefined
|
// preload: undefined
|
||||||
// nodeIntegration: true,
|
// nodeIntegration: true,
|
||||||
|
|
|
||||||
60
app.js
60
app.js
|
|
@ -15,6 +15,10 @@ const license = require_fresh('./src/moto/license.js');
|
||||||
const version = license.version || "rogue";
|
const version = license.version || "rogue";
|
||||||
const netdb = require('@gridspace/net-level-client');
|
const netdb = require('@gridspace/net-level-client');
|
||||||
const PATH = require('path');
|
const PATH = require('path');
|
||||||
|
const isElectron = !!process.versions.electron ||
|
||||||
|
process.env.ELECTRON_RUN_AS_NODE === '1' ||
|
||||||
|
process.env.ELECTRON_NO_ATTACH === '1' ||
|
||||||
|
process.env.ELECTRON_BUILD === '1';
|
||||||
|
|
||||||
const append = { mesh:'', kiri:'' };
|
const append = { mesh:'', kiri:'' };
|
||||||
const code = {};
|
const code = {};
|
||||||
|
|
@ -32,6 +36,7 @@ let dversion;
|
||||||
let lastmod;
|
let lastmod;
|
||||||
let logger;
|
let logger;
|
||||||
let single;
|
let single;
|
||||||
|
let dryrun;
|
||||||
let debug;
|
let debug;
|
||||||
let http;
|
let http;
|
||||||
let util;
|
let util;
|
||||||
|
|
@ -61,12 +66,14 @@ netdb.create = async function(map = {}) {
|
||||||
|
|
||||||
function init(mod) {
|
function init(mod) {
|
||||||
const ENV = mod.env;
|
const ENV = mod.env;
|
||||||
|
const inElectron = isElectron || ENV.electron;
|
||||||
|
|
||||||
startTime = time();
|
startTime = time();
|
||||||
lastmod = mod.util.lastmod;
|
lastmod = mod.util.lastmod;
|
||||||
logger = mod.log;
|
logger = mod.log;
|
||||||
pre = ENV.pre || mod.meta.pre;
|
pre = ENV.pre || mod.meta.pre;
|
||||||
debug = ENV.debug || mod.meta.debug;
|
debug = ENV.debug || mod.meta.debug;
|
||||||
|
dryrun = ENV.dryrun;
|
||||||
single = ENV.single;
|
single = ENV.single;
|
||||||
oversion = ENV.over || mod.meta.over;
|
oversion = ENV.over || mod.meta.over;
|
||||||
crossOrigin = ENV.xorigin || mod.meta.xorigin || false;
|
crossOrigin = ENV.xorigin || mod.meta.xorigin || false;
|
||||||
|
|
@ -163,8 +170,14 @@ function init(mod) {
|
||||||
if (util.isfile(PATH.join(mod.dir,modpath,".disable"))) return;
|
if (util.isfile(PATH.join(mod.dir,modpath,".disable"))) return;
|
||||||
const isDebugMod = util.isfile(PATH.join(mod.dir,modpath,".debug"));
|
const isDebugMod = util.isfile(PATH.join(mod.dir,modpath,".debug"));
|
||||||
const isElectronMod = util.isfile(PATH.join(mod.dir,modpath,".electron"));
|
const isElectronMod = util.isfile(PATH.join(mod.dir,modpath,".electron"));
|
||||||
if (force || (ENV.electron && !isElectronMod)) return;
|
if (inElectron && !isElectronMod) {
|
||||||
if (force || (!ENV.electron && isElectronMod && !isDebugMod)) return;
|
logger.log({ skip_non_electron_mod: modpath });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!inElectron && isElectronMod && !isDebugMod) {
|
||||||
|
logger.log({ skip_electron_mod: modpath });
|
||||||
|
return;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
loadModule(mod, modpath);
|
loadModule(mod, modpath);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -196,25 +209,30 @@ function init(mod) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// create alt artifacts with module extensions
|
// create alt artifacts with module extensions
|
||||||
logger.log('creating artifacts', Object.keys(append));
|
if (dryrun || !isElectron) {
|
||||||
for (let [ key, val ] of Object.entries(append)) {
|
logger.log('creating artifacts', Object.keys(append));
|
||||||
let src = `${dir}/src/main/${key}.js`;
|
for (let [ key, val ] of Object.entries(append)) {
|
||||||
if (!fs.existsSync(src)) {
|
// append mains
|
||||||
logger.log('missing', src);
|
let src = `${dir}/src/main/${key}.js`;
|
||||||
continue;
|
if (!fs.existsSync(src)) {
|
||||||
|
logger.log('missing', src);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
fs.mkdirSync(`${dir}/alt/main`, { recursive: true });
|
||||||
|
let body = fs.readFileSync(src);
|
||||||
|
fs.writeFileSync(`${dir}/alt/main/${key}.js`, body + val);
|
||||||
|
// append packed mains
|
||||||
|
src= `${dir}/src/pack/${key}-main.js`;
|
||||||
|
if (!fs.existsSync(src)) {
|
||||||
|
logger.log('missing', src);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
fs.mkdirSync(`${dir}/alt/pack`, { recursive: true });
|
||||||
|
body = fs.readFileSync(src);
|
||||||
|
fs.writeFileSync(`${dir}/alt/pack/${key}-main.js`, body + val);
|
||||||
}
|
}
|
||||||
fs.mkdirSync(`${dir}/alt/main`, { recursive: true });
|
} else {
|
||||||
let body = fs.readFileSync(src);
|
logger.log('skipping artifacts');
|
||||||
fs.writeFileSync(`${dir}/alt/main/${key}.js`, body + val);
|
|
||||||
|
|
||||||
src= `${dir}/src/pack/${key}-main.js`;
|
|
||||||
if (!fs.existsSync(src)) {
|
|
||||||
logger.log('missing', src);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
fs.mkdirSync(`${dir}/alt/pack`, { recursive: true });
|
|
||||||
body = fs.readFileSync(src);
|
|
||||||
fs.writeFileSync(`${dir}/alt/pack/${key}-main.js`, body + val);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -280,11 +298,9 @@ function initModule(mod, file, dir) {
|
||||||
const [ path, file ] = [ ...arguments ];
|
const [ path, file ] = [ ...arguments ];
|
||||||
if (lastmod(file)) {
|
if (lastmod(file)) {
|
||||||
code[path] = fs.readFileSync(file);
|
code[path] = fs.readFileSync(file);
|
||||||
// console.log({ CODE: path, file });
|
|
||||||
} else if (lastmod(mod.dir + '/' + file)) {
|
} else if (lastmod(mod.dir + '/' + file)) {
|
||||||
const alt = mod.dir + '/' + file;
|
const alt = mod.dir + '/' + file;
|
||||||
code[path] = fs.readFileSync(alt);
|
code[path] = fs.readFileSync(alt);
|
||||||
// console.log({ CODE: path, alt });
|
|
||||||
} else {
|
} else {
|
||||||
console.log({ MISSING_CODE: path, file });
|
console.log({ MISSING_CODE: path, file });
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,10 +2,13 @@ const fs = require('fs-extra');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const server = require('@gridspace/app-server');
|
const server = require('@gridspace/app-server');
|
||||||
|
|
||||||
|
const altTmp = path.join('tmp','alt');
|
||||||
|
fs.copySync("alt", altTmp, { dereference: true });
|
||||||
|
|
||||||
// deref src, web, mod for windows
|
// deref src, web, mod for windows
|
||||||
const srcTmp = path.join('tmp','src');
|
const srcTmp = path.join('tmp','src');
|
||||||
fs.copySync("src", srcTmp, { dereference: true, filter:(src) => {
|
fs.copySync("src", srcTmp, { dereference: true, filter:(src) => {
|
||||||
return src.indexOf('web/pack') < 0;
|
return true || src.indexOf('src/main') < 0;
|
||||||
} });
|
} });
|
||||||
|
|
||||||
const webTmp = path.join('tmp','web');
|
const webTmp = path.join('tmp','web');
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"name": "grid-apps-mods",
|
|
||||||
"version": "4.1.0",
|
|
||||||
"description": "grid.space app modules",
|
|
||||||
"author": "Stewart Allen <sa@grid.space>",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/gridspace/apps.git"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@gridspace/basic-ftp": "^5.0.5",
|
|
||||||
"aedes": "^0.51.3",
|
|
||||||
"hexer": "^1.5.0",
|
|
||||||
"mqtt": "^5.10.3"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
13
package.json
13
package.json
|
|
@ -42,6 +42,7 @@
|
||||||
"@gridspace/raster-path": "^1.0.6",
|
"@gridspace/raster-path": "^1.0.6",
|
||||||
"@tracespace/parser": "^5.0.0-next.0",
|
"@tracespace/parser": "^5.0.0-next.0",
|
||||||
"@tweenjs/tween.js": "^16.6.0",
|
"@tweenjs/tween.js": "^16.6.0",
|
||||||
|
"aedes": "^0.51.3",
|
||||||
"base64-js": "^1.5.1",
|
"base64-js": "^1.5.1",
|
||||||
"bootstrap-icons": "^1.11.3",
|
"bootstrap-icons": "^1.11.3",
|
||||||
"buffer-crc32": "^0.2.13",
|
"buffer-crc32": "^0.2.13",
|
||||||
|
|
@ -50,10 +51,12 @@
|
||||||
"earcut": "^3.0.1",
|
"earcut": "^3.0.1",
|
||||||
"express-useragent": "^1.0.13",
|
"express-useragent": "^1.0.13",
|
||||||
"fast-glob": "^3.3.3",
|
"fast-glob": "^3.3.3",
|
||||||
|
"hexer": "^1.5.0",
|
||||||
"i": "^0.3.7",
|
"i": "^0.3.7",
|
||||||
"jszip": "^3.7.1",
|
"jszip": "^3.7.1",
|
||||||
"manifold-3d": "^3.2.1",
|
"manifold-3d": "^3.2.1",
|
||||||
"moment": "^2.29.4",
|
"moment": "^2.29.4",
|
||||||
|
"mqtt": "^5.10.3",
|
||||||
"npm": "^11.4.2",
|
"npm": "^11.4.2",
|
||||||
"prettier": "^3.5.3",
|
"prettier": "^3.5.3",
|
||||||
"react-responsive-carousel": "^3.2.23",
|
"react-responsive-carousel": "^3.2.23",
|
||||||
|
|
@ -104,18 +107,18 @@
|
||||||
"dryrun-prod": "gs-app-server --single --dryrun",
|
"dryrun-prod": "gs-app-server --single --dryrun",
|
||||||
"mac-verify": "spctl --assess -vv --type install dist/*/*.app",
|
"mac-verify": "spctl --assess -vv --type install dist/*/*.app",
|
||||||
"mk-links": "find src web -type l | xargs -I{} sh -c 'echo \"{},$(readlink {})\"' > conf/links.csv",
|
"mk-links": "find src web -type l | xargs -I{} sh -c 'echo \"{},$(readlink {})\"' > conf/links.csv",
|
||||||
"pack-dev": "npm run dryrun && npm run webpack-src && npm run bundle:dev",
|
"pack-dev": "npm run webpack-src && npm run dryrun && npm run bundle:dev",
|
||||||
"pack-prod": "npm run dryrun && npm run webpack-src prod && npm run bundle",
|
"pack-prod": "npm run webpack-src prod && npm run dryrun && npm run bundle",
|
||||||
"postbuild": "node bin/electron-post.js",
|
"postbuild": "node bin/electron-post.js",
|
||||||
"prebuild": "npm run setup && npm run pack-dev && node bin/electron-pre.js",
|
"prebuild": "export ELECTRON_BUILD=1 && npm run setup && npm run pack-dev && node bin/electron-pre.js",
|
||||||
"preinstall": "node bin/install-pre.js",
|
"preinstall": "node bin/install-pre.js",
|
||||||
"prod": "npm run pack-prod && gs-app-server",
|
"prod": "npm run pack-prod && gs-app-server",
|
||||||
"setup-mods": "cd mods && npm i",
|
"setup-mods": "cd mods && npm i",
|
||||||
"setup": "npm run setup-mods && npm i && npm run clean && npm run webpack-ext",
|
"setup": "npm run clean && npm run setup-mods && npm i && npm run webpack-ext",
|
||||||
"start-dbg": "npm run prebuild && electron . --debugg",
|
"start-dbg": "npm run prebuild && electron . --debugg",
|
||||||
"start-ddb": "npm run prebuild && electron . --devel --debugg",
|
"start-ddb": "npm run prebuild && electron . --devel --debugg",
|
||||||
"start-dev": "npm run prebuild prod && electron . --devel",
|
"start-dev": "npm run prebuild prod && electron . --devel",
|
||||||
"start": "npm run prebuild prod && electron .",
|
"start": "npm run prebuild && electron .",
|
||||||
"webpack-ext": "npm run webpack-three && npm run webpack-zip",
|
"webpack-ext": "npm run webpack-three && npm run webpack-zip",
|
||||||
"webpack-src": "node bin/esbuild.config.mjs",
|
"webpack-src": "node bin/esbuild.config.mjs",
|
||||||
"webpack-three": "npx webpack --config bin/webpack-three-esm.js",
|
"webpack-three": "npx webpack --config bin/webpack-three-esm.js",
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,6 @@ import { newSlice } from '../../core/slice.js';
|
||||||
import { Slicer as topo_slicer } from './slicer_topo.js';
|
import { Slicer as topo_slicer } from './slicer_topo.js';
|
||||||
import { polygons as POLY } from '../../../geo/polygons.js';
|
import { polygons as POLY } from '../../../geo/polygons.js';
|
||||||
import { Tool } from './tool.js';
|
import { Tool } from './tool.js';
|
||||||
import { poly2polyEmit } from '../../../geo/paths.js';
|
|
||||||
|
|
||||||
const RAD2DEG = 180 / Math.PI;
|
const RAD2DEG = 180 / Math.PI;
|
||||||
const DEG2RAD = Math.PI / 180;
|
const DEG2RAD = Math.PI / 180;
|
||||||
|
|
@ -122,7 +121,7 @@ export class Topo {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (contourY) {
|
if (contourY) {
|
||||||
console.time('swap XY vertices');
|
// console.time('swap XY vertices');
|
||||||
// swap XY vertices
|
// swap XY vertices
|
||||||
for (let i=0; i<vertices.length; i+= 3) {
|
for (let i=0; i<vertices.length; i+= 3) {
|
||||||
let tmp = vertices[i+1];
|
let tmp = vertices[i+1];
|
||||||
|
|
@ -135,8 +134,7 @@ export class Topo {
|
||||||
ext.x = ext.y;
|
ext.x = ext.y;
|
||||||
ext.y = tmp;
|
ext.y = tmp;
|
||||||
});
|
});
|
||||||
console.log({ wbounds });
|
// console.timeEnd('swap XY vertices');
|
||||||
console.timeEnd('swap XY vertices');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let gpu = await self.get_raster_gpu({
|
let gpu = await self.get_raster_gpu({
|
||||||
|
|
|
||||||
|
|
@ -74,8 +74,8 @@ self.get_raster_gpu = async function({ mode, resolution, rotationStep }) {
|
||||||
resolution,
|
resolution,
|
||||||
rotationStep,
|
rotationStep,
|
||||||
workerName: "/lib/gpu/raster-worker.js",
|
workerName: "/lib/gpu/raster-worker.js",
|
||||||
quiet: false,
|
quiet: true,
|
||||||
debug: true,
|
debug: false,
|
||||||
});
|
});
|
||||||
await gpu.init();
|
await gpu.init();
|
||||||
return gpu;
|
return gpu;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue