@itwin/object-storage-azure
Version:
Object storage implementation using Azure Blob Storage
37 lines • 2.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AzureServerStorageBindings = void 0;
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
const storage_blob_1 = require("@azure/storage-blob");
const internal_1 = require("@itwin/cloud-agnostic-core/lib/internal");
const object_storage_core_1 = require("@itwin/object-storage-core");
const common_1 = require("../common");
const AzureServerStorage_1 = require("./AzureServerStorage");
const BlobServiceClientWrapper_1 = require("./wrappers/BlobServiceClientWrapper");
class AzureServerStorageBindings extends object_storage_core_1.ServerStorageDependency {
dependencyName = common_1.Constants.storageType;
register(container, config) {
if (!config.accountName)
throw new internal_1.ConfigError("accountName");
if (!config.accountKey)
throw new internal_1.ConfigError("accountKey");
if (!config.baseUrl)
throw new internal_1.ConfigError("baseUrl");
container.registerInstance(common_1.Types.AzureServer.config, config);
container.registerFactory(object_storage_core_1.Types.Server.serverStorage, (c) => {
return new AzureServerStorage_1.AzureServerStorage(c.resolve(common_1.Types.AzureServer.config), c.resolve(BlobServiceClientWrapper_1.BlobServiceClientWrapper));
});
container.registerFactory(BlobServiceClientWrapper_1.BlobServiceClientWrapper, (c) => {
return new BlobServiceClientWrapper_1.BlobServiceClientWrapper(c.resolve(storage_blob_1.BlobServiceClient));
});
container.registerFactory(storage_blob_1.BlobServiceClient, (c) => {
const resolvedConfig = c.resolve(common_1.Types.AzureServer.config);
return new storage_blob_1.BlobServiceClient(resolvedConfig.baseUrl, new storage_blob_1.StorageSharedKeyCredential(resolvedConfig.accountName, resolvedConfig.accountKey));
});
}
}
exports.AzureServerStorageBindings = AzureServerStorageBindings;
//# sourceMappingURL=AzureServerStorageBindings.js.map