get frame api working again, add missing build files
This commit is contained in:
parent
50e7e88d95
commit
3e48baf66f
7 changed files with 208 additions and 14 deletions
6
app.js
6
app.js
|
|
@ -322,6 +322,7 @@ const productionMap = {
|
||||||
'/lib/kiri-run/engine.js' : '/lib/pack/kiri-eng.js',
|
'/lib/kiri-run/engine.js' : '/lib/pack/kiri-eng.js',
|
||||||
'/lib/kiri-run/minion.js' : '/lib/pack/kiri-pool.js',
|
'/lib/kiri-run/minion.js' : '/lib/pack/kiri-pool.js',
|
||||||
'/lib/kiri-run/worker.js' : '/lib/pack/kiri-work.js',
|
'/lib/kiri-run/worker.js' : '/lib/pack/kiri-work.js',
|
||||||
|
// '/lib/kiri-run/frame.js' : '/lib/pack/kiri-frame.js',
|
||||||
};
|
};
|
||||||
|
|
||||||
function handleVersion(req, res, next) {
|
function handleVersion(req, res, next) {
|
||||||
|
|
@ -539,7 +540,8 @@ function rewriteHtmlVersion(req, res, next) {
|
||||||
"/lib/mesh/work.js",
|
"/lib/mesh/work.js",
|
||||||
"/lib/kiri-run/worker.js",
|
"/lib/kiri-run/worker.js",
|
||||||
"/lib/kiri-run/minion.js",
|
"/lib/kiri-run/minion.js",
|
||||||
"/lib/kiri-run/engine.js"
|
"/lib/kiri-run/engine.js",
|
||||||
|
"/lib/kiri-run/frame.js"
|
||||||
].indexOf(req.app.path) >= 0) {
|
].indexOf(req.app.path) >= 0) {
|
||||||
addCorsHeaders(req, res);
|
addCorsHeaders(req, res);
|
||||||
}
|
}
|
||||||
|
|
@ -547,6 +549,8 @@ function rewriteHtmlVersion(req, res, next) {
|
||||||
"/lib/main/kiri.js",
|
"/lib/main/kiri.js",
|
||||||
"/lib/main/mesh.js"
|
"/lib/main/mesh.js"
|
||||||
].indexOf(req.app.path) >= 0) {
|
].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('/')[3].split('.')[0]];
|
||||||
|
|
||||||
if (!data) return next();
|
if (!data) return next();
|
||||||
|
|
|
||||||
160
bin/esbuild.config.mjs
Normal file
160
bin/esbuild.config.mjs
Normal file
|
|
@ -0,0 +1,160 @@
|
||||||
|
import { build, transform } from 'esbuild';
|
||||||
|
import fs from 'fs/promises';
|
||||||
|
import glob from 'fast-glob';
|
||||||
|
|
||||||
|
// Get build mode from command line argument
|
||||||
|
const mode = process.argv[2] || 'dev';
|
||||||
|
const isProd = mode === 'prod';
|
||||||
|
|
||||||
|
console.log(`Building in ${mode} mode...`);
|
||||||
|
|
||||||
|
const MESH_OUTFILE = 'src/pack/mesh-main.js';
|
||||||
|
const MESH_EXTRAS = [ ];
|
||||||
|
|
||||||
|
const KIRI_OUTFILE = 'src/pack/kiri-main.js';
|
||||||
|
const KIRI_EXTRAS = [ ];
|
||||||
|
|
||||||
|
async function appendExtraModules(extras, outfile, minify = false) {
|
||||||
|
const files = await glob(extras);
|
||||||
|
if (files.length === 0) return;
|
||||||
|
|
||||||
|
const transformed = await Promise.all(
|
||||||
|
files.map(async (file) => {
|
||||||
|
const code = await fs.readFile(file, 'utf8');
|
||||||
|
if (!minify) return code;
|
||||||
|
|
||||||
|
const result = await transform(code, {
|
||||||
|
minify: true,
|
||||||
|
loader: 'js',
|
||||||
|
target: 'es2020',
|
||||||
|
});
|
||||||
|
return result.code;
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
await fs.appendFile(outfile, transformed.join(''));
|
||||||
|
console.log(`Appended ${files.length} module(s) to ${outfile}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
const logOverride = {
|
||||||
|
'duplicate-class-member': 'silent',
|
||||||
|
'duplicate-object-key': 'silent',
|
||||||
|
'direct-eval': 'silent'
|
||||||
|
};
|
||||||
|
|
||||||
|
async function buildApp() {
|
||||||
|
try {
|
||||||
|
// Bundle mesh main app
|
||||||
|
await build({
|
||||||
|
entryPoints: [ 'src/main/mesh.js' ],
|
||||||
|
bundle: true,
|
||||||
|
outfile: MESH_OUTFILE,
|
||||||
|
format: 'esm',
|
||||||
|
external: ['module'],
|
||||||
|
sourcemap: !isProd, // true for dev, false for prod
|
||||||
|
minify: isProd, // false for dev, true for prod
|
||||||
|
target: 'es2020',
|
||||||
|
platform: 'browser',
|
||||||
|
define: {
|
||||||
|
'process.env.NODE_ENV': `"${mode}"`
|
||||||
|
},
|
||||||
|
logOverride
|
||||||
|
});
|
||||||
|
|
||||||
|
appendExtraModules(MESH_EXTRAS, MESH_OUTFILE, isProd);
|
||||||
|
|
||||||
|
// Bundle mesh worker
|
||||||
|
await build({
|
||||||
|
entryPoints: [ 'src/mesh/work.js' ],
|
||||||
|
bundle: true,
|
||||||
|
outfile: 'src/pack/mesh-work.js',
|
||||||
|
format: 'esm',
|
||||||
|
external: ['module'],
|
||||||
|
sourcemap: !isProd, // true for dev, false for prod
|
||||||
|
minify: isProd, // false for dev, true for prod
|
||||||
|
target: 'es2020',
|
||||||
|
platform: 'browser',
|
||||||
|
define: {
|
||||||
|
'process.env.NODE_ENV': `"${mode}"`
|
||||||
|
},
|
||||||
|
logOverride
|
||||||
|
});
|
||||||
|
|
||||||
|
// Bundle kiri main app
|
||||||
|
await build({
|
||||||
|
entryPoints: [ 'src/main/kiri.js' ],
|
||||||
|
bundle: true,
|
||||||
|
outfile: KIRI_OUTFILE,
|
||||||
|
format: 'esm',
|
||||||
|
external: ['module'],
|
||||||
|
sourcemap: !isProd, // true for dev, false for prod
|
||||||
|
minify: isProd, // false for dev, true for prod
|
||||||
|
target: 'es2020',
|
||||||
|
platform: 'browser',
|
||||||
|
define: {
|
||||||
|
'process.env.NODE_ENV': `"${mode}"`
|
||||||
|
},
|
||||||
|
logOverride
|
||||||
|
});
|
||||||
|
|
||||||
|
appendExtraModules(KIRI_EXTRAS, KIRI_OUTFILE, isProd);
|
||||||
|
|
||||||
|
// Bundle kiri worker
|
||||||
|
await build({
|
||||||
|
entryPoints: [ 'src/kiri-run/worker.js' ],
|
||||||
|
bundle: true,
|
||||||
|
outfile: 'src/pack/kiri-work.js',
|
||||||
|
format: 'esm',
|
||||||
|
external: ['module'],
|
||||||
|
sourcemap: !isProd, // true for dev, false for prod
|
||||||
|
minify: isProd, // false for dev, true for prod
|
||||||
|
target: 'es2020',
|
||||||
|
platform: 'browser',
|
||||||
|
define: {
|
||||||
|
'process.env.NODE_ENV': `"${mode}"`
|
||||||
|
},
|
||||||
|
logOverride
|
||||||
|
});
|
||||||
|
|
||||||
|
// Bundle kiri minion
|
||||||
|
await build({
|
||||||
|
entryPoints: [ 'src/kiri-run/minion.js' ],
|
||||||
|
bundle: true,
|
||||||
|
outfile: 'src/pack/kiri-pool.js',
|
||||||
|
format: 'esm',
|
||||||
|
external: ['module'],
|
||||||
|
sourcemap: !isProd, // true for dev, false for prod
|
||||||
|
minify: isProd, // false for dev, true for prod
|
||||||
|
target: 'es2020',
|
||||||
|
platform: 'browser',
|
||||||
|
define: {
|
||||||
|
'process.env.NODE_ENV': `"${mode}"`
|
||||||
|
},
|
||||||
|
logOverride
|
||||||
|
});
|
||||||
|
|
||||||
|
// Bundle kiri engine
|
||||||
|
await build({
|
||||||
|
entryPoints: [ 'src/kiri-run/engine.js' ],
|
||||||
|
bundle: true,
|
||||||
|
outfile: 'src/pack/kiri-eng.js',
|
||||||
|
format: 'esm',
|
||||||
|
external: ['module'],
|
||||||
|
sourcemap: !isProd, // true for dev, false for prod
|
||||||
|
minify: isProd, // false for dev, true for prod
|
||||||
|
target: 'es2020',
|
||||||
|
platform: 'browser',
|
||||||
|
define: {
|
||||||
|
'process.env.NODE_ENV': `"${mode}"`
|
||||||
|
},
|
||||||
|
logOverride
|
||||||
|
});
|
||||||
|
|
||||||
|
console.log(`Build completed successfully in ${mode} mode!`);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Build failed:', error);
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
buildApp();
|
||||||
38
bin/webpack-three-esm.js
Normal file
38
bin/webpack-three-esm.js
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
mode: 'production',
|
||||||
|
entry: path.resolve(__dirname, './webpack-three-bundle.js'),
|
||||||
|
output: {
|
||||||
|
path: path.resolve(__dirname, '../src/ext'),
|
||||||
|
filename: 'three.js',
|
||||||
|
library: {
|
||||||
|
type: 'module'
|
||||||
|
},
|
||||||
|
module: true
|
||||||
|
},
|
||||||
|
experiments: {
|
||||||
|
outputModule: true
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
extensions: ['.mjs', '.js'],
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.m?js$/,
|
||||||
|
resolve: {
|
||||||
|
fullySpecified: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
optimization: {
|
||||||
|
minimize: false
|
||||||
|
},
|
||||||
|
performance: {
|
||||||
|
hints: false,
|
||||||
|
maxAssetSize: 2 * 1024 * 1024,
|
||||||
|
maxEntrypointSize: 2 * 1024 * 1024,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
@ -1,7 +1,5 @@
|
||||||
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
|
|
||||||
"use strict";
|
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
let KIRI = self.kiri = self.kiri || {};
|
let KIRI = self.kiri = self.kiri || {};
|
||||||
let frame, cwin, onevent = {}, targetOrigin;
|
let frame, cwin, onevent = {}, targetOrigin;
|
||||||
|
|
|
||||||
|
|
@ -1,17 +1,12 @@
|
||||||
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
import { load } from '../load.js';
|
|
||||||
import { kiri } from './kiri.js';
|
|
||||||
import { moto } from '../moto.js';
|
|
||||||
import { api } from './api.js';
|
|
||||||
import { newWidget } from './widget.js';
|
|
||||||
import { conf, event, feature, platform, settings, show } from './api.js';
|
|
||||||
import { VIEWS } from './consts.js';
|
|
||||||
|
|
||||||
|
import { api } from './api.js';
|
||||||
|
import { load } from '../load/file.js';
|
||||||
|
import { newWidget } from './widget.js';
|
||||||
|
import { VIEWS } from './consts.js';
|
||||||
|
|
||||||
// add frame message api listener
|
// add frame message api listener
|
||||||
window.addEventListener('message', msg => {
|
window.addEventListener('message', msg => {
|
||||||
const { load, kiri, moto } = self;
|
|
||||||
const { api, newWidget } = kiri;
|
|
||||||
const { conf, event, feature, platform, settings, show } = api;
|
const { conf, event, feature, platform, settings, show } = api;
|
||||||
|
|
||||||
if (!feature.frame) return;
|
if (!feature.frame) return;
|
||||||
|
|
@ -124,6 +119,3 @@ window.addEventListener('message', msg => {
|
||||||
show.progress(data.progress, data.message);
|
show.progress(data.progress, data.message);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// No direct exports; sets up message listener
|
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
/** Copyright Stewart Allen <sa@grid.space> -- All Rights Reserved */
|
||||||
|
|
||||||
|
import './frame.js';
|
||||||
|
|
||||||
import lang from './lang.js';
|
import lang from './lang.js';
|
||||||
import STACKS from './stacks.js';
|
import STACKS from './stacks.js';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js"></script>
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.4.12/ace.js"></script>
|
||||||
<script src="/code/frame.js"></script>
|
<script src="/lib/kiri-run/frame.js"></script>
|
||||||
<script>
|
<script>
|
||||||
let defc = [
|
let defc = [
|
||||||
"let api = kiri.frame;",
|
"let api = kiri.frame;",
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue