Source: lib/dependencies/all.js

  1. /*! @license
  2. * Shaka Player
  3. * Copyright 2016 Google LLC
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. goog.provide('shaka.dependencies');
  7. /**
  8. * @export
  9. */
  10. shaka.dependencies = class {
  11. /**
  12. * Registers a new dependency.
  13. *
  14. * @param {shaka.dependencies.Allowed} key which is used for retrieving a
  15. * dependency
  16. * @param {?} dep a dependency
  17. * @export
  18. */
  19. static add(key, dep) {
  20. if (!shaka.dependencies.Allowed[key]) {
  21. throw new Error(`${key} is not supported`);
  22. }
  23. shaka.dependencies.dependencies_.set(key, () => dep);
  24. }
  25. /**
  26. * Check if we have a dependency for the key.
  27. *
  28. * @param {shaka.dependencies.Allowed} key key
  29. * @return {boolean}
  30. * @export
  31. */
  32. static has(key) {
  33. return shaka.dependencies.dependencies_.has(key);
  34. }
  35. /** @return {?muxjs} */
  36. static muxjs() {
  37. return /** @type {?muxjs} */ (shaka.dependencies.dependencies_.get(
  38. shaka.dependencies.Allowed.muxjs)());
  39. }
  40. };
  41. /**
  42. * @export
  43. * @enum {string}
  44. */
  45. shaka.dependencies.Allowed = {
  46. muxjs: 'muxjs',
  47. };
  48. /**
  49. * Contains accessor functions to shared dependencies that could be used by
  50. * other components. The default accessors can be overridden.
  51. *
  52. * @private {!Map.<shaka.dependencies.Allowed, function():?>}
  53. */
  54. shaka.dependencies.dependencies_ = new Map([
  55. [shaka.dependencies.Allowed.muxjs, () => window.muxjs],
  56. ]);