UNPKG

@distributed-functions/core

Version:
72 lines 4.69 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CustomEitherCall = void 0; const uuid_1 = require("uuid"); const CustomEitherCall = (name, metaConstructor) => { return { name, request: (params, meta) => { const id = (0, uuid_1.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) }; } }; }; exports.CustomEitherCall = CustomEitherCall; // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWVpdGhlci1jYWxsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2N1c3RvbS1laXRoZXItY2FsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBeUI7QUE0Q2xCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FPOUIsSUFBVSxFQUNWLGVBQStDLEVBQ1MsRUFBRTtJQUMxRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLE9BQU8sRUFBRSxDQUFDLE1BQWMsRUFBRSxJQUFvQixFQUFtQyxFQUFFO1lBQ2pGLE1BQU0sRUFBRSxHQUFHLElBQUEsU0FBRSxHQUFFLENBQUE7WUFFZixPQUFPO2dCQUNMLEVBQUU7Z0JBQ0YsSUFBSTtnQkFDSixNQUFNO2dCQUNOLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDO2FBQzVCLENBQUE7UUFDSCxDQUFDO1FBQ0QsUUFBUSxFQUFFLENBQ1IsV0FBcUQsRUFDckQsTUFBd0QsRUFDeEQsSUFBb0IsRUFDcEIsRUFBRTtZQUNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQTtZQUVoRCxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU07Z0JBQ04sSUFBSSxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUM7YUFDNUIsQ0FBQTtRQUNILENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxXQUFxRCxFQUFFLE9BQWdCLEVBQUUsSUFBb0IsRUFBRSxFQUFFO1lBQ3pHLE1BQU0sUUFBUSxHQUFHLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQTtZQUVoRCxPQUFPO2dCQUNMLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzNDLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO2dCQUNyQyxJQUFJLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQzthQUM1QixDQUFBO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLFdBQXFELEVBQUUsT0FBZ0IsRUFBRSxJQUFvQixFQUFFLEVBQUU7WUFDekcsTUFBTSxRQUFRLEdBQUcsT0FBTyxXQUFXLEtBQUssUUFBUSxDQUFBO1lBRWhELE9BQU87Z0JBQ0wsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRTtnQkFDM0MsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7Z0JBQ3JDLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDO2FBQzVCLENBQUE7UUFDSCxDQUFDO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXREWSxRQUFBLGdCQUFnQixvQkFzRDVCO0FBRUQsUUFBUTtBQUVSLDhDQUE4QztBQUM5QyxvQkFBb0I7QUFDcEIsZUFBZTtBQUNmLGlCQUFpQjtBQUNqQixpQkFBaUI7QUFDakIsSUFBSTtBQUVKLHVDQUF1QztBQUN2Qyx5QkFBeUI7QUFDekIsNENBQTRDO0FBQzVDLHNDQUFzQztBQUN0Qyx3RkFBd0Y7QUFDeEYsMkZBQTJGO0FBRTNGLDJDQUEyQztBQUMzQyx5QkFBeUI7QUFDekIscUNBQXFDO0FBQ3JDLHNDQUFzQztBQUN0Qyx3RkFBd0Y7QUFDeEYscUJBQXFCO0FBQ3JCLDJHQUEyRztBQUMzRyxlQUFlO0FBQ2Ysd0NBQXdDO0FBQ3hDLG9DQUFvQztBQUNwQyx3QkFBd0I7QUFDeEIsdUJBQXVCO0FBQ3ZCLFFBQVE7QUFDUixPQUFPO0FBQ1AsSUFBSSJ9