@aws-amplify/storage
Version:
Storage category of aws-amplify
36 lines (29 loc) • 906 B
text/typescript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { StorageAccessLevel } from '@aws-amplify/core';
import { assertValidationError } from '../errors/utils/assertValidationError';
import { StorageValidationErrorCode } from '../errors/types/validation';
interface ResolvePrefixOptions {
accessLevel: StorageAccessLevel;
targetIdentityId?: string;
}
export const resolvePrefix = ({
accessLevel,
targetIdentityId,
}: ResolvePrefixOptions) => {
if (accessLevel === 'private') {
assertValidationError(
!!targetIdentityId,
StorageValidationErrorCode.NoIdentityId,
);
return `private/${targetIdentityId}/`;
} else if (accessLevel === 'protected') {
assertValidationError(
!!targetIdentityId,
StorageValidationErrorCode.NoIdentityId,
);
return `protected/${targetIdentityId}/`;
} else {
return 'public/';
}
};