@aws-amplify/storage
Version:
Storage category of aws-amplify
51 lines (41 loc) • 1.75 kB
text/typescript
/*
* Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0/
*
* or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
import StorageClass from './Storage';
import { StorageProvider } from './types';
import Amplify, { ConsoleLogger as Logger } from '@aws-amplify/core';
const logger = new Logger('Storage');
let _instance: StorageClass = null;
if (!_instance) {
logger.debug('Create Storage Instance');
_instance = new StorageClass();
_instance.vault = new StorageClass();
const old_configure = _instance.configure;
_instance.configure = (options) => {
logger.debug('storage configure called');
const vaultConfig = {...old_configure.call(_instance, options)};
// set level private for each provider for the vault
Object.keys(vaultConfig).forEach((providerName) => {
if (typeof vaultConfig[providerName] !== 'string') {
vaultConfig[providerName] = { ...vaultConfig[providerName], level: "private" };
}
});
logger.debug('storage vault configure called');
_instance.vault.configure(vaultConfig);
};
}
const Storage = _instance;
Amplify.register(Storage);
export default Storage;
export { StorageClass };
export { StorageProvider };
export * from './Providers';