nestjs-azure-storage-blob
Version:
Azure Blob Storage module for Nest.js
79 lines • 3.36 kB
JavaScript
;
var AzureStorageBlobModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.AzureStorageBlobModule = void 0;
const tslib_1 = require("tslib");
const storage_blob_1 = require("@azure/storage-blob");
const common_1 = require("@nestjs/common");
const azure_storage_blob_constants_1 = require("./azure-storage-blob.constants");
const azure_storage_blob_service_1 = require("./azure-storage-blob.service");
let AzureStorageBlobModule = AzureStorageBlobModule_1 = class AzureStorageBlobModule {
static register(options, extras) {
return {
module: AzureStorageBlobModule_1,
providers: [
{
provide: azure_storage_blob_constants_1.MODULE_CLIENT_TOKEN,
useValue: this.createClient(options),
scope: extras?.scope,
},
],
global: extras?.global,
};
}
static registerAsync(options, extras) {
const provider = {
provide: azure_storage_blob_constants_1.MODULE_CLIENT_TOKEN,
useFactory: (options) => this.createClient(options),
inject: [azure_storage_blob_constants_1.MODULE_OPTIONS_TOKEN],
scope: extras?.scope,
};
return {
imports: options.imports,
module: AzureStorageBlobModule_1,
providers: [...this.createAsyncProviders(options), provider],
global: extras?.global,
};
}
static createAsyncProviders(optionsAsync) {
if (optionsAsync.useExisting || optionsAsync.useFactory) {
return [this.createAsyncOptionsProvider(optionsAsync)];
}
if (optionsAsync.useClass) {
return [
{ provide: optionsAsync.useClass, useClass: optionsAsync.useClass },
this.createAsyncOptionsProvider(optionsAsync),
];
}
throw new Error('One of useClass, useFactory or useExisting should be provided');
}
static createAsyncOptionsProvider(options) {
if (options.useFactory) {
return {
provide: azure_storage_blob_constants_1.MODULE_OPTIONS_TOKEN,
useFactory: options.useFactory,
inject: options.inject,
};
}
return {
provide: azure_storage_blob_constants_1.MODULE_OPTIONS_TOKEN,
useFactory: (optionsFactory) => optionsFactory.createModuleOptions(),
inject: [(options.useClass ?? options.useExisting)],
};
}
static createClient(options) {
if (!options.connection) {
throw new Error(`Environment variable is required: "${azure_storage_blob_constants_1.MODULE_CONNECTION_VARIABLE_TOKEN}"`);
}
return storage_blob_1.BlobServiceClient.fromConnectionString(options.connection, options.storageOptions);
}
};
exports.AzureStorageBlobModule = AzureStorageBlobModule;
exports.AzureStorageBlobModule = AzureStorageBlobModule = AzureStorageBlobModule_1 = tslib_1.__decorate([
(0, common_1.Global)(),
(0, common_1.Module)({
providers: [azure_storage_blob_service_1.AzureStorageBlobService],
exports: [azure_storage_blob_service_1.AzureStorageBlobService],
})
], AzureStorageBlobModule);
//# sourceMappingURL=azure-storage-blob.module.js.map