@bool-ts/core 1.6.13 → 1.7.0

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.
Files changed (68) hide show
  1. package/.prettierrc +11 -11
  2. package/LICENSE +21 -21
  3. package/__test/controller.ts +93 -79
  4. package/__test/dispatcher.ts +16 -0
  5. package/__test/firstGuard.ts +10 -10
  6. package/__test/firstMiddleware.ts +15 -9
  7. package/__test/index.ts +8 -8
  8. package/__test/interfaces.ts +7 -7
  9. package/__test/module.ts +28 -30
  10. package/__test/repository.ts +16 -16
  11. package/__test/secondGuard.ts +10 -10
  12. package/__test/secondMiddleware.ts +15 -9
  13. package/__test/service.ts +20 -20
  14. package/bun.lockb +0 -0
  15. package/dist/decorators/arguments.d.ts +3 -3
  16. package/dist/decorators/arguments.js +3 -3
  17. package/dist/decorators/dispatcher.js +0 -3
  18. package/dist/decorators/index.d.ts +1 -1
  19. package/dist/decorators/index.js +1 -1
  20. package/dist/decorators/middleware.js +0 -3
  21. package/dist/decorators/module.d.ts +2 -4
  22. package/dist/decorators/module.js +5 -12
  23. package/dist/hooks/factory.d.ts +41 -2
  24. package/dist/hooks/factory.js +501 -406
  25. package/dist/hooks/injector.d.ts +14 -1
  26. package/dist/hooks/injector.js +3 -3
  27. package/dist/http/index.d.ts +1 -1
  28. package/dist/http/index.js +2 -1
  29. package/dist/interfaces/dispatcher.d.ts +3 -2
  30. package/dist/interfaces/middleware.d.ts +3 -2
  31. package/dist/keys/index.d.ts +2 -1
  32. package/dist/keys/index.js +2 -1
  33. package/jsconfig.json +27 -27
  34. package/package.json +3 -3
  35. package/src/decorators/arguments.ts +286 -286
  36. package/src/decorators/controller.ts +21 -21
  37. package/src/decorators/dispatcher.ts +14 -18
  38. package/src/decorators/guard.ts +18 -18
  39. package/src/decorators/http.ts +81 -81
  40. package/src/decorators/index.ts +29 -29
  41. package/src/decorators/inject.ts +13 -13
  42. package/src/decorators/injectable.ts +8 -8
  43. package/src/decorators/middleware.ts +14 -18
  44. package/src/decorators/module.ts +84 -94
  45. package/src/decorators/zodSchema.ts +19 -19
  46. package/src/entities/index.ts +5 -5
  47. package/src/entities/route.ts +327 -327
  48. package/src/entities/router.ts +35 -35
  49. package/src/entities/routerGroup.ts +34 -34
  50. package/src/hooks/factory.ts +990 -806
  51. package/src/hooks/index.ts +2 -2
  52. package/src/hooks/injector.ts +57 -57
  53. package/src/http/clientError.ts +45 -45
  54. package/src/http/index.ts +62 -61
  55. package/src/http/serverError.ts +27 -27
  56. package/src/index.ts +9 -9
  57. package/src/interfaces/context.ts +4 -4
  58. package/src/interfaces/controller.ts +1 -1
  59. package/src/interfaces/dispatcher.ts +4 -3
  60. package/src/interfaces/guard.ts +3 -3
  61. package/src/interfaces/index.ts +6 -6
  62. package/src/interfaces/middleware.ts +4 -3
  63. package/src/interfaces/module.ts +1 -1
  64. package/src/keys/index.ts +23 -22
  65. package/test.http +31 -31
  66. package/tsconfig.json +108 -108
  67. package/__test/afterDispatcher.ts +0 -9
  68. package/__test/beforeDispatcher.ts +0 -9
@@ -6,5 +6,18 @@ interface IInjector {
6
6
  set(key: TDefinition, value: any): void;
7
7
  get<T>(definition: TDefinition): T;
8
8
  }
9
- export declare const Injector: IInjector;
9
+ export declare class Injector implements IInjector {
10
+ private readonly _mapper;
11
+ /**
12
+ *
13
+ * @param constructor
14
+ */
15
+ get<T>(definition: TDefinition): any;
16
+ /**
17
+ *
18
+ * @param key
19
+ * @param value
20
+ */
21
+ set(key: TDefinition, value: any): void;
22
+ }
10
23
  export default Injector;
@@ -1,6 +1,6 @@
1
1
  import "reflect-metadata";
2
2
  import { controllerKey, dispatcherKey, guardKey, injectableKey, injectKey, middlewareKey } from "../keys";
