@soleil-se/build-app
Version:
Script for building WebApps, RESTApps and Widgets with Svelte in Sitevision.
41 lines (33 loc) • 1.18 kB
JavaScript
import chalk from 'chalk';
import { logSuccess } from '@soleil-se/build-utils/log';
import { readManifest } from '../manifest.js';
import addonRequest from './api/addonRequest.js';
import handleError from './api/handleError.js';
function getPropertiesUri(type, id, version) {
switch (type.toLowerCase()) {
case 'webapp':
case 'widget':
return `WebApp%20Repository/${id}-${version}/properties`;
case 'restapp':
return `RestApp%20Repository/${id}-${version}/properties`;
default:
throw new Error('Unknown app type...');
}
}
export default async function activateAddon(name) {
try {
const { id, version, type } = await readManifest();
const { 'jcr:uuid': customModuleExecutableId } = await addonRequest({
url: getPropertiesUri(type, id, version),
method: 'GET',
});
await addonRequest({
url: `Addon%20Repository/${encodeURIComponent(name)}/activatecustommoduleexecutable`,
method: 'PUT',
searchParams: { customModuleExecutableId },
});
logSuccess(`${type} ${chalk.white(`${name} (${id}@${version})`)} activated successfully!`);
} catch (error) {
handleError(error);
}
}