UNPKG

@itwin/object-storage-azure

Version:

Object storage implementation using Azure Blob Storage

37 lines 2.36 kB
"use strict"; 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