1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-07-30 04:23:11 +03:00

Improved Exception handling, Removed npm requirement for testing

This commit is contained in:
Dan Brown
2016-09-03 12:08:58 +01:00
parent 0dbb8babee
commit ec17bd8608
7 changed files with 50 additions and 30 deletions

View File

@ -7,25 +7,32 @@ use BookStack\Ownable;
*
* @param string $file
* @return string
*
* @throws \InvalidArgumentException
* @throws Exception
*/
function versioned_asset($file)
function versioned_asset($file = '')
{
static $manifest = null;
// Don't require css and JS assets for testing
if (config('app.env') === 'testing') return '';
if (is_null($manifest)) {
$manifest = json_decode(file_get_contents(public_path('build/manifest.json')), true);
static $manifest = null;
$manifestPath = 'build/manifest.json';
if (is_null($manifest) && file_exists($manifestPath)) {
$manifest = json_decode(file_get_contents(public_path($manifestPath)), true);
} else if (!file_exists($manifestPath)) {
if (config('app.env') !== 'production') {
$path = public_path($manifestPath);
$error = "No {$path} file found, Ensure you have built the css/js assets using gulp.";
} else {
$error = "No {$manifestPath} file found, Ensure you are using the release version of BookStack";
}
throw new \Exception($error);
}
if (isset($manifest[$file])) {
return baseUrl($manifest[$file]);
}
if (file_exists(public_path($file))) {
return baseUrl($file);
}
throw new InvalidArgumentException("File {$file} not defined in asset manifest.");
}