@orion-js/components 3.11.9 → 4.0.0-alpha.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.
@@ -0,0 +1,358 @@
1
+ // Generated by dts-bundle-generator v9.5.1
2
+
3
+ import express from 'express';
4
+ import { EachMessagePayload } from 'kafkajs';
5
+
6
+ export type EchoesController = {
7
+ new (...args: any[]): any;
8
+ };
9
+ export type ResolversController = {
10
+ new (...args: any[]): any;
11
+ };
12
+ export type SubscriptionsController = {
13
+ new (...args: any[]): any;
14
+ };
15
+ export type JobsController = {
16
+ new (...args: any[]): any;
17
+ };
18
+ export type RoutesController = {
19
+ new (...args: any[]): any;
20
+ };
21
+ export type ModelResolversController = {
22
+ new (...args: any[]): any;
23
+ };
24
+ export interface ComponentControllers {
25
+ echoes?: EchoesController[];
26
+ routes?: RoutesController[];
27
+ jobs?: JobsController[];
28
+ resolvers?: ResolversController[];
29
+ subscriptions?: SubscriptionsController[];
30
+ modelResolvers?: ModelResolversController[];
31
+ }
32
+ export interface Component {
33
+ controllers: ComponentControllers;
34
+ }
35
+ export declare function component(controllers: ComponentControllers): Component;
36
+ export interface EchoConfig {
37
+ type: "event" | "request";
38
+ resolve(params: any, context?: any): Promise<any>;
39
+ attemptsBeforeDeadLetter?: number;
40
+ }
41
+ export interface EchoType extends EchoConfig {
42
+ onMessage(messageData: EachMessagePayload): Promise<void>;
43
+ onRequest(serializedParams: string): any;
44
+ }
45
+ export interface EchoesMap {
46
+ [key: string]: EchoType;
47
+ }
48
+ export interface OrionSubscription<TParams = any, ReturnType = any> {
49
+ name: string;
50
+ params: object;
51
+ subscribe: (callParams: object, viewer: object) => {};
52
+ returns: ReturnType;
53
+ publish: (params: TParams, data: ReturnType) => Promise<void>;
54
+ }
55
+ export interface OrionSubscriptionsMap {
56
+ [key: string]: OrionSubscription;
57
+ }
58
+ export interface StoredCacheData$1 {
59
+ value: any;
60
+ expires?: Date;
61
+ }
62
+ export interface SetCacheOptions$1 {
63
+ ttl?: number;
64
+ }
65
+ export interface GetCacheOptions$1 {
66
+ ttl?: number;
67
+ fallback?(): Promise<any>;
68
+ }
69
+ export interface OrionCache$1 {
70
+ /**
71
+ * Save data in the cache
72
+ */
73
+ set(key: string, value: any, options?: SetCacheOptions$1): Promise<void> | void;
74
+ /**
75
+ * Get data from the cache
76
+ */
77
+ get(key: string, options?: GetCacheOptions$1): Promise<StoredCacheData$1>;
78
+ /**
79
+ * Removes data from the cache
80
+ */
81
+ invalidate(key: string): Promise<void> | void;
82
+ }
83
+ export type Blackbox$1 = {
84
+ [name: string]: any;
85
+ };
86
+ export type ModelResolverResolve$1 = (item: any, params: any, viewer: any, info?: any) => Promise<any>;
87
+ export type GlobalCheckPermissions$1 = (params: any, viewer: any, info?: any) => Promise<string | void>;
88
+ export type ModelCheckPermissions$1 = (parent: any, params: any, viewer: any, info?: any) => Promise<string | void>;
89
+ export type GlobalGetCacheKey$1 = (params: any, viewer: any, info: any) => Promise<any>;
90
+ export type ModelGetCacheKey$1 = (parent: any, params: any, viewer: any, info: any) => Promise<any>;
91
+ export interface ExecuteOptions$1 {
92
+ params: Blackbox$1;
93
+ viewer: any;
94
+ parent?: any;
95
+ info?: any;
96
+ options: ResolverOptions$1;
97
+ }
98
+ export type Parameters$1$1<T> = T extends (...args: infer P) => any ? P : never;
99
+ export type ReturnType$1$1<T> = T extends (...args: any) => infer R ? R : any;
100
+ export type ResolverParams$1<Resolve, IsModel> = IsModel extends undefined ? Parameters$1$1<Resolve>[0] : Parameters$1$1<Resolve>[1];
101
+ export interface ExecuteParams$1<Resolve = Function, IsModel = undefined> {
102
+ params?: ResolverParams$1<Resolve, IsModel>;
103
+ viewer?: any;
104
+ parent?: IsModel extends undefined ? undefined : Parameters$1$1<Resolve>[0];
105
+ info?: any;
106
+ }
107
+ export type Execute$1<Resolve = Function, IsModel = undefined> = (executeOptions: ExecuteParams$1<Resolve, IsModel>) => ReturnType$1$1<Resolve>;
108
+ export interface SharedResolverOptions$1 {
109
+ resolverId?: string;
110
+ params?: any;
111
+ returns?: any;
112
+ mutation?: boolean;
113
+ private?: boolean;
114
+ checkPermission?: GlobalCheckPermissions$1 | ModelCheckPermissions$1;
115
+ getCacheKey?: GlobalGetCacheKey$1 | ModelGetCacheKey$1;
116
+ cache?: number;
117
+ cacheProvider?: OrionCache$1;
118
+ permissionsOptions?: any;
119
+ middlewares?: ResolverMiddleware$1[];
120
+ }
121
+ export interface ResolverOptions$1<Resolve = Function> extends SharedResolverOptions$1 {
122
+ resolve: Resolve;
123
+ }
124
+ export type OmitFirstArg$1<F> = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
125
+ export interface Resolver$1<Resolve = Function, IsModel = undefined> extends SharedResolverOptions$1 {
126
+ execute: Execute$1<Resolve, IsModel>;
127
+ resolve: Resolve;
128
+ modelResolve: IsModel extends undefined ? undefined : OmitFirstArg$1<Resolve>;
129
+ }
130
+ export type ModelResolver$1<Resolve = Function> = Resolver$1<Resolve, true>;
131
+ export type ResolverMiddleware$1 = (executeOptions: ExecuteOptions$1, next: () => Promise<any>) => Promise<any>;
132
+ export interface ModelResolversMap {
133
+ [key: string]: ModelResolver$1<ModelResolverResolve$1>;
134
+ }
135
+ export interface ModelsResolversMap {
136
+ [key: string]: ModelResolversMap;
137
+ }
138
+ export interface RouteResponseObject {
139
+ statusCode?: number;
140
+ headers?: {
141
+ [key: string]: string;
142
+ };
143
+ body: string | object;
144
+ }
145
+ export type RouteResponse = Promise<RouteResponseObject | void>;
146
+ export type RouteResolve = (req: express.Request, res: express.Response, viewer: any) => RouteResponse;
147
+ export interface OrionRouteOptions {
148
+ /**
149
+ * The http method of the requests to match.
150
+ */
151
+ method: "get" | "post" | "put" | "delete" | "all";
152
+ /**
153
+ * The path of the requests to match.
154
+ */
155
+ path: string;
156
+ /**
157
+ * Select the body parser to use for this route.
158
+ */
159
+ bodyParser?: "json" | "text" | "urlencoded";
160
+ /**
161
+ * Selected body parser options.
162
+ */
163
+ bodyParserOptions?: bodyParser.OptionsJson | bodyParser.OptionsText | bodyParser.OptionsUrlencoded;
164
+ /**
165
+ * Add a middleware to the route.
166
+ * See https://expressjs.com/en/4x/api.html#middleware
167
+ * for more information.
168
+ */
169
+ middlewares?: Array<express.RequestHandler>;
170
+ resolve: RouteResolve;
171
+ /**
172
+ * Pass another express app
173
+ */
174
+ app?: express.Application;
175
+ }
176
+ export interface RouteType extends OrionRouteOptions {
177
+ }
178
+ export interface RoutesMap {
179
+ [key: string]: RouteType;
180
+ }
181
+ export type Blackbox = {
182
+ [name: string]: any;
183
+ };
184
+ export type LogFunction = (message: string, metadata?: any) => void;
185
+ export interface OrionLogger {
186
+ debug: LogFunction;
187
+ info: LogFunction;
188
+ warn: LogFunction;
189
+ error: LogFunction;
190
+ addContext: (module: NodeJS.Module) => OrionLogger;
191
+ addMetadata: (metadata: any) => OrionLogger;
192
+ }
193
+ export interface JobToRun {
194
+ jobId: string;
195
+ executionId: string;
196
+ name: string;
197
+ type: "event" | "recurrent";
198
+ params: Blackbox;
199
+ tries: number;
200
+ lockTime: number;
201
+ priority: number;
202
+ uniqueIdentifier?: string;
203
+ }
204
+ export interface ExecutionContext {
205
+ record: JobToRun;
206
+ definition: JobDefinition;
207
+ tries: number;
208
+ logger: OrionLogger;
209
+ extendLockTime: (extraTime: number) => Promise<void>;
210
+ clearStaleTimeout: () => void;
211
+ }
212
+ export interface JobRetryResultBase {
213
+ action: "retry" | "dismiss";
214
+ }
215
+ export type JobRetryResultRunIn = JobRetryResultBase & {
216
+ runIn: number;
217
+ };
218
+ export type JobRetryResultRunAt = JobRetryResultBase & {
219
+ runAt: Date;
220
+ };
221
+ export type JobRetryResult = JobRetryResultRunIn | JobRetryResultRunAt | JobRetryResultBase;
222
+ export interface BaseJobDefinition {
223
+ /**
224
+ * The function to execute when the job is executed.
225
+ */
226
+ resolve: (params: Blackbox, context: ExecutionContext) => Promise<Blackbox | void>;
227
+ /**
228
+ * Called if the job fails.
229
+ */
230
+ onError?: (error: Error, params: Blackbox, context: ExecutionContext) => Promise<JobRetryResult>;
231
+ /**
232
+ * Called if the job locktime is expired. The job will be executed again.
233
+ */
234
+ onStale?: (params: Blackbox, context: ExecutionContext) => Promise<void>;
235
+ /**
236
+ * Save the executions of the job time in milliseconds. Default is 1 week. Set to 0 to disable.
237
+ */
238
+ saveExecutionsFor?: number;
239
+ }
240
+ export interface RecurrentJobDefinition extends BaseJobDefinition {
241
+ /**
242
+ * Type of the job.
243
+ */
244
+ type: "recurrent";
245
+ /**
246
+ * A function executed after each execution that returns the date of the next run.
247
+ */
248
+ getNextRun?: () => Date;
249
+ /**
250
+ * Run every x milliseconds. This will be ignored if getNextRun is defined.
251
+ */
252
+ runEvery?: number;
253
+ /**
254
+ * The priority of the job. Higher is more priority. Default is 100.
255
+ */
256
+ priority?: number;
257
+ }
258
+ export interface EventJobDefinition extends BaseJobDefinition {
259
+ /**
260
+ * Type of the job.
261
+ */
262
+ type: "event";
263
+ }
264
+ export type JobDefinition = RecurrentJobDefinition | EventJobDefinition;
265
+ export interface JobsDefinition {
266
+ [jobName: string]: JobDefinition;
267
+ }
268
+ // Generated by dts-bundle-generator v9.5.1
269
+ // Generated by dts-bundle-generator v9.5.1
270
+ // Generated by dts-bundle-generator v9.5.1
271
+ export interface StoredCacheData {
272
+ value: any;
273
+ expires?: Date;
274
+ }
275
+ export interface SetCacheOptions {
276
+ ttl?: number;
277
+ }
278
+ export interface GetCacheOptions {
279
+ ttl?: number;
280
+ fallback?(): Promise<any>;
281
+ }
282
+ export interface OrionCache {
283
+ /**
284
+ * Save data in the cache
285
+ */
286
+ set(key: string, value: any, options?: SetCacheOptions): Promise<void> | void;
287
+ /**
288
+ * Get data from the cache
289
+ */
290
+ get(key: string, options?: GetCacheOptions): Promise<StoredCacheData>;
291
+ /**
292
+ * Removes data from the cache
293
+ */
294
+ invalidate(key: string): Promise<void> | void;
295
+ }
296
+ type Blackbox$1 = {
297
+ [name: string]: any;
298
+ };
299
+ export type GlobalResolverResolve = (params: any, viewer: any, info?: any) => Promise<any>;
300
+ export type GlobalCheckPermissions = (params: any, viewer: any, info?: any) => Promise<string | void>;
301
+ export type ModelCheckPermissions = (parent: any, params: any, viewer: any, info?: any) => Promise<string | void>;
302
+ export type GlobalGetCacheKey = (params: any, viewer: any, info: any) => Promise<any>;
303
+ export type ModelGetCacheKey = (parent: any, params: any, viewer: any, info: any) => Promise<any>;
304
+ export interface ExecuteOptions {
305
+ params: Blackbox$1;
306
+ viewer: any;
307
+ parent?: any;
308
+ info?: any;
309
+ options: ResolverOptions;
310
+ }
311
+ export type Parameters$1<T> = T extends (...args: infer P) => any ? P : never;
312
+ export type ReturnType$1<T> = T extends (...args: any) => infer R ? R : any;
313
+ export type ResolverParams<Resolve, IsModel> = IsModel extends undefined ? Parameters$1<Resolve>[0] : Parameters$1<Resolve>[1];
314
+ export interface ExecuteParams<Resolve = Function, IsModel = undefined> {
315
+ params?: ResolverParams<Resolve, IsModel>;
316
+ viewer?: any;
317
+ parent?: IsModel extends undefined ? undefined : Parameters$1<Resolve>[0];
318
+ info?: any;
319
+ }
320
+ export type Execute<Resolve = Function, IsModel = undefined> = (executeOptions: ExecuteParams<Resolve, IsModel>) => ReturnType$1<Resolve>;
321
+ export interface SharedResolverOptions {
322
+ resolverId?: string;
323
+ params?: any;
324
+ returns?: any;
325
+ mutation?: boolean;
326
+ private?: boolean;
327
+ checkPermission?: GlobalCheckPermissions | ModelCheckPermissions;
328
+ getCacheKey?: GlobalGetCacheKey | ModelGetCacheKey;
329
+ cache?: number;
330
+ cacheProvider?: OrionCache;
331
+ permissionsOptions?: any;
332
+ middlewares?: ResolverMiddleware[];
333
+ }
334
+ export interface ResolverOptions<Resolve = Function> extends SharedResolverOptions {
335
+ resolve: Resolve;
336
+ }
337
+ export type OmitFirstArg<F> = F extends (x: any, ...args: infer P) => infer R ? (...args: P) => R : never;
338
+ export interface Resolver<Resolve = Function, IsModel = undefined> extends SharedResolverOptions {
339
+ execute: Execute<Resolve, IsModel>;
340
+ resolve: Resolve;
341
+ modelResolve: IsModel extends undefined ? undefined : OmitFirstArg<Resolve>;
342
+ }
343
+ export type ResolverMiddleware = (executeOptions: ExecuteOptions, next: () => Promise<any>) => Promise<any>;
344
+ export interface GlobalResolversMap {
345
+ [key: string]: Resolver<GlobalResolverResolve>;
346
+ }
347
+ export interface MergedComponentControllers {
348
+ echoes: EchoesMap;
349
+ resolvers: GlobalResolversMap;
350
+ modelResolvers: ModelsResolversMap;
351
+ subscriptions: OrionSubscriptionsMap;
352
+ routes: RoutesMap;
353
+ jobs: JobsDefinition;
354
+ }
355
+ export declare function mergeComponentControllers(component: Component): MergedComponentControllers;
356
+ export declare function mergeComponents(components: Component[]): MergedComponentControllers;
357
+
358
+ export {};