Лицензия, редактор, пульт и сборка

- Main: license service, IPC, router; закрытие окон; yauzl закрытие zip (EMFILE), zipRead тест
- Editor: стабильный projectState без мигания, логотип и меню, строки UI, LayoutShell overlay
- Control: ластик для всех типов эффектов, затухание/нарастание музыки при смене сцены
- Сборка: vite, build/dev scripts, obfuscate-main и build-env скрипты с тестами; package.json

Made-with: Cursor
This commit is contained in:
Ivan Fontosh
2026-04-19 20:11:24 +08:00
parent 5e7dc5ea19
commit 2fa20da94d
40 changed files with 2629 additions and 211 deletions
+21
View File
@@ -0,0 +1,21 @@
import assert from 'node:assert/strict';
import test from 'node:test';
import { resolveIsProduction, resolveObfuscateMain } from './build-env.mjs';
void test('resolveIsProduction: argv --production', () => {
assert.equal(resolveIsProduction(['node', 'scripts/build.mjs', '--production'], {}), true);
});
void test('resolveIsProduction: NODE_ENV=production', () => {
assert.equal(resolveIsProduction(['node', 'scripts/build.mjs'], { NODE_ENV: 'production' }), true);
});
void test('resolveIsProduction: dev по умолчанию', () => {
assert.equal(resolveIsProduction(['node', 'scripts/build.mjs'], { NODE_ENV: 'development' }), false);
});
void test('resolveObfuscateMain: --obfuscate', () => {
assert.equal(resolveObfuscateMain(['node', 'build.mjs', '--production', '--obfuscate']), true);
assert.equal(resolveObfuscateMain(['node', 'build.mjs', '--production']), false);
});