Home Reference Source

src/loader/level-key.ts

import { buildAbsoluteURL } from 'url-toolkit';

export default class LevelKey {
  private _uri: string | null = null;
  public method: string | null = null;
  public keyFormat: string | null = null;
  public keyFormatVersions: string | null = null;
  public keyID: string | null = null;
  public key: Uint8Array | null = null;
  public iv: Uint8Array | null = null;

  static fromURL (baseUrl: string, relativeUrl: string): LevelKey {
    return new LevelKey(baseUrl, relativeUrl);
  }

  static fromURI (uri: string): LevelKey {
    return new LevelKey(uri);
  }

  private constructor (absoluteOrBaseURI: string, relativeURL?: string) {
    if (relativeURL) {
      this._uri = buildAbsoluteURL(absoluteOrBaseURI, relativeURL, { alwaysNormalize: true });
    } else {
      this._uri = absoluteOrBaseURI;
    }
  }

  get uri () {
    return this._uri;
  }
}