3
- export const Injector = new (class {
3
+ export class Injector {
4
4
  _mapper = new Map();
5
5
  /**
6
6
  *
@@ -19,7 +19,7 @@ export const Injector = new (class {
19
19
  }
20
20
  // Initialize dependencies injection
21
21
  const dependencies = Reflect.getOwnMetadata(injectKey, definition) || [];
22
- const injections = dependencies.map((dependency) => Injector.get(dependency));
22
+ const injections = dependencies.map((dependency) => this.get(dependency));
23
23
  const instance = new definition(...injections);
24
24
  this._mapper.set(definition, instance);
25
25
  return instance;
@@ -32,5 +32,5 @@ export const Injector = new (class {
32
32
  set(key, value) {
33
33
  this._mapper.set(key, value);
34
34
  }
35
- })();
35
+ }
36
36
  export default Injector;
@@ -9,6 +9,6 @@ export type THttpMethods = {
9
9
  TRACE: "TRACE";
10
10
  PATCH: "PATCH";
11
11
  };
12
- export declare const jsonErrorInfer: (data: any, headers?: Headers) => Response;
12
+ export declare const jsonErrorInfer: (data: any) => Response;
13
13
  export * from "./clientError";
14
14
  export * from "./serverError";
@@ -1,6 +1,7 @@
1
1
  import { HttpClientError } from "./clientError";
2
2
  import { HttpServerError } from "./serverError";
3
- export const jsonErrorInfer = (data, headers = new Headers()) => {
3
+ export const jsonErrorInfer = (data) => {
4
+ const headers = new Headers();
4
5
  headers.set("Content-Type", "application/json");
5
6
  if (data instanceof HttpClientError || data instanceof HttpServerError) {
6
7
  return new Response(JSON.stringify(data), {
@@ -1,3 +1,4 @@
1
- export interface IDispatcher<T = any> {
2
- execute(...args: any[]): T;
1
+ export interface IDispatcher<T = any, K = any> {
2
+ open?(...args: any[]): T;
3
+ close?(...args: any[]): K;
3
4
  }
@@ -1,3 +1,4 @@
1
- export interface IMiddleware<T = any> {
2
- enforce(...args: any[]): T;
1
+ export interface IMiddleware<T = any, K = any> {
2
+ start?(...args: any[]): T;
3
+ end?(...args: any[]): K;
3
4
  }
@@ -11,7 +11,7 @@ export declare const moduleKey: unique symbol;
11
11
  export declare const controllerRouteZodSchemaKey: unique symbol;
12
12
  export declare const requestHeadersArgsKey: unique symbol;
13
13
  export declare const requestHeaderArgsKey: unique symbol;
14
- export declare const bodyArgsKey: unique symbol;
14
+ export declare const requestBodyArgsKey: unique symbol;
15
15
  export declare const paramsArgsKey: unique symbol;
16
16
  export declare const paramArgsKey: unique symbol;
17
17
  export declare const queryArgsKey: unique symbol;
@@ -19,3 +19,4 @@ export declare const requestArgsKey: unique symbol;
19
19
  export declare const responseHeadersArgsKey: unique symbol;
20
20
  export declare const contextArgsKey: unique symbol;
21
21
  export declare const routeModelArgsKey: unique symbol;
22
+ export declare const responseBodyArgsKey: unique symbol;
@@ -11,7 +11,7 @@ export const moduleKey = Symbol("__bool:module__");
11
11
  export const controllerRouteZodSchemaKey = Symbol("__bool:controller.route.zodSchema__");
12
12
  export const requestHeadersArgsKey = Symbol("__bool:arguments:requestHeaders__");
13
13
  export const requestHeaderArgsKey = Symbol("__bool:arguments:requestHeader__");
14
- export const bodyArgsKey = Symbol("__bool:arguments:body__");
14
+ export const requestBodyArgsKey = Symbol("__bool:arguments:requestBody__");
15
15
  export const paramsArgsKey = Symbol("__bool:arguments:params__");
16
16
  export const paramArgsKey = Symbol("__bool:arguments:param__");
17
17
  export const queryArgsKey = Symbol("__bool:arguments:query__");
@@ -19,3 +19,4 @@ export const requestArgsKey = Symbol("__bool:arguments:request__");
19
19
  export const responseHeadersArgsKey = Symbol("__bool:arguments:responseHeaders__");
20
20
  export const contextArgsKey = Symbol("__bool:arguments:context__");
21
21
  export const routeModelArgsKey = Symbol("__bool:arguments:routeModel__");
22
+ export const responseBodyArgsKey = Symbol("__bool:arguments:responseBody__");
package/jsconfig.json CHANGED
@@ -1,27 +1,27 @@
1
- {
2
- "compilerOptions": {
3
- // Enable latest features
4
- "lib": ["ESNext", "DOM"],
5
- "target": "ESNext",
6
- "module": "ESNext",
7
- "moduleDetection": "force",
8
- "jsx": "react-jsx",
9
- "allowJs": true,
10
-
11
- // Bundler mode
12
- "moduleResolution": "bundler",
13
- "allowImportingTsExtensions": true,
14
- "verbatimModuleSyntax": true,
15
- "noEmit": true,
16
-
17
- // Best practices
18
- "strict": true,
19
- "skipLibCheck": true,
20
- "noFallthroughCasesInSwitch": true,
21
-
22
- // Some stricter flags (disabled by default)
23
- "noUnusedLocals": false,
24
- "noUnusedParameters": false,
25
- "noPropertyAccessFromIndexSignature": false
26
- }
27
- }
1
+ {
2
+ "compilerOptions": {
3
+ // Enable latest features
4
+ "lib": ["ESNext", "DOM"],
5
+ "target": "ESNext",
6
+ "module": "ESNext",
7
+ "moduleDetection": "force",
8
+ "jsx": "react-jsx",
9
+ "allowJs": true,
10
+
11
+ // Bundler mode
12
+ "moduleResolution": "bundler",
13
+ "allowImportingTsExtensions": true,
14
+ "verbatimModuleSyntax": true,
15
+ "noEmit": true,
16
+
17
+ // Best practices
18
+ "strict": true,
19
+ "skipLibCheck": true,
20
+ "noFallthroughCasesInSwitch": true,
21
+
22
+ // Some stricter flags (disabled by default)
23
+ "noUnusedLocals": false,
24
+ "noUnusedParameters": false,
25
+ "noPropertyAccessFromIndexSignature": false
26
+ }
27
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bool-ts/core",
3
- "version": "1.6.13",
3
+ "version": "1.7.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -25,7 +25,7 @@
25
25
  },
26
26
  "devDependencies": {
27
27
  "@types/bun": "latest",
28
- "@types/qs": "^6.9.15",
29
- "typescript": "^5.5.4"
28
+ "@types/qs": "^6.9.16",
29
+ "typescript": "^5.6.2"
30
30
  }
31
31
  }