UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

51 lines (41 loc) 1.75 kB
/* * 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';