Elgg  Version master
ESMService.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Elgg\Javascript;
4 
7 
14 class ESMService {
15 
16  protected array $imports = [];
17 
18  protected array $runtime_modules = [];
19 
26  public function __construct(
27  protected ViewsService $views,
28  protected SimpleCache $cache
29  ) {
30  }
31 
37  public function getImportMapData(): array {
38  $modules = $this->views->getESModules();
39  $imports = [];
40  if (!empty($modules)) {
41  foreach ($modules as $name) {
42  $short_name = str_replace('.mjs', '', $name);
43  $imports[$short_name] = $this->cache->getUrl($name);
44  }
45  }
46 
47  $imports = array_merge($imports, $this->runtime_modules);
48 
49  return ['imports' => $imports];
50  }
51 
60  public function register(string $name, string $href): void {
61  $this->runtime_modules[$name] = $href;
62  }
63 
71  public function import(string $name): void {
72  $this->imports[$name] = true;
73  }
74 
80  public function getImports(): array {
81  return array_keys($this->imports);
82  }
83 }
if(! $user||! $user->canDelete()) $name
Definition: delete.php:22
return[ 'admin/delete_admin_notices'=>['access'=> 'admin'], 'admin/menu/save'=>['access'=> 'admin'], 'admin/plugins/activate'=>['access'=> 'admin'], 'admin/plugins/activate_all'=>['access'=> 'admin'], 'admin/plugins/deactivate'=>['access'=> 'admin'], 'admin/plugins/deactivate_all'=>['access'=> 'admin'], 'admin/plugins/set_priority'=>['access'=> 'admin'], 'admin/security/security_txt'=>['access'=> 'admin'], 'admin/security/settings'=>['access'=> 'admin'], 'admin/security/regenerate_site_secret'=>['access'=> 'admin'], 'admin/site/cache/invalidate'=>['access'=> 'admin'], 'admin/site/flush_cache'=>['access'=> 'admin'], 'admin/site/icons'=>['access'=> 'admin'], 'admin/site/set_maintenance_mode'=>['access'=> 'admin'], 'admin/site/set_robots'=>['access'=> 'admin'], 'admin/site/theme'=>['access'=> 'admin'], 'admin/site/unlock_upgrade'=>['access'=> 'admin'], 'admin/site/settings'=>['access'=> 'admin'], 'admin/upgrade'=>['access'=> 'admin'], 'admin/upgrade/reset'=>['access'=> 'admin'], 'admin/user/ban'=>['access'=> 'admin'], 'admin/user/bulk/ban'=>['access'=> 'admin'], 'admin/user/bulk/delete'=>['access'=> 'admin'], 'admin/user/bulk/unban'=>['access'=> 'admin'], 'admin/user/bulk/validate'=>['access'=> 'admin'], 'admin/user/change_email'=>['access'=> 'admin'], 'admin/user/delete'=>['access'=> 'admin'], 'admin/user/login_as'=>['access'=> 'admin'], 'admin/user/logout_as'=>[], 'admin/user/makeadmin'=>['access'=> 'admin'], 'admin/user/resetpassword'=>['access'=> 'admin'], 'admin/user/removeadmin'=>['access'=> 'admin'], 'admin/user/unban'=>['access'=> 'admin'], 'admin/user/validate'=>['access'=> 'admin'], 'annotation/delete'=>[], 'avatar/upload'=>[], 'comment/save'=>[], 'diagnostics/download'=>['access'=> 'admin'], 'entity/chooserestoredestination'=>[], 'entity/delete'=>[], 'entity/mute'=>[], 'entity/restore'=>[], 'entity/subscribe'=>[], 'entity/trash'=>[], 'entity/unmute'=>[], 'entity/unsubscribe'=>[], 'login'=>['access'=> 'logged_out'], 'logout'=>[], 'notifications/mute'=>['access'=> 'public'], 'plugins/settings/remove'=>['access'=> 'admin'], 'plugins/settings/save'=>['access'=> 'admin'], 'plugins/usersettings/save'=>[], 'register'=>['access'=> 'logged_out', 'middleware'=>[\Elgg\Router\Middleware\RegistrationAllowedGatekeeper::class,],], 'river/delete'=>[], 'settings/notifications'=>[], 'settings/notifications/subscriptions'=>[], 'user/changepassword'=>['access'=> 'public'], 'user/requestnewpassword'=>['access'=> 'public'], 'useradd'=>['access'=> 'admin'], 'usersettings/save'=>[], 'widgets/add'=>[], 'widgets/delete'=>[], 'widgets/move'=>[], 'widgets/save'=>[],]
Definition: actions.php:73
Simple cache service.
Definition: SimpleCache.php:15
Keeps track of ES modules.
Definition: ESMService.php:14
getImports()
Returns all modules that requested to be loaded.
Definition: ESMService.php:80
__construct(protected ViewsService $views, protected SimpleCache $cache)
Constructor.
Definition: ESMService.php:26
getImportMapData()
Returns the importmap data.
Definition: ESMService.php:37
Views service.
$views
Definition: item.php:17
if($item->getLinkClass()) $href
Definition: submit.php:22