Home Reference Source

src/loader/level-key.ts

  1. import { buildAbsoluteURL } from 'url-toolkit';
  2.  
  3. export default class LevelKey {
  4. private _uri: string | null = null;
  5. public method: string | null = null;
  6. public keyFormat: string | null = null;
  7. public keyFormatVersions: string | null = null;
  8. public keyID: string | null = null;
  9. public key: Uint8Array | null = null;
  10. public iv: Uint8Array | null = null;
  11.  
  12. static fromURL (baseUrl: string, relativeUrl: string): LevelKey {
  13. return new LevelKey(baseUrl, relativeUrl);
  14. }
  15.  
  16. static fromURI (uri: string): LevelKey {
  17. return new LevelKey(uri);
  18. }
  19.  
  20. private constructor (absoluteOrBaseURI: string, relativeURL?: string) {
  21. if (relativeURL) {
  22. this._uri = buildAbsoluteURL(absoluteOrBaseURI, relativeURL, { alwaysNormalize: true });
  23. } else {
  24. this._uri = absoluteOrBaseURI;
  25. }
  26. }
  27.  
  28. get uri () {
  29. return this._uri;
  30. }
  31. }