@dolittle/sdk.protobuf
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
51 lines (45 loc) • 1.7 kB
text/typescript
// Copyright (c) Dolittle. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
import { Failure as PbFailure } from '@dolittle/contracts/Protobuf/Failure_pb';
import { Failure as SdkFailure } from './Failure';
import { MissingFailureIdentifier } from './MissingFailureIdentifier';
import * as Guids from './Guids';
/**
* Convert a failure to protobuf representation.
* @param {SdkFailure} input - The failure to convert.
* @returns {PbFailure} The converted failure.
*/
export function toProtobuf(input: SdkFailure): PbFailure {
const artifact = new PbFailure();
artifact.setId(Guids.toProtobuf(input.id.value));
artifact.setReason(input.reason.value);
return artifact;
}
/**
* Convert a failure to SDK representation.
* @param {PbFailure} input - The failure to convert.
* @returns {SdkFailure} The converted failure.
*/
export function toSDK(input: PbFailure): SdkFailure;
/**
* An overload to simplify usage of this function.
* @param {undefined} input - Undefined.
* @returns {undefined} Undefined.
*/
export function toSDK(input: undefined): undefined;
/**
* Convert a optional failure to SDK representation.
* @param {PbFailure?} [input] - The optional failure to convert.
* @returns {SdkFailure|undefined} The converted failure.
*/
export function toSDK(input?: PbFailure): SdkFailure | undefined;
export function toSDK(input?: PbFailure): SdkFailure | undefined {
if (!input) {
return undefined;
}
const uuid = input.getId();
if (!uuid) {
throw new MissingFailureIdentifier();
}
return SdkFailure.from(Guids.toSDK(uuid), input.getReason());
}