@aws/aws-distro-opentelemetry-node-autoinstrumentation
Version:
This package provides Amazon Web Services distribution of the OpenTelemetry Node Instrumentation, which allows for auto-instrumentation of NodeJS applications.
40 lines • 1.7 kB
JavaScript
;
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
Object.defineProperty(exports, "__esModule", { value: true });
exports.RegionalResourceArnParser = void 0;
const utils_1 = require("./utils");
class RegionalResourceArnParser {
/** Parses ARN with formats:
* arn:partition:service:region:account-id:resource-type/resource-id or
* arn:partition:service:region:account-id:resource-type:resource-id
*/
static parseArn(arn) {
if (typeof arn !== 'string')
return undefined;
const parts = arn.split(':');
return parts.length >= 6 && parts[0] === 'arn' && (0, utils_1.isAccountId)(parts[4]) ? parts : undefined;
}
static getAccountId(arn) {
var _a;
return (_a = this.parseArn(arn)) === null || _a === void 0 ? void 0 : _a[4];
}
static getRegion(arn) {
var _a;
return (_a = this.parseArn(arn)) === null || _a === void 0 ? void 0 : _a[3];
}
static extractDynamoDbTableNameFromArn(arn) {
var _a;
return (_a = this.extractResourceNameFromArn(arn)) === null || _a === void 0 ? void 0 : _a.replace('table/', '');
}
static extractKinesisStreamNameFromArn(arn) {
var _a;
return (_a = this.extractResourceNameFromArn(arn)) === null || _a === void 0 ? void 0 : _a.replace('stream/', '');
}
static extractResourceNameFromArn(arn) {
const parts = this.parseArn(arn);
return parts === null || parts === void 0 ? void 0 : parts[parts.length - 1];
}
}
exports.RegionalResourceArnParser = RegionalResourceArnParser;
//# sourceMappingURL=regional-resource-arn-parser.js.map