Home Reference Source

src/loader/level-key.ts

  1. import { buildAbsoluteURL } from 'url-toolkit';
  2.  
  3. export 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, {
  23. alwaysNormalize: true,
  24. });
  25. } else {
  26. this._uri = absoluteOrBaseURI;
  27. }
  28. }
  29.  
  30. get uri() {
  31. return this._uri;
  32. }
  33. }