ToastServiceProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 27
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A registeringPackage() 0 7 1
A configurePackage() 0 5 1
A packageBooted() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Usernotnull\Toast;
6
7
use Illuminate\Support\Facades\Blade;
8
use Illuminate\Support\Facades\Route as RouteFacade;
9
use Livewire\Livewire;
10
use Spatie\LaravelPackageTools\Package;
11
use Spatie\LaravelPackageTools\PackageServiceProvider;
12
use Usernotnull\Toast\Controllers\JavaScriptAssets;
13
use Usernotnull\Toast\Http\Livewire\ToastComponent;
14
15
class ToastServiceProvider extends PackageServiceProvider
16
{
17
    /* More info: https://github.com/spatie/laravel-package-tools */
18
    public function configurePackage(Package $package): void
19
    {
20
        $package->name('tall-toasts')
21
            ->hasConfigFile()
22
            ->hasViews();
23
    }
24
25
    public function packageBooted(): void
26
    {
27
        RouteFacade::get('/toast/tall-toasts.js', [JavaScriptAssets::class, 'source']);
28
        RouteFacade::get('/toast/tall-toasts.js.map', [JavaScriptAssets::class, 'maps']);
29
30
        Blade::directive('toastScripts', [ToastBladeDirectives::class, 'toastScripts']);
31
32
        Livewire::component('toasts', ToastComponent::class);
33
    }
34
35
    public function registeringPackage(): void
36
    {
37
        $this->app->singleton(Toast::class);
38
        $this->app->alias(Toast::class, 'toast');
39
40
        $this->app->singleton(ToastManager::class);
41
        $this->app->alias(ToastManager::class, 'toast.manager');
42
    }
43
}
44