@itwin/object-storage-google
Version:
Object storage implementation using Google Cloud Storage
43 lines • 2.58 kB
JavaScript
;
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.GoogleServerStorageBindings = void 0;
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 wrappers_1 = require("../server/wrappers");
const GoogleServerStorage_1 = require("./GoogleServerStorage");
const StorageControlClientWrapper_1 = require("./wrappers/StorageControlClientWrapper");
class GoogleServerStorageBindings extends object_storage_core_1.ServerStorageDependency {
dependencyName = common_1.Constants.storageType;
register(container, config) {
if (!config.projectId)
throw new internal_1.ConfigError("projectId");
if (!config.bucketName)
throw new internal_1.ConfigError("bucketName");
container.registerInstance(common_1.Types.GoogleServer.config, config);
container.registerFactory(wrappers_1.StorageWrapperFactory, () => {
return new wrappers_1.StorageWrapperFactory();
});
container.registerFactory(wrappers_1.StorageWrapper, (c) => {
const factory = c.resolve(wrappers_1.StorageWrapperFactory);
const config = c.resolve(common_1.Types.GoogleServer.config);
return factory.createDefaultApplication(config);
});
container.registerFactory(StorageControlClientWrapper_1.StorageControlClientWrapper, (c) => {
const config = c.resolve(common_1.Types.GoogleServer.config);
return new StorageControlClientWrapper_1.StorageControlClientWrapper(config);
});
container.registerFactory(object_storage_core_1.Types.Server.serverStorage, (c) => {
const config = c.resolve(common_1.Types.GoogleServer.config);
const storage = c.resolve(wrappers_1.StorageWrapper);
const storageControl = c.resolve(StorageControlClientWrapper_1.StorageControlClientWrapper);
return new GoogleServerStorage_1.GoogleServerStorage(storage, storageControl, config);
});
}
}
exports.GoogleServerStorageBindings = GoogleServerStorageBindings;
//# sourceMappingURL=GoogleServerStorageBindings.js.map