diff --git a/frontends/nextjs/src/lib/nerd-mode-ide/build-package-manifest-json.ts b/frontends/nextjs/src/lib/nerd-mode-ide/build-package-manifest-json.ts new file mode 100644 index 000000000..f11537e42 --- /dev/null +++ b/frontends/nextjs/src/lib/nerd-mode-ide/build-package-manifest-json.ts @@ -0,0 +1,13 @@ +import type { PackageTemplateConfig } from './types' + +export function buildPackageManifestJson(config: PackageTemplateConfig): string { + const manifest = { + scripts: config.luaScripts.map((script) => ({ + file: script.fileName, + name: script.fileName.replace(/\.lua$/, ''), + category: 'package', + description: script.description, + })), + } + return JSON.stringify(manifest, null, 2) +} diff --git a/frontends/nextjs/src/lib/nerd-mode-ide/build-package-metadata-json.ts b/frontends/nextjs/src/lib/nerd-mode-ide/build-package-metadata-json.ts new file mode 100644 index 000000000..0aa45a2dd --- /dev/null +++ b/frontends/nextjs/src/lib/nerd-mode-ide/build-package-metadata-json.ts @@ -0,0 +1,22 @@ +import type { PackageTemplateConfig } from './types' + +export function buildPackageMetadataJson(config: PackageTemplateConfig): string { + const componentIds = config.components + .map((component) => component.id) + .filter((id): id is string => typeof id === 'string') + + const metadata = { + packageId: config.packageId, + name: config.name, + version: config.version, + description: config.summary, + author: config.author, + category: config.category, + dependencies: [], + exports: { + components: componentIds, + }, + } + + return JSON.stringify(metadata, null, 2) +}