@gnsx/genesys.sdk 4.2.10 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,6 +13,17 @@ function getTscBinaryPath(projectFolder, logger) {
13
13
  logger.log('tsc not found in project node_modules, using pnpm exec');
14
14
  return 'pnpm exec tsc';
15
15
  }
16
+ function getTsxBinaryPath(projectFolder, logger) {
17
+ // Look in the project's node_modules for tsx
18
+ const projectBinaryPath = path.join(projectFolder, 'node_modules', '.bin', process.platform === 'win32' ? 'tsx.cmd' : 'tsx');
19
+ if (fs.existsSync(projectBinaryPath)) {
20
+ logger.log(`Found tsx binary at: ${projectBinaryPath}`);
21
+ return projectBinaryPath;
22
+ }
23
+ // Fallback to pnpm exec
24
+ logger.log('tsx not found in project node_modules, using pnpm exec');
25
+ return 'pnpm exec tsx';
26
+ }
16
27
  function getEsbuildBinaryPath(projectFolder, logger, isPackaged, resourcesPath) {
17
28
  // In packaged app, esbuild binary is in app.asar.unpacked
18
29
  if (isPackaged) {
@@ -354,6 +365,30 @@ export async function buildProject(projectPath, runTsc, logger, handler) {
354
365
  logger.log(`Stats: Dist folder removed in ${durationSec}s`);
355
366
  }
356
367
  fs.mkdirSync(distFolder, { recursive: true });
368
+ // Generate property metadata before type checking
369
+ {
370
+ const metadataScriptPath = path.join(projectFolder, 'node_modules', '@directivegames', 'genesys.js', 'scripts', 'generate-property-metadata.ts');
371
+ if (fs.existsSync(metadataScriptPath)) {
372
+ logger.log('Generating property metadata');
373
+ const beginTime = Date.now();
374
+ const tsxBinary = getTsxBinaryPath(projectFolder, logger);
375
+ const metadataCommand = tsxBinary.startsWith('pnpm')
376
+ ? `${tsxBinary} "${metadataScriptPath}" src/game-data.ts`
377
+ : `"${tsxBinary}" "${metadataScriptPath}" src/game-data.ts`;
378
+ logger.log(`Using tsx: ${tsxBinary}`);
379
+ const metadataResult = await runCommandAsync(metadataCommand, projectFolder, logger);
380
+ const durationSec = (Date.now() - beginTime) / 1000;
381
+ logger.log(`Stats: Property metadata generated in ${durationSec}s`);
382
+ if (metadataResult.error && metadataResult.error.code !== 0) {
383
+ const errorOutput = metadataResult.stdout || metadataResult.stderr || metadataResult.error.message;
384
+ await handler.ui.showErrorDialog('Property metadata generation failed', errorOutput);
385
+ throw new Error(`Property metadata generation failed: ${errorOutput}`);
386
+ }
387
+ }
388
+ else {
389
+ logger.verbose(`Property metadata script not found at ${metadataScriptPath}, skipping`);
390
+ }
391
+ }
357
392
  if (runTsc) {
358
393
  logger.log('Running TypeScript type checking');
359
394
  const beginTime = Date.now();
@@ -20,7 +20,8 @@ export const projectFiles = {
20
20
  name: '',
21
21
  version: '0.0.1',
22
22
  scripts: {
23
- 'build': 'tsc',
23
+ 'build': 'pnpm run generate-property-metadata && tsc',
24
+ 'generate-property-metadata': 'pnpm exec tsx node_modules/@gnsx/genesys.js/scripts/generate-property-metadata.ts src/game-data.ts',
24
25
  'build-project': 'pnpm exec tsx ./scripts/genesys/build-project.ts',
25
26
  'postinstall': 'pnpm exec tsx ./scripts/genesys/post-install.ts',
26
27
  'lint': 'eslint . --fix --ext .ts,.tsx',
@@ -9,10 +9,10 @@
9
9
  * Includes dependencies from the main package.
10
10
  */
11
11
  export const DEPENDENCIES = {
12
- '@gnsx/genesys.js': '4.2.11',
13
12
  '@electron/rebuild': '4.0.2',
14
13
  '@emotion/react': '11.14.0',
15
14
  '@emotion/styled': '11.14.1',
15
+ '@gnsx/genesys.js': '4.2.15',
16
16
  '@mui/icons-material': '7.3.5',
17
17
  '@mui/lab': '7.0.0',
18
18
  '@mui/material': '7.3.5',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gnsx/genesys.sdk",
3
- "version": "4.2.10",
3
+ "version": "4.3.0",
4
4
  "description": "Genesys SDK - A development toolkit for game development",
5
5
  "author": "Directive Games",
6
6
  "main": "index.js",
@@ -109,10 +109,10 @@
109
109
  }
110
110
  },
111
111
  "dependencies": {
112
- "@gnsx/genesys.js": "^4.2.11",
113
112
  "@electron/rebuild": "^4.0.2",
114
113
  "@emotion/react": "^11.14.0",
115
114
  "@emotion/styled": "^11.14.0",
115
+ "@gnsx/genesys.js": "^4.2.15",
116
116
  "@mui/icons-material": "^7.1.0",
117
117
  "@mui/lab": "^7.0.0-beta.12",
118
118
  "@mui/material": "^7.1.0",