public static parse()

in src/common/authentication/AccountSASPermissions.ts [37:126]


  public static parse(permissions: string): AccountSASPermissions {
    const accountSASPermissions = new AccountSASPermissions();

    for (const c of permissions) {
      switch (c) {
        case AccountSASPermission.Read:
          if (accountSASPermissions.read) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.read = true;
          break;
        case AccountSASPermission.Write:
          if (accountSASPermissions.write) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.write = true;
          break;
        case AccountSASPermission.Delete:
          if (accountSASPermissions.delete) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.delete = true;
          break;
        case AccountSASPermission.DeleteVersion:
          if (accountSASPermissions.deleteVersion) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.deleteVersion = true;
          break;
        case AccountSASPermission.List:
          if (accountSASPermissions.list) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.list = true;
          break;
        case AccountSASPermission.Add:
          if (accountSASPermissions.add) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.add = true;
          break;
        case AccountSASPermission.Create:
          if (accountSASPermissions.create) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.create = true;
          break;
        case AccountSASPermission.Update:
          if (accountSASPermissions.update) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.update = true;
          break;
        case AccountSASPermission.Process:
          if (accountSASPermissions.process) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.process = true;
          break;
        case AccountSASPermission.Tag:
          if (accountSASPermissions.tag) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.tag = true;
          break;
        case AccountSASPermission.Filter:
          if (accountSASPermissions.filter) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.filter = true;
          break;
        case AccountSASPermission.SetImmutabilityPolicy:
          if (accountSASPermissions.setImmutabilityPolicy) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.setImmutabilityPolicy = true;
          break;
        case AccountSASPermission.PermanentDelete:
          if (accountSASPermissions.permanentDelete) {
            throw new RangeError(`Duplicated permission character: ${c}`);
          }
          accountSASPermissions.permanentDelete = true;
          break;
        default:
          throw new RangeError(`Invalid permission character: ${c}`);
      }
    }

    return accountSASPermissions;
  }