@avleon/core 0.0.45 → 0.0.46
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/License +21 -21
- package/README.md +667 -681
- package/dist/application.test.js +15 -0
- package/dist/controller.test.js +0 -14
- package/dist/core/application.d.ts +74 -0
- package/dist/core/application.js +424 -0
- package/dist/core/router.d.ts +44 -0
- package/dist/core/router.js +520 -0
- package/dist/core/testing.d.ts +21 -0
- package/dist/core/testing.js +104 -0
- package/dist/core/types.d.ts +67 -0
- package/dist/core/types.js +2 -0
- package/dist/event-dispatcher.d.ts +0 -1
- package/dist/event-dispatcher.js +4 -7
- package/dist/file-storage.test.js +15 -2
- package/dist/helpers.d.ts +9 -42
- package/dist/helpers.js +19 -411
- package/dist/index.d.ts +17 -15
- package/dist/index.js +18 -22
- package/dist/interfaces/avleon-application.d.ts +74 -26
- package/dist/interfaces/avleon-application.js +1 -0
- package/dist/middleware.d.ts +11 -4
- package/dist/middleware.js +9 -0
- package/dist/multipart.d.ts +2 -2
- package/dist/openapi.d.ts +70 -3
- package/dist/openapi.js +32 -0
- package/dist/params.js +1 -1
- package/dist/params.test.js +8 -8
- package/dist/route-methods.js +16 -5
- package/dist/swagger-schema.d.ts +11 -17
- package/dist/swagger-schema.js +84 -82
- package/dist/swagger-schema.test.js +32 -12
- package/dist/utils/common-utils.d.ts +17 -0
- package/dist/utils/common-utils.js +108 -0
- package/dist/utils/di-utils.d.ts +1 -0
- package/dist/utils/di-utils.js +22 -0
- package/dist/utils/hash.d.ts +0 -2
- package/dist/utils/hash.js +1 -5
- package/dist/utils/object-utils.d.ts +11 -0
- package/dist/utils/object-utils.js +198 -0
- package/dist/utils/validation-utils.d.ts +13 -0
- package/dist/utils/validation-utils.js +119 -0
- package/dist/validation.js +1 -4
- package/dist/websocket.d.ts +3 -0
- package/dist/websocket.js +2 -1
- package/package.json +53 -40
- package/dist/application.d.ts +0 -47
- package/dist/application.js +0 -50
- package/dist/icore.d.ts +0 -226
- package/dist/icore.js +0 -968
- package/dist/icore.test.js +0 -14
- package/dist/testing.d.ts +0 -55
- package/dist/testing.js +0 -196
- /package/dist/{icore.test.d.ts → application.test.d.ts} +0 -0
package/dist/icore.d.ts
DELETED
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @copyright 2024
|
|
3
|
-
* @author Tareq Hossain
|
|
4
|
-
* @email xtrinsic96@gmail.com
|
|
5
|
-
* @url https://github.com/xtareq
|
|
6
|
-
*/
|
|
7
|
-
import { FastifyReply, FastifyRequest, HookHandlerDoneFunction, InjectOptions, LightMyRequestResponse, FastifyLoggerOptions } from "fastify";
|
|
8
|
-
import { Constructable } from "typedi";
|
|
9
|
-
import { Constructor } from "./helpers";
|
|
10
|
-
import { PathLike } from "fs";
|
|
11
|
-
import { DataSource, DataSourceOptions } from "typeorm";
|
|
12
|
-
import { AvleonMiddleware } from "./middleware";
|
|
13
|
-
import { OpenApiOptions, OpenApiUiOptions } from "./openapi";
|
|
14
|
-
import { IConfig } from "./config";
|
|
15
|
-
import { FastifyCorsOptions } from "@fastify/cors";
|
|
16
|
-
import { FastifyMultipartOptions } from "@fastify/multipart";
|
|
17
|
-
import { MultipartFile } from "./multipart";
|
|
18
|
-
import { ServerOptions } from "socket.io";
|
|
19
|
-
import { Knex } from "knex";
|
|
20
|
-
export type FuncRoute = {
|
|
21
|
-
handler: any;
|
|
22
|
-
middlewares?: any[];
|
|
23
|
-
schema?: {};
|
|
24
|
-
};
|
|
25
|
-
export interface IRequest extends FastifyRequest {
|
|
26
|
-
params: any;
|
|
27
|
-
query: any;
|
|
28
|
-
body: any;
|
|
29
|
-
headers: any;
|
|
30
|
-
user?: any;
|
|
31
|
-
}
|
|
32
|
-
export interface DoneFunction extends HookHandlerDoneFunction {
|
|
33
|
-
}
|
|
34
|
-
export interface IResponse extends FastifyReply {
|
|
35
|
-
}
|
|
36
|
-
export type TestResponseType = LightMyRequestResponse;
|
|
37
|
-
export type TestResponse = TestResponseType | Promise<TestResponseType>;
|
|
38
|
-
export interface TestApplication {
|
|
39
|
-
get: (url: string, options?: InjectOptions) => TestResponse;
|
|
40
|
-
post: (url: string, options?: InjectOptions) => TestResponse;
|
|
41
|
-
put: (url: string, options?: InjectOptions) => TestResponse;
|
|
42
|
-
patch: (url: string, options?: InjectOptions) => TestResponse;
|
|
43
|
-
delete: (url: string, options?: InjectOptions) => TestResponse;
|
|
44
|
-
options: (url: string, options?: InjectOptions) => TestResponse;
|
|
45
|
-
getController?: <T>(controller: Constructor<T>) => T;
|
|
46
|
-
}
|
|
47
|
-
export interface ParamMetaOptions {
|
|
48
|
-
index: number;
|
|
49
|
-
key: string;
|
|
50
|
-
name: string;
|
|
51
|
-
required: boolean;
|
|
52
|
-
validate: boolean;
|
|
53
|
-
dataType: any;
|
|
54
|
-
validatorClass: boolean;
|
|
55
|
-
schema?: any;
|
|
56
|
-
type: "route:param" | "route:query" | "route:body" | "route:header" | "route:user" | "route:file" | "route:files";
|
|
57
|
-
}
|
|
58
|
-
export interface ParamMetaFilesOptions {
|
|
59
|
-
index: number;
|
|
60
|
-
type: "route:files";
|
|
61
|
-
files: MultipartFile[];
|
|
62
|
-
fieldName: string;
|
|
63
|
-
}
|
|
64
|
-
export interface MethodParamMeta {
|
|
65
|
-
request: any[];
|
|
66
|
-
params: ParamMetaOptions[];
|
|
67
|
-
query: ParamMetaOptions[];
|
|
68
|
-
body: ParamMetaOptions[];
|
|
69
|
-
headers: ParamMetaOptions[];
|
|
70
|
-
currentUser: ParamMetaOptions[];
|
|
71
|
-
swagger?: OpenApiUiOptions;
|
|
72
|
-
file?: any[];
|
|
73
|
-
files?: ParamMetaFilesOptions[];
|
|
74
|
-
}
|
|
75
|
-
type StaticFileOptions = {
|
|
76
|
-
path?: PathLike;
|
|
77
|
-
prefix?: string;
|
|
78
|
-
};
|
|
79
|
-
type MultipartOptions = {
|
|
80
|
-
destination: PathLike;
|
|
81
|
-
} & FastifyMultipartOptions;
|
|
82
|
-
export type TestAppOptions = {
|
|
83
|
-
controllers: Constructor[];
|
|
84
|
-
dataSource?: DataSource;
|
|
85
|
-
};
|
|
86
|
-
export interface AvleonTestAppliction {
|
|
87
|
-
addDataSource: (dataSourceOptions: DataSourceOptions) => void;
|
|
88
|
-
getApp: (options?: TestAppOptions) => any;
|
|
89
|
-
getController: <T>(controller: Constructor<T>, deps: any[]) => T;
|
|
90
|
-
}
|
|
91
|
-
export type AutoControllerOptions = {
|
|
92
|
-
auto: true;
|
|
93
|
-
path?: string;
|
|
94
|
-
};
|
|
95
|
-
export interface IAvleonApplication {
|
|
96
|
-
isDevelopment(): boolean;
|
|
97
|
-
useCors(corsOptions?: FastifyCorsOptions): void;
|
|
98
|
-
useDataSource<T extends IConfig<R>, R = ReturnType<InstanceType<Constructable<T>>["config"]>>(ConfigClass: Constructable<T>, modifyConfig?: (config: R) => R): void;
|
|
99
|
-
useOpenApi<T extends IConfig<R>, R = ReturnType<InstanceType<Constructable<T>>["config"]>>(ConfigClass: Constructable<T>, modifyConfig?: (config: R) => R): void;
|
|
100
|
-
useMultipart(options: MultipartOptions): void;
|
|
101
|
-
useCache(options: any): void;
|
|
102
|
-
useMiddlewares<T extends AvleonMiddleware>(mclasses: Constructor<T>[]): void;
|
|
103
|
-
useAuthoriztion<T extends any>(middleware: Constructor<T>): void;
|
|
104
|
-
mapRoute<T extends (...args: any[]) => any>(method: "get" | "post" | "put" | "delete", path: string, fn: T): Promise<void>;
|
|
105
|
-
mapGet<T extends (...args: any[]) => any>(path: string, fn: T): any;
|
|
106
|
-
mapPost<T extends (...args: any[]) => any>(path: string, fn: T): any;
|
|
107
|
-
mapPut<T extends (...args: any[]) => any>(path: string, fn: T): any;
|
|
108
|
-
mapDelete<T extends (...args: any[]) => any>(path: string, fn: T): any;
|
|
109
|
-
useControllers(controllers: any[]): any;
|
|
110
|
-
useControllers(controllersOptions: AutoControllerOptions): any;
|
|
111
|
-
useControllers(controllersOrOptions: any[] | AutoControllerOptions): any;
|
|
112
|
-
useStaticFiles(options?: StaticFileOptions): void;
|
|
113
|
-
run(port?: number): Promise<void>;
|
|
114
|
-
getTestApp(): TestApplication;
|
|
115
|
-
}
|
|
116
|
-
type OpenApiConfigClass<T = any> = Constructable<IConfig<T>>;
|
|
117
|
-
type OpenApiConfigInput<T = any> = OpenApiConfigClass<T> | T;
|
|
118
|
-
type ConfigClass<T = any> = Constructable<IConfig<T>>;
|
|
119
|
-
type ConfigInput<T = any> = ConfigClass<T> | T;
|
|
120
|
-
export declare class AvleonApplication {
|
|
121
|
-
private static instance;
|
|
122
|
-
private static buildOptions;
|
|
123
|
-
private app;
|
|
124
|
-
private routeSet;
|
|
125
|
-
private alreadyRun;
|
|
126
|
-
private routes;
|
|
127
|
-
private middlewares;
|
|
128
|
-
private rMap;
|
|
129
|
-
private hasSwagger;
|
|
130
|
-
private _hasWebsocket;
|
|
131
|
-
private globalSwaggerOptions;
|
|
132
|
-
private dataSourceOptions?;
|
|
133
|
-
private controllers;
|
|
134
|
-
private authorizeMiddleware?;
|
|
135
|
-
private appConfig;
|
|
136
|
-
private dataSource?;
|
|
137
|
-
private isMapFeatures;
|
|
138
|
-
private registerControllerAuto;
|
|
139
|
-
private registerControllerPath;
|
|
140
|
-
private metaCache;
|
|
141
|
-
private multipartOptions;
|
|
142
|
-
private constructor();
|
|
143
|
-
static getApp(): AvleonApplication;
|
|
144
|
-
static getInternalApp(buildOptions: any): AvleonApplication;
|
|
145
|
-
useLogger<T = FastifyLoggerOptions>(corsOptions?: ConfigInput<T>): void;
|
|
146
|
-
isDevelopment(): boolean;
|
|
147
|
-
private initSwagger;
|
|
148
|
-
private _isConfigClass;
|
|
149
|
-
useCors<T = FastifyCorsOptions>(corsOptions?: ConfigInput<T>): void;
|
|
150
|
-
useWebSocket<T = Partial<ServerOptions>>(socketOptions: ConfigInput<T>): void;
|
|
151
|
-
useSocketIO<T = Partial<ServerOptions>>(socketOptions: ConfigInput<T>): void;
|
|
152
|
-
private _initWebSocket;
|
|
153
|
-
useOpenApi<T = OpenApiUiOptions>(configOrClass: OpenApiConfigInput<T>): void;
|
|
154
|
-
useMultipart<T extends MultipartOptions>(options: ConfigInput<T>): void;
|
|
155
|
-
useDataSource<T extends DataSourceOptions>(options: ConfigInput<T>): void;
|
|
156
|
-
useKnex<T extends Knex.Config>(options: ConfigInput<T>): void;
|
|
157
|
-
private _useCache;
|
|
158
|
-
useMiddlewares<T extends AvleonMiddleware>(mclasses: Constructor<T>[]): void;
|
|
159
|
-
useAuthoriztion<T extends any>(middleware: Constructor<T>): void;
|
|
160
|
-
useStaticFiles(options?: StaticFileOptions): void;
|
|
161
|
-
private handleMiddlewares;
|
|
162
|
-
private executeMiddlewares;
|
|
163
|
-
/**
|
|
164
|
-
* build controller
|
|
165
|
-
* @param controller
|
|
166
|
-
* @returns void
|
|
167
|
-
*/
|
|
168
|
-
private buildController;
|
|
169
|
-
/**
|
|
170
|
-
* Maps request data to controller method arguments based on decorators
|
|
171
|
-
* @param req - The incoming request object
|
|
172
|
-
* @param meta - Metadata about method parameters
|
|
173
|
-
* @returns Array of arguments to pass to the controller method
|
|
174
|
-
*/
|
|
175
|
-
private _mapArgs;
|
|
176
|
-
/**
|
|
177
|
-
* Process Meta for controlelr class methods
|
|
178
|
-
* @param prototype
|
|
179
|
-
* @param method
|
|
180
|
-
* @returns
|
|
181
|
-
*/
|
|
182
|
-
private _processMeta;
|
|
183
|
-
private _resolveControllerDir;
|
|
184
|
-
private autoControllers;
|
|
185
|
-
useControllers(controllers: Constructor[] | AutoControllerOptions): void;
|
|
186
|
-
private _mapControllers;
|
|
187
|
-
private mapFn;
|
|
188
|
-
private _handleError;
|
|
189
|
-
mapRoute<T extends (...args: any[]) => any>(method: "get" | "post" | "put" | "delete", path: string | undefined, fn: T): Promise<void>;
|
|
190
|
-
private _routeHandler;
|
|
191
|
-
mapGet<T extends (...args: any[]) => any>(path: string | undefined, fn: T): {
|
|
192
|
-
useMiddleware: <M extends AvleonMiddleware>(middlewares: Constructor<AvleonMiddleware>[]) => /*elided*/ any;
|
|
193
|
-
useOpenApi: (options: OpenApiOptions) => /*elided*/ any;
|
|
194
|
-
};
|
|
195
|
-
mapPost<T extends (...args: any[]) => any>(path: string | undefined, fn: T): {
|
|
196
|
-
useMiddleware: <M extends AvleonMiddleware>(middlewares: Constructor<AvleonMiddleware>[]) => /*elided*/ any;
|
|
197
|
-
useOpenApi: (options: OpenApiOptions) => /*elided*/ any;
|
|
198
|
-
};
|
|
199
|
-
mapPut<T extends (...args: any[]) => any>(path: string | undefined, fn: T): {
|
|
200
|
-
useMiddleware: <M extends AvleonMiddleware>(middlewares: Constructor<AvleonMiddleware>[]) => /*elided*/ any;
|
|
201
|
-
useOpenApi: (options: OpenApiOptions) => /*elided*/ any;
|
|
202
|
-
};
|
|
203
|
-
mapDelete<T extends (...args: any[]) => any>(path: string | undefined, fn: T): {
|
|
204
|
-
useMiddleware: <M extends AvleonMiddleware>(middlewares: Constructor<AvleonMiddleware>[]) => /*elided*/ any;
|
|
205
|
-
useOpenApi: (options: OpenApiOptions) => /*elided*/ any;
|
|
206
|
-
};
|
|
207
|
-
private _mapFeatures;
|
|
208
|
-
initializeDatabase(): Promise<void>;
|
|
209
|
-
handleSocket(socket: any): void;
|
|
210
|
-
run(port?: number, fn?: CallableFunction): Promise<void>;
|
|
211
|
-
getTestApp(buildOptions?: any): TestApplication;
|
|
212
|
-
}
|
|
213
|
-
export type Application = typeof AvleonApplication;
|
|
214
|
-
export declare class AvleonTest {
|
|
215
|
-
private constructor();
|
|
216
|
-
static getController<T>(controller: Constructor<T>, deps?: any[]): T;
|
|
217
|
-
static getProvider<T>(service: Constructor<T>, deps?: any[]): T;
|
|
218
|
-
static createTestApplication(options: TestAppOptions): TestApplication;
|
|
219
|
-
static from(app: AvleonApplication): TestApplication;
|
|
220
|
-
static clean(): void;
|
|
221
|
-
}
|
|
222
|
-
export declare class Avleon {
|
|
223
|
-
static createApplication(): AvleonApplication;
|
|
224
|
-
static createTestApplication(options: TestAppOptions): TestApplication;
|
|
225
|
-
}
|
|
226
|
-
export {};
|