summaryrefslogtreecommitdiff
path: root/src/Assets.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/Assets.php')
-rw-r--r--src/Assets.php37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/Assets.php b/src/Assets.php
index 78cbe59..a431ffb 100644
--- a/src/Assets.php
+++ b/src/Assets.php
@@ -4,19 +4,54 @@ namespace Lightscale\LaralightAssets;
class Assets
{
- private string $manifestParser;
+ private string $defaultManifest;
private array $manifests = [];
private array $manifestsParsers = [];
private array $files = [];
private array $queuedHeadFiles = [];
private array $queuedFooterFiles = [];
+ public function addManifest(
+ string $name,
+ Manifest $manifest,
+ bool $isDefault = false
+ ): void
+ {
+ $this->manifests[$name] = $manifest;
+
+ if ($isDefault) {
+ $this->defaultManifest = $name;
+ }
+ }
+
public function registerManifest(
string $name,
string $path,
string $baseUrl,
+ string $parserClass = JsonManifestParser::class,
+ bool $isDefault = false,
): void
{
+ $this->addManifest(
+ $name,
+ new Manifest($path, $baseUrl, $parserClass),
+ $isDefault
+ );
+ }
+ public function getManifests(): array
+ {
+ return $this->manifests;
}
+
+ public function getManifest(string $name): Manifest
+ {
+ return $this->getManifests()[$name];
+ }
+
+ public function getDefaultManifest(): Manifest
+ {
+ return $this->getManifest($this->defaultManifest);
+ }
+
}