@amqp-contract/contract 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,6 +1,16 @@
1
1
 
2
2
  //#region src/builder.ts
3
3
  /**
4
+ * Define a message schema with metadata
5
+ */
6
+ function defineMessage(name, schema) {
7
+ return {
8
+ name,
9
+ schema,
10
+ "~standard": schema["~standard"]
11
+ };
12
+ }
13
+ /**
4
14
  * Define an AMQP exchange
5
15
  */
6
16
  function defineExchange(name, type, options) {
@@ -61,5 +71,6 @@ exports.defineBinding = defineBinding;
61
71
  exports.defineConsumer = defineConsumer;
62
72
  exports.defineContract = defineContract;
63
73
  exports.defineExchange = defineExchange;
74
+ exports.defineMessage = defineMessage;
64
75
  exports.definePublisher = definePublisher;
65
76
  exports.defineQueue = defineQueue;
package/dist/index.d.cts CHANGED
@@ -9,7 +9,7 @@ type AnySchema = StandardSchemaV1;
9
9
  /**
10
10
  * Exchange types supported by AMQP
11
11
  */
12
- type ExchangeType = 'direct' | 'fanout' | 'topic' | 'headers';
12
+ type ExchangeType = "direct" | "fanout" | "topic" | "headers";
13
13
  /**
14
14
  * Definition of an AMQP exchange
15
15
  */
@@ -79,15 +79,15 @@ type InferSchemaOutput<TSchema extends AnySchema> = TSchema extends StandardSche
79
79
  /**
80
80
  * Infer publisher message input type
81
81
  */
82
- type PublisherInferInput<TPublisher extends PublisherDefinition> = InferSchemaInput<TPublisher['message']>;
82
+ type PublisherInferInput<TPublisher extends PublisherDefinition> = InferSchemaInput<TPublisher["message"]>;
83
83
  /**
84
84
  * Infer consumer message input type
85
85
  */
86
- type ConsumerInferInput<TConsumer extends ConsumerDefinition> = InferSchemaInput<TConsumer['message']>;
86
+ type ConsumerInferInput<TConsumer extends ConsumerDefinition> = InferSchemaInput<TConsumer["message"]>;
87
87
  /**
88
88
  * Infer consumer handler result type
89
89
  */
90
- type ConsumerInferHandlerResult<TConsumer extends ConsumerDefinition> = TConsumer['handlerResult'] extends AnySchema ? InferSchemaOutput<TConsumer['handlerResult']> : void;
90
+ type ConsumerInferHandlerResult<TConsumer extends ConsumerDefinition> = TConsumer["handlerResult"] extends AnySchema ? InferSchemaOutput<TConsumer["handlerResult"]> : void;
91
91
  /**
92
92
  * Consumer handler function type
93
93
  */
@@ -95,11 +95,11 @@ type ConsumerHandler<TConsumer extends ConsumerDefinition> = (message: ConsumerI
95
95
  /**
96
96
  * Infer all publishers from contract
97
97
  */
98
- type InferPublishers<TContract extends ContractDefinition> = TContract['publishers'] extends Record<string, PublisherDefinition> ? TContract['publishers'] : never;
98
+ type InferPublishers<TContract extends ContractDefinition> = NonNullable<TContract["publishers"]>;
99
99
  /**
100
100
  * Infer all consumers from contract
101
101
  */
102
- type InferConsumers<TContract extends ContractDefinition> = TContract['consumers'] extends Record<string, ConsumerDefinition> ? TContract['consumers'] : never;
102
+ type InferConsumers<TContract extends ContractDefinition> = NonNullable<TContract["consumers"]>;
103
103
  /**
104
104
  * Infer publisher names from contract
105
105
  */
@@ -138,30 +138,42 @@ type WorkerInferConsumerHandler<TContract extends ContractDefinition, TName exte
138
138
  type WorkerInferConsumerHandlers<TContract extends ContractDefinition> = { [K in InferConsumerNames<TContract>]: WorkerInferConsumerHandler<TContract, K> };
139
139
  //#endregion
140
140
  //#region src/builder.d.ts
141
+ /**
142
+ * Message schema with metadata
143
+ */
144
+ interface MessageSchema<TSchema extends AnySchema = AnySchema> extends AnySchema {
145
+ readonly name: string;
146
+ readonly schema: TSchema;
147
+ readonly "~standard": TSchema["~standard"];
148
+ }
149
+ /**
150
+ * Define a message schema with metadata
151
+ */
152
+ declare function defineMessage<TSchema extends AnySchema>(name: string, schema: TSchema): MessageSchema<TSchema>;
141
153
  /**
142
154
  * Define an AMQP exchange
143
155
  */
144
- declare function defineExchange(name: string, type: ExchangeType, options?: Omit<ExchangeDefinition, 'name' | 'type'>): ExchangeDefinition;
156
+ declare function defineExchange(name: string, type: ExchangeType, options?: Omit<ExchangeDefinition, "name" | "type">): ExchangeDefinition;
145
157
  /**
146
158
  * Define an AMQP queue
147
159
  */
148
- declare function defineQueue(name: string, options?: Omit<QueueDefinition, 'name'>): QueueDefinition;
160
+ declare function defineQueue(name: string, options?: Omit<QueueDefinition, "name">): QueueDefinition;
149
161
  /**
150
162
  * Define a binding between queue and exchange
151
163
  */
152
- declare function defineBinding(queue: string, exchange: string, options?: Omit<BindingDefinition, 'queue' | 'exchange'>): BindingDefinition;
164
+ declare function defineBinding(queue: string, exchange: string, options?: Omit<BindingDefinition, "queue" | "exchange">): BindingDefinition;
153
165
  /**
154
166
  * Define a message publisher
155
167
  */
156
- declare function definePublisher<TMessageSchema extends AnySchema>(exchange: string, message: TMessageSchema, options?: Omit<PublisherDefinition<TMessageSchema>, 'exchange' | 'message'>): PublisherDefinition<TMessageSchema>;
168
+ declare function definePublisher<TMessageSchema extends AnySchema>(exchange: string, message: TMessageSchema, options?: Omit<PublisherDefinition<TMessageSchema>, "exchange" | "message">): PublisherDefinition<TMessageSchema>;
157
169
  /**
158
170
  * Define a message consumer
159
171
  */
160
- declare function defineConsumer<TMessageSchema extends AnySchema, THandlerResultSchema extends AnySchema = AnySchema>(queue: string, message: TMessageSchema, options?: Omit<ConsumerDefinition<TMessageSchema, THandlerResultSchema>, 'queue' | 'message'>): ConsumerDefinition<TMessageSchema, THandlerResultSchema>;
172
+ declare function defineConsumer<TMessageSchema extends AnySchema, THandlerResultSchema extends AnySchema = AnySchema>(queue: string, message: TMessageSchema, options?: Omit<ConsumerDefinition<TMessageSchema, THandlerResultSchema>, "queue" | "message">): ConsumerDefinition<TMessageSchema, THandlerResultSchema>;
161
173
  /**
162
174
  * Define an AMQP contract
163
175
  */
164
176
  declare function defineContract<TExchanges extends Record<string, ExchangeDefinition> = Record<string, ExchangeDefinition>, TQueues extends Record<string, QueueDefinition> = Record<string, QueueDefinition>, TBindings extends Record<string, BindingDefinition> = Record<string, BindingDefinition>, TPublishers extends Record<string, PublisherDefinition> = Record<string, PublisherDefinition>, TConsumers extends Record<string, ConsumerDefinition> = Record<string, ConsumerDefinition>>(definition: ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers>): ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers>;
165
177
  //#endregion
166
- export { type AnySchema, type BindingDefinition, type ClientInferPublisherInput, type ConsumerDefinition, type ConsumerHandler, type ConsumerInferHandlerResult, type ConsumerInferInput, type ContractDefinition, type ExchangeDefinition, type ExchangeType, type InferConsumer, type InferConsumerNames, type InferConsumers, type InferPublisher, type InferPublisherNames, type InferPublishers, type InferSchemaInput, type InferSchemaOutput, type PublisherDefinition, type PublisherInferInput, type QueueDefinition, type WorkerInferConsumerHandler, type WorkerInferConsumerHandlerResult, type WorkerInferConsumerHandlers, type WorkerInferConsumerInput, defineBinding, defineConsumer, defineContract, defineExchange, definePublisher, defineQueue };
178
+ export { type AnySchema, type BindingDefinition, type ClientInferPublisherInput, type ConsumerDefinition, type ConsumerHandler, type ConsumerInferHandlerResult, type ConsumerInferInput, type ContractDefinition, type ExchangeDefinition, type ExchangeType, type InferConsumer, type InferConsumerNames, type InferConsumers, type InferPublisher, type InferPublisherNames, type InferPublishers, type InferSchemaInput, type InferSchemaOutput, type MessageSchema, type PublisherDefinition, type PublisherInferInput, type QueueDefinition, type WorkerInferConsumerHandler, type WorkerInferConsumerHandlerResult, type WorkerInferConsumerHandlers, type WorkerInferConsumerInput, defineBinding, defineConsumer, defineContract, defineExchange, defineMessage, definePublisher, defineQueue };
167
179
  //# sourceMappingURL=index.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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AAA,OAAA,GAAA,SAAA,CAAA,CAAA,EC4BpE,kBD5BoE,CC4BjD,cD5BiD,EC4BjC,oBD5BiC,CAAA;;;;AACI,iBCsC3D,cDtC2D,CAAA,mBCuCtD,MDvCsD,CAAA,MAAA,ECuCvC,kBDvCuC,CAAA,GCuCjB,MDvCiB,CAAA,MAAA,ECuCF,kBDvCE,CAAA,EAAA,gBCwCzD,MDxCyD,CAAA,MAAA,ECwC1C,eDxC0C,CAAA,GCwCvB,MDxCuB,CAAA,MAAA,ECwCR,eDxCQ,CAAA,EAAA,kBCyCvD,MDzCuD,CAAA,MAAA,ECyCxC,iBDzCwC,CAAA,GCyCnB,MDzCmB,CAAA,MAAA,ECyCJ,iBDzCI,CAAA,EAAA,oBC0CrD,MD1CqD,CAAA,MAAA,EC0CtC,mBD1CsC,CAAA,GC0Cf,MD1Ce,CAAA,MAAA,EC0CA,mBD1CA,CAAA,EAAA,mBC2CtD,MD3CsD,CAAA,MAAA,EC2CvC,kBD3CuC,CAAA,GC2CjB,MD3CiB,CAAA,MAAA,EC2CF,kBD3CE,CAAA,CAAA,CAAA,UAAA,EC6C7D,kBD7C6D,CC6C1C,UD7C0C,EC6C9B,OD7C8B,EC6CrB,SD7CqB,EC6CV,WD7CU,EC6CG,UD7CH,CAAA,CAAA,EC8CxE,kBD9CwE,CC8CrD,UD9CqD,EC8CzC,OD9CyC,EC8ChC,SD9CgC,EC8CrB,WD9CqB,EC8CR,UD9CQ,CAAA"}
package/dist/index.d.mts CHANGED
@@ -9,7 +9,7 @@ type AnySchema = StandardSchemaV1;
9
9
  /**
10
10
  * Exchange types supported by AMQP
11
11
  */
12
- type ExchangeType = 'direct' | 'fanout' | 'topic' | 'headers';
12
+ type ExchangeType = "direct" | "fanout" | "topic" | "headers";
13
13
  /**
14
14
  * Definition of an AMQP exchange
15
15
  */
@@ -79,15 +79,15 @@ type InferSchemaOutput<TSchema extends AnySchema> = TSchema extends StandardSche
79
79
  /**
80
80
  * Infer publisher message input type
81
81
  */
82
- type PublisherInferInput<TPublisher extends PublisherDefinition> = InferSchemaInput<TPublisher['message']>;
82
+ type PublisherInferInput<TPublisher extends PublisherDefinition> = InferSchemaInput<TPublisher["message"]>;
83
83
  /**
84
84
  * Infer consumer message input type
85
85
  */
86
- type ConsumerInferInput<TConsumer extends ConsumerDefinition> = InferSchemaInput<TConsumer['message']>;
86
+ type ConsumerInferInput<TConsumer extends ConsumerDefinition> = InferSchemaInput<TConsumer["message"]>;
87
87
  /**
88
88
  * Infer consumer handler result type
89
89
  */
90
- type ConsumerInferHandlerResult<TConsumer extends ConsumerDefinition> = TConsumer['handlerResult'] extends AnySchema ? InferSchemaOutput<TConsumer['handlerResult']> : void;
90
+ type ConsumerInferHandlerResult<TConsumer extends ConsumerDefinition> = TConsumer["handlerResult"] extends AnySchema ? InferSchemaOutput<TConsumer["handlerResult"]> : void;
91
91
  /**
92
92
  * Consumer handler function type
93
93
  */
@@ -95,11 +95,11 @@ type ConsumerHandler<TConsumer extends ConsumerDefinition> = (message: ConsumerI
95
95
  /**
96
96
  * Infer all publishers from contract
97
97
  */
98
- type InferPublishers<TContract extends ContractDefinition> = TContract['publishers'] extends Record<string, PublisherDefinition> ? TContract['publishers'] : never;
98
+ type InferPublishers<TContract extends ContractDefinition> = NonNullable<TContract["publishers"]>;
99
99
  /**
100
100
  * Infer all consumers from contract
101
101
  */
102
- type InferConsumers<TContract extends ContractDefinition> = TContract['consumers'] extends Record<string, ConsumerDefinition> ? TContract['consumers'] : never;
102
+ type InferConsumers<TContract extends ContractDefinition> = NonNullable<TContract["consumers"]>;
103
103
  /**
104
104
  * Infer publisher names from contract
105
105
  */
@@ -138,30 +138,42 @@ type WorkerInferConsumerHandler<TContract extends ContractDefinition, TName exte
138
138
  type WorkerInferConsumerHandlers<TContract extends ContractDefinition> = { [K in InferConsumerNames<TContract>]: WorkerInferConsumerHandler<TContract, K> };
139
139
  //#endregion
140
140
  //#region src/builder.d.ts
141
+ /**
142
+ * Message schema with metadata
143
+ */
144
+ interface MessageSchema<TSchema extends AnySchema = AnySchema> extends AnySchema {
145
+ readonly name: string;
146
+ readonly schema: TSchema;
147
+ readonly "~standard": TSchema["~standard"];
148
+ }
149
+ /**
150
+ * Define a message schema with metadata
151
+ */
152
+ declare function defineMessage<TSchema extends AnySchema>(name: string, schema: TSchema): MessageSchema<TSchema>;
141
153
  /**
142
154
  * Define an AMQP exchange
143
155
  */
144
- declare function defineExchange(name: string, type: ExchangeType, options?: Omit<ExchangeDefinition, 'name' | 'type'>): ExchangeDefinition;
156
+ declare function defineExchange(name: string, type: ExchangeType, options?: Omit<ExchangeDefinition, "name" | "type">): ExchangeDefinition;
145
157
  /**
146
158
  * Define an AMQP queue
147
159
  */
148
- declare function defineQueue(name: string, options?: Omit<QueueDefinition, 'name'>): QueueDefinition;
160
+ declare function defineQueue(name: string, options?: Omit<QueueDefinition, "name">): QueueDefinition;
149
161
  /**
150
162
  * Define a binding between queue and exchange
151
163
  */
152
- declare function defineBinding(queue: string, exchange: string, options?: Omit<BindingDefinition, 'queue' | 'exchange'>): BindingDefinition;
164
+ declare function defineBinding(queue: string, exchange: string, options?: Omit<BindingDefinition, "queue" | "exchange">): BindingDefinition;
153
165
  /**
154
166
  * Define a message publisher
155
167
  */
156
- declare function definePublisher<TMessageSchema extends AnySchema>(exchange: string, message: TMessageSchema, options?: Omit<PublisherDefinition<TMessageSchema>, 'exchange' | 'message'>): PublisherDefinition<TMessageSchema>;
168
+ declare function definePublisher<TMessageSchema extends AnySchema>(exchange: string, message: TMessageSchema, options?: Omit<PublisherDefinition<TMessageSchema>, "exchange" | "message">): PublisherDefinition<TMessageSchema>;
157
169
  /**
158
170
  * Define a message consumer
159
171
  */
160
- declare function defineConsumer<TMessageSchema extends AnySchema, THandlerResultSchema extends AnySchema = AnySchema>(queue: string, message: TMessageSchema, options?: Omit<ConsumerDefinition<TMessageSchema, THandlerResultSchema>, 'queue' | 'message'>): ConsumerDefinition<TMessageSchema, THandlerResultSchema>;
172
+ declare function defineConsumer<TMessageSchema extends AnySchema, THandlerResultSchema extends AnySchema = AnySchema>(queue: string, message: TMessageSchema, options?: Omit<ConsumerDefinition<TMessageSchema, THandlerResultSchema>, "queue" | "message">): ConsumerDefinition<TMessageSchema, THandlerResultSchema>;
161
173
  /**
162
174
  * Define an AMQP contract
163
175
  */
164
176
  declare function defineContract<TExchanges extends Record<string, ExchangeDefinition> = Record<string, ExchangeDefinition>, TQueues extends Record<string, QueueDefinition> = Record<string, QueueDefinition>, TBindings extends Record<string, BindingDefinition> = Record<string, BindingDefinition>, TPublishers extends Record<string, PublisherDefinition> = Record<string, PublisherDefinition>, TConsumers extends Record<string, ConsumerDefinition> = Record<string, ConsumerDefinition>>(definition: ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers>): ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers>;
165
177
  //#endregion
166
- export { type AnySchema, type BindingDefinition, type ClientInferPublisherInput, type ConsumerDefinition, type ConsumerHandler, type ConsumerInferHandlerResult, type ConsumerInferInput, type ContractDefinition, type ExchangeDefinition, type ExchangeType, type InferConsumer, type InferConsumerNames, type InferConsumers, type InferPublisher, type InferPublisherNames, type InferPublishers, type InferSchemaInput, type InferSchemaOutput, type PublisherDefinition, type PublisherInferInput, type QueueDefinition, type WorkerInferConsumerHandler, type WorkerInferConsumerHandlerResult, type WorkerInferConsumerHandlers, type WorkerInferConsumerInput, defineBinding, defineConsumer, defineContract, defineExchange, definePublisher, defineQueue };
178
+ export { type AnySchema, type BindingDefinition, type ClientInferPublisherInput, type ConsumerDefinition, type ConsumerHandler, type ConsumerInferHandlerResult, type ConsumerInferInput, type ContractDefinition, type ExchangeDefinition, type ExchangeType, type InferConsumer, type InferConsumerNames, type InferConsumers, type InferPublisher, type InferPublisherNames, type InferPublishers, type InferSchemaInput, type InferSchemaOutput, type MessageSchema, type PublisherDefinition, type PublisherInferInput, type QueueDefinition, type WorkerInferConsumerHandler, type WorkerInferConsumerHandlerResult, type WorkerInferConsumerHandlers, type WorkerInferConsumerInput, defineBinding, defineConsumer, defineContract, defineExchange, defineMessage, definePublisher, defineQueue };
167
179
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":"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AAA,OAAA,GAAA,SAAA,CAAA,CAAA,EC4BpE,kBD5BoE,CC4BjD,cD5BiD,EC4BjC,oBD5BiC,CAAA;;;;AACI,iBCsC3D,cDtC2D,CAAA,mBCuCtD,MDvCsD,CAAA,MAAA,ECuCvC,kBDvCuC,CAAA,GCuCjB,MDvCiB,CAAA,MAAA,ECuCF,kBDvCE,CAAA,EAAA,gBCwCzD,MDxCyD,CAAA,MAAA,ECwC1C,eDxC0C,CAAA,GCwCvB,MDxCuB,CAAA,MAAA,ECwCR,eDxCQ,CAAA,EAAA,kBCyCvD,MDzCuD,CAAA,MAAA,ECyCxC,iBDzCwC,CAAA,GCyCnB,MDzCmB,CAAA,MAAA,ECyCJ,iBDzCI,CAAA,EAAA,oBC0CrD,MD1CqD,CAAA,MAAA,EC0CtC,mBD1CsC,CAAA,GC0Cf,MD1Ce,CAAA,MAAA,EC0CA,mBD1CA,CAAA,EAAA,mBC2CtD,MD3CsD,CAAA,MAAA,EC2CvC,kBD3CuC,CAAA,GC2CjB,MD3CiB,CAAA,MAAA,EC2CF,kBD3CE,CAAA,CAAA,CAAA,UAAA,EC6C7D,kBD7C6D,CC6C1C,UD7C0C,EC6C9B,OD7C8B,EC6CrB,SD7CqB,EC6CV,WD7CU,EC6CG,UD7CH,CAAA,CAAA,EC8CxE,kBD9CwE,CC8CrD,UD9CqD,EC8CzC,OD9CyC,EC8ChC,SD9CgC,EC8CrB,WD9CqB,EC8CR,UD9CQ,CAAA"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,15 @@
1
1
  //#region src/builder.ts
2
2
  /**
3
+ * Define a message schema with metadata
4
+ */
5
+ function defineMessage(name, schema) {
6
+ return {
7
+ name,
8
+ schema,
9
+ "~standard": schema["~standard"]
10
+ };
11
+ }
12
+ /**
3
13
  * Define an AMQP exchange
4
14
  */
5
15
  function defineExchange(name, type, options) {
@@ -56,5 +66,5 @@ function defineContract(definition) {
56
66
  }
57
67
 
58
68
  //#endregion
59
- export { defineBinding, defineConsumer, defineContract, defineExchange, definePublisher, defineQueue };
69
+ export { defineBinding, defineConsumer, defineContract, defineExchange, defineMessage, definePublisher, defineQueue };
60
70
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../src/builder.ts"],"sourcesContent":["import type {\n AnySchema,\n BindingDefinition,\n ConsumerDefinition,\n ContractDefinition,\n ExchangeDefinition,\n ExchangeType,\n PublisherDefinition,\n QueueDefinition,\n} from './types.js';\n\n/**\n * Define an AMQP exchange\n */\nexport function defineExchange(\n name: string,\n type: ExchangeType,\n options?: Omit<ExchangeDefinition, 'name' | 'type'>\n): ExchangeDefinition {\n return {\n name,\n type,\n ...options,\n };\n}\n\n/**\n * Define an AMQP queue\n */\nexport function defineQueue(\n name: string,\n options?: Omit<QueueDefinition, 'name'>\n): QueueDefinition {\n return {\n name,\n ...options,\n };\n}\n\n/**\n * Define a binding between queue and exchange\n */\nexport function defineBinding(\n queue: string,\n exchange: string,\n options?: Omit<BindingDefinition, 'queue' | 'exchange'>\n): BindingDefinition {\n return {\n queue,\n exchange,\n ...options,\n };\n}\n\n/**\n * Define a message publisher\n */\nexport function definePublisher<TMessageSchema extends AnySchema>(\n exchange: string,\n message: TMessageSchema,\n options?: Omit<PublisherDefinition<TMessageSchema>, 'exchange' | 'message'>\n): PublisherDefinition<TMessageSchema> {\n return {\n exchange,\n message,\n ...options,\n };\n}\n\n/**\n * Define a message consumer\n */\nexport function defineConsumer<\n TMessageSchema extends AnySchema,\n THandlerResultSchema extends AnySchema = AnySchema,\n>(\n queue: string,\n message: TMessageSchema,\n options?: Omit<\n ConsumerDefinition<TMessageSchema, THandlerResultSchema>,\n 'queue' | 'message'\n >\n): ConsumerDefinition<TMessageSchema, THandlerResultSchema> {\n return {\n queue,\n message,\n ...options,\n };\n}\n\n/**\n * Define an AMQP contract\n */\nexport function defineContract<\n TExchanges extends Record<string, ExchangeDefinition> = Record<\n string,\n ExchangeDefinition\n >,\n TQueues extends Record<string, QueueDefinition> = Record<\n string,\n QueueDefinition\n >,\n TBindings extends Record<string, BindingDefinition> = Record<\n string,\n BindingDefinition\n >,\n TPublishers extends Record<string, PublisherDefinition> = Record<\n string,\n PublisherDefinition\n >,\n TConsumers extends Record<string, ConsumerDefinition> = Record<\n string,\n ConsumerDefinition\n >,\n>(\n definition: ContractDefinition<\n TExchanges,\n TQueues,\n TBindings,\n TPublishers,\n TConsumers\n >\n): ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers> {\n return definition;\n}\n"],"mappings":";;;;AAcA,SAAgB,eACd,MACA,MACA,SACoB;AACpB,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,YACd,MACA,SACiB;AACjB,QAAO;EACL;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,cACd,OACA,UACA,SACmB;AACnB,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,gBACd,UACA,SACA,SACqC;AACrC,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,eAId,OACA,SACA,SAI0D;AAC1D,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,eAsBd,YAO6E;AAC7E,QAAO"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../src/builder.ts"],"sourcesContent":["import type {\n AnySchema,\n BindingDefinition,\n ConsumerDefinition,\n ContractDefinition,\n ExchangeDefinition,\n ExchangeType,\n PublisherDefinition,\n QueueDefinition,\n} from \"./types.js\";\n\n/**\n * Message schema with metadata\n */\nexport interface MessageSchema<TSchema extends AnySchema = AnySchema> extends AnySchema {\n readonly name: string;\n readonly schema: TSchema;\n readonly \"~standard\": TSchema[\"~standard\"];\n}\n\n/**\n * Define a message schema with metadata\n */\nexport function defineMessage<TSchema extends AnySchema>(\n name: string,\n schema: TSchema,\n): MessageSchema<TSchema> {\n return {\n name,\n schema,\n \"~standard\": schema[\"~standard\"],\n };\n}\n\n/**\n * Define an AMQP exchange\n */\nexport function defineExchange(\n name: string,\n type: ExchangeType,\n options?: Omit<ExchangeDefinition, \"name\" | \"type\">,\n): ExchangeDefinition {\n return {\n name,\n type,\n ...options,\n };\n}\n\n/**\n * Define an AMQP queue\n */\nexport function defineQueue(\n name: string,\n options?: Omit<QueueDefinition, \"name\">,\n): QueueDefinition {\n return {\n name,\n ...options,\n };\n}\n\n/**\n * Define a binding between queue and exchange\n */\nexport function defineBinding(\n queue: string,\n exchange: string,\n options?: Omit<BindingDefinition, \"queue\" | \"exchange\">,\n): BindingDefinition {\n return {\n queue,\n exchange,\n ...options,\n };\n}\n\n/**\n * Define a message publisher\n */\nexport function definePublisher<TMessageSchema extends AnySchema>(\n exchange: string,\n message: TMessageSchema,\n options?: Omit<PublisherDefinition<TMessageSchema>, \"exchange\" | \"message\">,\n): PublisherDefinition<TMessageSchema> {\n return {\n exchange,\n message,\n ...options,\n };\n}\n\n/**\n * Define a message consumer\n */\nexport function defineConsumer<\n TMessageSchema extends AnySchema,\n THandlerResultSchema extends AnySchema = AnySchema,\n>(\n queue: string,\n message: TMessageSchema,\n options?: Omit<ConsumerDefinition<TMessageSchema, THandlerResultSchema>, \"queue\" | \"message\">,\n): ConsumerDefinition<TMessageSchema, THandlerResultSchema> {\n return {\n queue,\n message,\n ...options,\n };\n}\n\n/**\n * Define an AMQP contract\n */\nexport function defineContract<\n TExchanges extends Record<string, ExchangeDefinition> = Record<string, ExchangeDefinition>,\n TQueues extends Record<string, QueueDefinition> = Record<string, QueueDefinition>,\n TBindings extends Record<string, BindingDefinition> = Record<string, BindingDefinition>,\n TPublishers extends Record<string, PublisherDefinition> = Record<string, PublisherDefinition>,\n TConsumers extends Record<string, ConsumerDefinition> = Record<string, ConsumerDefinition>,\n>(\n definition: ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers>,\n): ContractDefinition<TExchanges, TQueues, TBindings, TPublishers, TConsumers> {\n return definition;\n}\n"],"mappings":";;;;AAuBA,SAAgB,cACd,MACA,QACwB;AACxB,QAAO;EACL;EACA;EACA,aAAa,OAAO;EACrB;;;;;AAMH,SAAgB,eACd,MACA,MACA,SACoB;AACpB,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,YACd,MACA,SACiB;AACjB,QAAO;EACL;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,cACd,OACA,UACA,SACmB;AACnB,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,gBACd,UACA,SACA,SACqC;AACrC,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,eAId,OACA,SACA,SAC0D;AAC1D,QAAO;EACL;EACA;EACA,GAAG;EACJ;;;;;AAMH,SAAgB,eAOd,YAC6E;AAC7E,QAAO"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@amqp-contract/contract",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Contract builder for amqp-contract",
5
5
  "keywords": [
6
6
  "amqp",
7
- "typescript",
8
7
  "contract",
9
- "rabbitmq"
8
+ "rabbitmq",
9
+ "typescript"
10
10
  ],
11
11
  "homepage": "https://github.com/btravers/amqp-contract#readme",
12
12
  "bugs": {
@@ -40,14 +40,14 @@
40
40
  "dist"
41
41
  ],
42
42
  "dependencies": {
43
- "@standard-schema/spec": "1.0.0"
43
+ "@standard-schema/spec": "1.1.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@vitest/coverage-v8": "4.0.15",
47
- "tsdown": "0.17.2",
46
+ "@vitest/coverage-v8": "4.0.16",
47
+ "tsdown": "0.18.1",
48
48
  "typescript": "5.9.3",
49
- "vitest": "4.0.15",
50
- "zod": "4.1.13",
49
+ "vitest": "4.0.16",
50
+ "zod": "4.2.1",
51
51
  "@amqp-contract/tsconfig": "0.0.0"
52
52
  },
53
53
  "scripts": {