From 9caf6ace7c7fd8582080c8707fb89ff57b773fd4 Mon Sep 17 00:00:00 2001 From: Sebastian Rettig Date: Tue, 12 May 2020 17:51:19 +0200 Subject: [PATCH] fix(player): missing libraries omitted when listing libraries (closes #501) (#504) * fix(player): missing ones omitted when listing libraries (closes #501) --- src/DependencyGetter.ts | 11 +++++++++-- src/H5PPlayer.ts | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/DependencyGetter.ts b/src/DependencyGetter.ts index 0fd0523a8..74ee1bb68 100644 --- a/src/DependencyGetter.ts +++ b/src/DependencyGetter.ts @@ -73,9 +73,16 @@ export default class DependencyGetter { if (libraries.has(LibraryName.toUberName(library))) { return null; } + let metadata; + try { + metadata = await this.libraryStorage.getLibrary(library); + } catch { + // We silently ignore missing libraries, as this can happen with + // 'fake libraries' used by the H5P client (= libraries which are + // referenced in the parameters, but don't exist) + return libraries; + } libraries.add(LibraryName.toUberName(library)); - - const metadata = await this.libraryStorage.getLibrary(library); if (preloaded && metadata.preloadedDependencies) { await this.addDependenciesToSet( metadata.preloadedDependencies, diff --git a/src/H5PPlayer.ts b/src/H5PPlayer.ts index 122cbf78d..72b3e72bf 100644 --- a/src/H5PPlayer.ts +++ b/src/H5PPlayer.ts @@ -221,8 +221,14 @@ export default class H5PPlayer { if (key in loaded) { return; } - - const lib = await this.getLibrary(name, majVer, minVer); + let lib; + try { + lib = await this.getLibrary(name, majVer, minVer); + } catch { + log.info( + `Could not find library ${name}-${majVer}.${minVer} in storage. Silently ignoring...` + ); + } if (lib) { loaded[key] = lib; await this.getLibraries(