resolve method

String resolve(
  1. String value
)

Normalizes an application-relative object key.

The returned key does not include prefix.

Implementation

String resolve(String value) {
  if (value.isEmpty) return '';
  if (path.posix.isAbsolute(value)) {
    throw ArgumentError.value(value, 'path', 'R2 keys must be relative.');
  }
  final normalized = path.posix.normalize(value);
  if (normalized == '.') return '';
  if (normalized == '..' || normalized.startsWith('../')) {
    throw ArgumentError.value(
      value,
      'path',
      'R2 key escapes the configured storage prefix.',
    );
  }
  return normalized;
}