@xtr-dev/zod-rpc
Version:
Simple, type-safe RPC library with Zod validation and automatic TypeScript inference
21 lines • 881 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createBoundServiceClient = exports.createTypedInvoker = void 0;
function createTypedInvoker(contract, invoke) {
return async (targetId, input, timeout) => {
return invoke(targetId, contract.id, input, contract.input, contract.output, timeout);
};
}
exports.createTypedInvoker = createTypedInvoker;
function createBoundServiceClient(serviceContracts, targetId, invoke) {
const client = {};
for (const [methodName, contract] of Object.entries(serviceContracts)) {
const typedInvoker = createTypedInvoker(contract, invoke);
client[methodName] = (input, timeout) => {
return typedInvoker(targetId, input, timeout);
};
}
return client;
}
exports.createBoundServiceClient = createBoundServiceClient;
//# sourceMappingURL=method.js.map