You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php namespace Wpstudio\AssetsManifest\Classes\Bundlers;
use Wpstudio\AssetsManifest\Classes\AssetsManifestException; use Wpstudio\AssetsManifest\Classes\ManifestReader;
abstract class Bundler { const BUNDLER_WEBPACK_ENCORE = 'webpack-encore'; const BUNDLER_VITE = 'vite';
public static array $bundlers = [ self::BUNDLER_WEBPACK_ENCORE => WebpackEncoreBundler::class, self::BUNDLER_VITE => ViteBundler::class, ];
protected ?ManifestReader $manifestReader;
public function __construct(?ManifestReader $manifestReader = null) { if (isset($manifestReader)) { $this->manifestReader = $manifestReader; } }
public function getBundlerType(): string { return array_flip(self::$bundlers)[get_class($this)]; }
public function validateBundlerType(string $bundlerType) { if ($this->getBundlerType() != $bundlerType) { throw new AssetsManifestException( sprintf( 'Expected bundler type is %s, but actual %s', $bundlerType, $this->getBundlerType() ) ); } }
public function getEntrypoint(string $entrypointPathInManifest): array { return $this->manifestReader->get($entrypointPathInManifest); } }
|