@amqp-contract/contract 0.0.1 → 0.0.4
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/README.md +2 -0
- package/dist/index.cjs +11 -0
- package/dist/index.d.cts +24 -12
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +24 -12
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +11 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
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 =
|
|
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[
|
|
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[
|
|
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[
|
|
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> =
|
|
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> =
|
|
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,
|
|
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,
|
|
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,
|
|
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>,
|
|
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>,
|
|
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
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":";;;;;;AAKA;AAKY,KALA,SAAA,GAAY,gBAKA;AAKxB;AAYA;AAWA;AAUiB,KAtCL,YAAA,GAsCwB,QAAA,GAAA,QAAA,GAAA,OAAA,GAAA,SAAA;;;;
|
|
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 =
|
|
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[
|
|
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[
|
|
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[
|
|
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> =
|
|
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> =
|
|
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,
|
|
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,
|
|
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,
|
|
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>,
|
|
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>,
|
|
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
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/types.ts","../src/builder.ts"],"sourcesContent":[],"mappings":";;;;;;AAKA;AAKY,KALA,SAAA,GAAY,gBAKA;AAKxB;AAYA;AAWA;AAUiB,KAtCL,YAAA,GAsCwB,QAAA,GAAA,QAAA,GAAA,OAAA,GAAA,SAAA;;;;
|
|
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
|
package/dist/index.mjs.map
CHANGED
|
@@ -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
|
|
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.
|
|
3
|
+
"version": "0.0.4",
|
|
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.
|
|
43
|
+
"@standard-schema/spec": "1.1.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@vitest/coverage-v8": "4.0.
|
|
47
|
-
"tsdown": "0.
|
|
46
|
+
"@vitest/coverage-v8": "4.0.16",
|
|
47
|
+
"tsdown": "0.18.1",
|
|
48
48
|
"typescript": "5.9.3",
|
|
49
|
-
"vitest": "4.0.
|
|
50
|
-
"zod": "4.1
|
|
49
|
+
"vitest": "4.0.16",
|
|
50
|
+
"zod": "4.2.1",
|
|
51
51
|
"@amqp-contract/tsconfig": "0.0.0"
|
|
52
52
|
},
|
|
53
53
|
"scripts": {
|