Files
NianAIGC/scripts/print-runtime-info.mjs
2026-05-29 10:26:02 +08:00

58 lines
1.7 KiB
JavaScript

import { readFileSync } from 'node:fs';
import { join, resolve } from 'node:path';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
const rootDir = resolve(dirname(fileURLToPath(import.meta.url)), '..');
const runtimeDir = join(rootDir, 'runtime', 'nianxx-play');
function readJson(relativePath) {
return JSON.parse(readFileSync(join(runtimeDir, relativePath), 'utf8'));
}
const manifest = readJson('bundle-manifest.json');
const pkg = readJson('package.json');
const paths = readJson('.next/server/app-paths-manifest.json');
const modes = readJson('content/seedance-starter/creation-modes.json');
const catalog = readJson('content/seedance-starter/catalog.json');
const planningCases = readJson('content/planning-cases.json');
const modeCounts = {};
for (const item of catalog.cases || []) {
modeCounts[item.mode] = (modeCounts[item.mode] || 0) + 1;
}
console.log(JSON.stringify({
project: 'Zhinian Creation Assistant',
packageName: 'zhinian-creation-assistant',
runtime: {
appId: manifest.appId,
name: manifest.name,
version: manifest.version,
bundledAt: manifest.bundledAt,
entry: manifest.entry,
sizeBytes: manifest.sizeBytes,
},
package: {
name: pkg.name,
version: pkg.version,
dependencies: pkg.dependencies,
},
routes: Object.keys(paths).sort(),
creationModes: modes.map((mode) => ({
id: mode.id,
name: mode.name,
editorType: mode.editorType,
assetSlots: mode.assetSlots,
})),
catalog: {
totalCases: (catalog.cases || []).length,
modeCounts,
},
planningCases: planningCases.map((item) => ({
id: item.id,
title: item.title,
orientation: item.orientation,
})),
}, null, 2));