UNPKG

@distributed-functions/core

Version:
68 lines 4.53 kB
import { v4 } from 'uuid'; export const CustomEitherCall = (name, metaConstructor) => { return { name, request: (params, meta) => { const id = v4(); return { id, name, params, meta: metaConstructor(meta) }; }, response: (requestOrId, result, meta) => { const isString = typeof requestOrId === 'string'; return { id: isString ? requestOrId : requestOrId.id, result, meta: metaConstructor(meta) }; }, success: (requestOrId, success, meta) => { const isString = typeof requestOrId === 'string'; return { id: isString ? requestOrId : requestOrId.id, result: { $case: 'success', success }, meta: metaConstructor(meta) }; }, failure: (requestOrId, failure, meta) => { const isString = typeof requestOrId === 'string'; return { id: isString ? requestOrId : requestOrId.id, result: { $case: 'failure', failure }, meta: metaConstructor(meta) }; } }; }; // USAGE // export type ExampleCustomEitherCallMeta = { // traceId: string // ts: number // sub?: string // sid?: string // } // export type ExampleCustomEitherCall< // Name extends string, // RequestParams extends Record<any, any>, // Success extends Record<any, any>, // Failure extends DefaultCallResponseResultFailure = DefaultCallResponseResultFailure // > = CustomEitherCall<Name, ExampleCustomEitherCallMeta, RequestParams, Success, Failure> // export const ExampleCustomEitherCall = < // Name extends string, // Params extends Record<any, any>, // Success extends Record<any, any>, // Failure extends DefaultCallResponseResultFailure = DefaultCallResponseResultFailure // >(name: Name) => { // return CustomEitherCall<Name, ExampleCustomEitherCallMeta, Params, Success, Failure>(name, (meta) => { // return { // traceId: meta?.traceId ?? v4(), // ts: meta?.ts ?? Date.now(), // sub: meta?.sub, // sid: meta?.sid // } // }) // } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVpdGhlci1jYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2N1c3RvbS1laXRoZXItY2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBNEN6QixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQU85QixJQUFVLEVBQ1YsZUFBK0MsRUFDUyxFQUFFO0lBQzFELE9BQU87UUFDTCxJQUFJO1FBQ0osT0FBTyxFQUFFLENBQUMsTUFBYyxFQUFFLElBQW9CLEVBQW1DLEVBQUU7WUFDakYsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUE7WUFFZixPQUFPO2dCQUNMLEVBQUU7Z0JBQ0YsSUFBSTtnQkFDSixNQUFNO2dCQUNOLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDO2FBQzVCLENBQUE7UUFDSCxDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQ1IsV0FBcUQsRUFDckQsTUFBd0QsRUFDeEQsSUFBb0IsRUFDcEIsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQTtZQUVoRCxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU07Z0JBQ04sSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUM7YUFDNUIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxXQUFxRCxFQUFFLE9BQWdCLEVBQUUsSUFBb0IsRUFBRSxFQUFFO1lBQ3pHLE1BQU0sUUFBUSxHQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQTtZQUVoRCxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO2dCQUNyQyxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQzthQUM1QixDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLFdBQXFELEVBQUUsT0FBZ0IsRUFBRSxJQUFvQixFQUFFLEVBQUU7WUFDekcsTUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFBO1lBRWhELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDM0MsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7Z0JBQ3JDLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDO2FBQzVCLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQUVELFFBQVE7QUFFUiw4Q0FBOEM7QUFDOUMsb0JBQW9CO0FBQ3BCLGVBQWU7QUFDZixpQkFBaUI7QUFDakIsaUJBQWlCO0FBQ2pCLElBQUk7QUFFSix1Q0FBdUM7QUFDdkMseUJBQXlCO0FBQ3pCLDRDQUE0QztBQUM1QyxzQ0FBc0M7QUFDdEMsd0ZBQXdGO0FBQ3hGLDJGQUEyRjtBQUUzRiwyQ0FBMkM7QUFDM0MseUJBQXlCO0FBQ3pCLHFDQUFxQztBQUNyQyxzQ0FBc0M7QUFDdEMsd0ZBQXdGO0FBQ3hGLHFCQUFxQjtBQUNyQiwyR0FBMkc7QUFDM0csZUFBZTtBQUNmLHdDQUF3QztBQUN4QyxvQ0FBb0M7QUFDcEMsd0JBQXdCO0FBQ3hCLHVCQUF1QjtBQUN2QixRQUFRO0FBQ1IsT0FBTztBQUNQLElBQUkifQ==