UNPKG

@soleil-se/build-app

Version:

Script for building WebApps, RESTApps, Widgets and MCP Servers with Svelte in Sitevision.

40 lines (35 loc) 1.23 kB
import fse from 'fs-extra'; import chalk from 'chalk'; import FormData from 'form-data'; import { logSuccess } from '@soleil-se/build-utils/log'; import handleError from './api/handleError.js'; import addonRequest from './api/addonRequest.js'; function getUploadUri(type, name) { switch (type.toLowerCase()) { case 'webapp': case 'widget': return `Addon%20Repository/${encodeURIComponent(name)}/webAppImport`; case 'restapp': return `Addon%20Repository/${encodeURIComponent(name)}/restAppImport`; case 'mcpserver': return `Addon%20Repository/${encodeURIComponent(name)}/mcpServerImport`; default: throw new Error('Unknown app type...'); } } export default async function uploadAddon({ src, manifest, force }) { try { if (!fse.existsSync(src)) { throw new Error(`Could not find ${src}`); } const form = new FormData(); form.append('file', fse.createReadStream(src)); await addonRequest(getUploadUri(manifest.type, manifest.name), { searchParams: { force }, body: form, }); logSuccess(`${manifest.type} ${chalk.white(`${manifest.name} (${manifest.id})`)} uploaded successfully!`); } catch (error) { handleError(error); } }