UNPKG

@azure/service-bus

Version:
42 lines 2.01 kB
// Copyright (c) Microsoft Corporation. // Licensed under the MIT license. import { parseConnectionString } from "@azure/core-amqp"; /** * Parses given connection string into the different properties applicable to Azure Service Bus. * The properties are useful to then construct a ServiceBusClient. * @param connectionString - The connection string associated with the Shared Access Policy created * for the Service Bus namespace, queue or topic. */ export function parseServiceBusConnectionString(connectionString) { const parsedResult = parseConnectionString(connectionString); if (!parsedResult.Endpoint) { throw new Error("Connection string should have an Endpoint key."); } if (parsedResult.SharedAccessSignature) { if (parsedResult.SharedAccessKey || parsedResult.SharedAccessKeyName) { throw new Error("Connection string cannot have both SharedAccessSignature and SharedAccessKey keys."); } } else if (parsedResult.SharedAccessKey && !parsedResult.SharedAccessKeyName) { throw new Error("Connection string with SharedAccessKey should have SharedAccessKeyName."); } else if (!parsedResult.SharedAccessKey && parsedResult.SharedAccessKeyName) { throw new Error("Connection string with SharedAccessKeyName should have SharedAccessKey as well."); } const output = { fullyQualifiedNamespace: (parsedResult.Endpoint.match(".*://([^/]*)") || [])[1], endpoint: parsedResult.Endpoint, }; if (parsedResult.EntityPath) { output.entityPath = parsedResult.EntityPath; } if (parsedResult.SharedAccessSignature) { output.sharedAccessSignature = parsedResult.SharedAccessSignature; } if (parsedResult.SharedAccessKey && parsedResult.SharedAccessKeyName) { output.sharedAccessKey = parsedResult.SharedAccessKey; output.sharedAccessKeyName = parsedResult.SharedAccessKeyName; } return output; } //# sourceMappingURL=connectionStringUtils.js.map