mirror of
https://github.com/pelican-dev/panel.git
synced 2025-11-08 10:39:27 +01:00
change composer_packages to json to allow version constraints
This commit is contained in:
parent
3c6ec63381
commit
4f00603c59
@ -119,7 +119,7 @@ class Plugin extends Model implements HasPluginSettings
|
||||
$composerPackages = null;
|
||||
if (array_key_exists('composer_packages', $data)) {
|
||||
$composerPackages = $data['composer_packages'];
|
||||
$composerPackages = is_array($composerPackages) ? implode(',', $composerPackages) : $composerPackages;
|
||||
$composerPackages = is_array($composerPackages) ? json_encode($composerPackages, JSON_THROW_ON_ERROR) : $composerPackages;
|
||||
}
|
||||
|
||||
$data = [
|
||||
|
||||
@ -162,7 +162,13 @@ class PluginService
|
||||
public function requireComposerPackages(Plugin $plugin): void
|
||||
{
|
||||
if ($plugin->composer_packages) {
|
||||
$success = $this->composer->requirePackages(explode(',', $plugin->composer_packages));
|
||||
$composerPackages = collect(json_decode($plugin->composer_packages, true, 512, JSON_THROW_ON_ERROR))
|
||||
->map(fn ($version, $package) => "'$package:$version'")
|
||||
->flatten()
|
||||
->unique()
|
||||
->toArray();
|
||||
|
||||
$success = $this->composer->requirePackages($composerPackages);
|
||||
|
||||
if (!$success) {
|
||||
throw new Exception("Could not require composer packages for plugin '{$plugin->id}'");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user