Skip to content

Commit

Permalink
include a cache resolver
Browse files Browse the repository at this point in the history
  • Loading branch information
tormjens committed Feb 22, 2021
1 parent 4a87e64 commit ec31ac0
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
4 changes: 4 additions & 0 deletions config/mix.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
'home' => base_path(),
'vendor_dir' => env('MIX_VENDOR_DIR', 'vendor'),
'use_manifest' => env('MIX_USE_MANIFEST', true),
'cache' => [
'enabled' => env('MIX_CACHE_ENABLED', true),
'key' => env('MIX_CACHE_KEY', basename(base_path())),
],
'driver' => [
'cdn' => [
'include_vendor' => env('MIX_CDN_INCLUDE_VENDOR', false),
Expand Down
2 changes: 2 additions & 0 deletions src/Mix.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

use Illuminate\Pipeline\Pipeline;
use Illuminate\Support\HtmlString;
use TorMorten\Mix\Resolvers\ResolveCache;
use TorMorten\Mix\Resolvers\ResolveCdn;
use TorMorten\Mix\Resolvers\ResolveHmr;
use TorMorten\Mix\Resolvers\ResolveLocal;
Expand All @@ -29,6 +30,7 @@ public function handle($filename, $package, $forceLocal = false)
$pipes = [
ResolveHmr::class,
ResolveLocal::class,
ResolveCache::class,
ResolveCdn::class,
];

Expand Down
33 changes: 33 additions & 0 deletions src/Resolvers/ResolveCache.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?php

namespace TorMorten\Mix\Resolvers;

use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\Request;
use TorMorten\Mix\Mix;
use TorMorten\Mix\Support\Packages;

class ResolveCache
{
public function handle(array $params, \Closure $next)
{
if (config('mix.cache.enabled', true)) {
if (Cache::has($this->cacheKey($params['package']))) {
return Cache::get($this->cacheKey($params['package']));
}
}
return $next($params);
}

public function cacheKey($package)
{
return join(':', [
'mix',
config('mix.cache.key'),
md5($package)
]);
}

}
6 changes: 5 additions & 1 deletion src/Resolvers/ResolveCdn.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ public function handle(array $params, \Closure $next)
if (Config::get('mix.driver.cdn.url')) {
$packages = $this->getInstalledPackages();
if (($packages = $packages->where('name', $params['package']))->isNotEmpty()) {
return $this->getMixUrl(app()->environment('local', 'testing') ? 'develop' : $packages->first()['version']);
$url = $this->getMixUrl(app()->environment('local', 'testing') ? 'develop' : $packages->first()['version']);
if (config('mix.cache.enabled', true)) {
Cache::put(resolve(ResolveCache::class)->cacheKey($params['package']), $url);
}
return $url;
}
}

Expand Down

0 comments on commit ec31ac0

Please sign in to comment.