@distributed-functions/core
Version:
Distributed Functions for TypeScript
36 lines • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CustomEvent = void 0;
const uuid_1 = require("uuid");
const CustomEvent = (name, metaConstructor) => {
const fn = (payload, meta) => {
return {
id: (0, uuid_1.v4)(),
name,
payload,
meta: metaConstructor(meta)
};
};
fn.eventName = name;
return fn;
};
exports.CustomEvent = CustomEvent;
// # USAGE
// type ExampleEventMeta = {
// traceId: string
// ts: number
// sub?: string
// sid?: string
// }
// type ExampleEvent<Name extends string, Payload extends Record<any, any>> = CustomEvent<Name, Payload, ExampleEventMeta>
// export const ExampleEvent = <Name extends string, Payload extends Record<any, any>>(name: Name) => {
// return CustomEvent<Name, ExampleEventMeta, Payload>(name, (meta) => {
// return {
// traceId: meta?.traceId ?? v4(),
// ts: meta?.ts ?? Date.now(),
// sub: meta?.sub,
// sid: meta?.sid
// }
// })
// }
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWV2ZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2N1c3RvbS1ldmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQkFBeUI7QUFTbEIsTUFBTSxXQUFXLEdBQUcsQ0FDekIsSUFBVSxFQUNWLGVBQStDLEVBQ2IsRUFBRTtJQUNwQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE9BQWdCLEVBQUUsSUFBb0IsRUFBRSxFQUFFO1FBQ3BELE9BQU87WUFDTCxFQUFFLEVBQUUsSUFBQSxTQUFFLEdBQUU7WUFDUixJQUFJO1lBQ0osT0FBTztZQUNQLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDO1NBQzVCLENBQUE7SUFDSCxDQUFDLENBQUE7SUFFRCxFQUFFLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtJQUVuQixPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUMsQ0FBQTtBQWhCWSxRQUFBLFdBQVcsZUFnQnZCO0FBRUQsVUFBVTtBQUVWLDRCQUE0QjtBQUM1QixvQkFBb0I7QUFDcEIsZUFBZTtBQUNmLGlCQUFpQjtBQUNqQixpQkFBaUI7QUFDakIsSUFBSTtBQUVKLDBIQUEwSDtBQUUxSCx1R0FBdUc7QUFDdkcsMEVBQTBFO0FBQzFFLGVBQWU7QUFDZix3Q0FBd0M7QUFDeEMsb0NBQW9DO0FBQ3BDLHdCQUF3QjtBQUN4Qix1QkFBdUI7QUFDdkIsUUFBUTtBQUNSLE9BQU87QUFDUCxJQUFJIn0=