From 3224df7af26922c852deb3a661c3d2bce10e7bcf Mon Sep 17 00:00:00 2001 From: Shun Kakinoki Date: Mon, 20 Oct 2025 16:21:42 +0900 Subject: [PATCH] feat(relayer): improve relayer exports with cleaner API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Relayer namespace with cleaner type names (Status vs OperationStatus) - Re-export RpcRelayer as Relayer.RpcRelayer for better organization - Maintain backward compatibility with existing exports - DevX improvement: Relayer.Status vs RelayerOperationStatus 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- packages/services/relayer/src/index.ts | 35 ++++++++++++++++++++++-- packages/services/relayer/src/relayer.ts | 19 +++++++++++++ 2 files changed, 52 insertions(+), 2 deletions(-) diff --git a/packages/services/relayer/src/index.ts b/packages/services/relayer/src/index.ts index 1ff39166f..d5d4b907f 100644 --- a/packages/services/relayer/src/index.ts +++ b/packages/services/relayer/src/index.ts @@ -1,5 +1,36 @@ -export * as RpcRelayer from './rpc-relayer/index.js' -export * as Relayer from './relayer.js' +// Direct exports for convenience +export { RpcRelayer } from './rpc-relayer/index.js' +export { isRelayer } from './relayer.js' +export { ETHTxnStatus, FeeTokenType } from './rpc-relayer/relayer.gen.js' + +// Type exports +export type { + Relayer as RelayerInterface, + FeeOption, + FeeQuote, + OperationStatus, + OperationUnknownStatus, + OperationQueuedStatus, + OperationPendingStatus, + OperationPendingPreconditionStatus, + OperationConfirmedStatus, + OperationFailedStatus, +} from './relayer.js' + +export type { + Relayer as Service, + FeeToken, + IntentPrecondition, + MetaTxn, + SendMetaTxnReturn, + GetMetaTxnReceiptReturn, +} from './rpc-relayer/relayer.gen.js' + +// Namespace exports for better organization +export * as proto from './rpc-relayer/relayer.gen.js' export * as StandardRelayer from './standard/index.js' export * as RelayerGen from './rpc-relayer/relayer.gen.js' export * as Preconditions from './preconditions/index.js' + +// Re-export Relayer namespace with cleaner API from relayer.js +export { Relayer } from './relayer.js' diff --git a/packages/services/relayer/src/relayer.ts b/packages/services/relayer/src/relayer.ts index 952b80f8f..755f195ce 100644 --- a/packages/services/relayer/src/relayer.ts +++ b/packages/services/relayer/src/relayer.ts @@ -87,3 +87,22 @@ export function isRelayer(relayer: any): relayer is Relayer { 'checkPrecondition' in relayer ) } + +// Import RpcRelayer for re-export in namespace +import { RpcRelayer as RpcRelayerClass } from './rpc-relayer/index.js' + +// Namespace export with cleaner API +export namespace Relayer { + // Re-export RpcRelayer class + export const RpcRelayer = RpcRelayerClass + export type RpcRelayer = InstanceType + + // Re-export types with cleaner names + export type Status = OperationStatus + export type FailedStatus = OperationFailedStatus + export type PendingStatus = OperationPendingStatus + export type ConfirmedStatus = OperationConfirmedStatus + export type UnknownStatus = OperationUnknownStatus + export type QueuedStatus = OperationQueuedStatus + export type PendingPreconditionStatus = OperationPendingPreconditionStatus +}