@azure/functions
Version:
Microsoft Azure Functions NodeJS Framework
44 lines (39 loc) • 1.65 kB
text/typescript
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License.
import { Exception, RetryContext, TraceContext } from '@azure/functions';
import { RpcException, RpcRetryContext, RpcTraceContext } from '@azure/functions-core';
import { copyPropIfDefined, nonNullProp } from '../utils/nonNull';
export function fromRpcRetryContext(retryContext: RpcRetryContext | null | undefined): RetryContext | undefined {
if (!retryContext) {
return undefined;
} else {
const result: RetryContext = {
retryCount: nonNullProp(retryContext, 'retryCount'),
maxRetryCount: nonNullProp(retryContext, 'maxRetryCount'),
};
if (retryContext.exception) {
result.exception = fromRpcException(retryContext.exception);
}
return result;
}
}
function fromRpcException(exception: RpcException): Exception {
const result: Exception = {};
copyPropIfDefined(exception, result, 'message');
copyPropIfDefined(exception, result, 'source');
copyPropIfDefined(exception, result, 'stackTrace');
return result;
}
export function fromRpcTraceContext(traceContext: RpcTraceContext | null | undefined): TraceContext | undefined {
if (!traceContext) {
return undefined;
} else {
const result: TraceContext = {};
copyPropIfDefined(traceContext, result, 'traceParent');
copyPropIfDefined(traceContext, result, 'traceState');
if (traceContext.attributes) {
result.attributes = traceContext.attributes;
}
return result;
}
}