@mini2/core 1.4.9 → 1.4.10-beta.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.
package/dist/app.d.ts CHANGED
@@ -1,14 +1,17 @@
1
1
  import express, { Express } from 'express';
2
+ import { Server } from 'http';
2
3
  import { IApp } from './interfaces/app.interface';
3
4
  import { IConfig } from './interfaces/config.interface';
4
5
  import { IController } from './rest';
5
6
  import { Container } from 'inversify';
7
+ import { LoadInjectablesOptions } from './loader';
6
8
  declare class App implements IApp {
7
- private controllers;
8
9
  app: Express;
9
10
  container: Container;
10
- constructor(controllers: IController[]);
11
- init(config: IConfig): Promise<void>;
11
+ controllers: IController[];
12
+ server: Server;
13
+ constructor();
14
+ init(config: IConfig, loadInjectablesOptions?: LoadInjectablesOptions): Promise<void>;
12
15
  getApp(): express.Express;
13
16
  afterInit(standartErrorHandler?: boolean): Promise<void>;
14
17
  }
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,OAAO,EAAmC,MAAM,SAAS,CAAC;AAG5E,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAY,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,SAAS,EAA2B,MAAM,WAAW,CAAC;AAM/D,cACM,GAAI,YAAW,IAAI;IAIyB,OAAO,CAAC,WAAW;IAHpE,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;gBAEoC,WAAW,EAAE,WAAW,EAAE;IAM7E,IAAI,CAAC,MAAM,EAAE,OAAO;IAyB1B,MAAM;IAMA,SAAS,CAAC,oBAAoB,GAAC,OAAc;CAuBnD;AAED,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAAE,OAAO,EAAmC,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAG9B,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,EAAY,WAAW,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAc,MAAM,WAAW,CAAC;AAKlD,OAAO,EAAmB,sBAAsB,EAAE,MAAM,UAAU,CAAC;AAEnE,cACM,GAAI,YAAW,IAAI;IACxB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,MAAM,EAAG,MAAM,CAAC;;IAQV,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,sBAAsB,CAAC,EAAE,sBAAsB;IA4B3E,MAAM;IAIA,SAAS,CAAC,oBAAoB,GAAE,OAAc;CAiBpD;AAED,eAAe,GAAG,CAAC"}
package/dist/app.js CHANGED
@@ -8,9 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
15
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
13
  };
@@ -22,21 +19,24 @@ const rest_1 = require("./rest");
22
19
  const inversify_1 = require("inversify");
23
20
  const swagger_1 = require("./swagger");
24
21
  const types_1 = require("./types");
25
- const container_1 = __importDefault(require("./container"));
22
+ const container_1 = require("./container");
26
23
  const http_expection_1 = __importDefault(require("./expections/http.expection"));
24
+ const loader_1 = require("./loader");
27
25
  let App = class App {
28
- constructor(controllers) {
29
- this.controllers = controllers;
26
+ constructor() {
30
27
  this.app = (0, express_1.default)();
31
- this.container = container_1.default;
32
- console.log(this.controllers);
28
+ this.controllers = [];
29
+ this.container = container_1.container;
33
30
  }
34
- async init(config) {
31
+ async init(config, loadInjectablesOptions) {
32
+ (0, loader_1.loadInjectables)(loadInjectablesOptions);
33
+ (0, container_1.bindDiscovered)();
34
+ this.controllers = container_1.container.getAll(types_1.MINI_TYPES.IController);
35
35
  this.app.use(express_1.default.json());
36
36
  this.app.use(express_1.default.urlencoded({ extended: true }));
37
37
  this.app.use((0, cors_1.default)());
38
38
  this.app.use((0, morgan_1.default)('dev'));
39
- this.app.listen(config.port, () => {
39
+ this.server = this.app.listen(config.port, () => {
40
40
  console.log(`Server is running on port ${config.port}`);
41
41
  });
42
42
  const swaggerIntegration = new swagger_1.SwaggerIntegration({
@@ -66,10 +66,10 @@ let App = class App {
66
66
  res.status(error.code).json(error.messageJson);
67
67
  }
68
68
  else {
69
- console.error("Unexpected error:", error);
69
+ console.error('Unexpected error:', error);
70
70
  res.status(500).json({
71
71
  errorId: 1,
72
- message: "Some error happen",
72
+ message: 'Some error happen',
73
73
  });
74
74
  }
75
75
  });
@@ -78,8 +78,7 @@ let App = class App {
78
78
  };
79
79
  App = __decorate([
80
80
  (0, inversify_1.injectable)(),
81
- __param(0, (0, inversify_1.multiInject)(types_1.MINI_TYPES.IController)),
82
- __metadata("design:paramtypes", [Array])
81
+ __metadata("design:paramtypes", [])
83
82
  ], App);
84
83
  exports.default = App;
85
84
  //# sourceMappingURL=app.js.map
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,17 @@
1
+ import type { ServiceIdentifier } from 'inversify';
1
2
  import { Container } from 'inversify';
2
- declare const container: Container;
3
- export default container;
3
+ export declare const container: Container;
4
+ type Scope = 'Singleton' | 'Transient' | 'Request';
5
+ export type DiscoveredBinding = {
6
+ token: ServiceIdentifier<any>;
7
+ target: new (...args: any[]) => any;
8
+ scope: Scope;
9
+ };
10
+ export declare function AutoBind(token: DiscoveredBinding['token'], opts?: {
11
+ scope?: Scope;
12
+ }): (target: any) => void;
13
+ export declare const bindDiscovered: () => {
14
+ count: number;
15
+ };
16
+ export {};
4
17
  //# sourceMappingURL=container.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../container.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,QAAA,MAAM,SAAS,WAAkB,CAAC;AAGlC,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../container.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,eAAO,MAAM,SAAS,WAGpB,CAAC;AAEH,KAAK,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IACpC,KAAK,EAAE,KAAK,CAAC;CACb,CAAC;AAWF,wBAAgB,QAAQ,CACvB,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,EACjC,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,IAIP,QAAQ,GAAG,UAI5B;AAED,eAAO,MAAM,cAAc;;CAe1B,CAAC"}
package/dist/container.js CHANGED
@@ -1,6 +1,42 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bindDiscovered = exports.container = void 0;
4
+ exports.AutoBind = AutoBind;
3
5
  const inversify_1 = require("inversify");
4
- const container = new inversify_1.Container();
5
- exports.default = container;
6
+ exports.container = new inversify_1.Container({
7
+ defaultScope: 'Singleton',
8
+ autobind: true,
9
+ });
10
+ const DISCOVERY_KEY = Symbol.for('DI_DISCOVERY_REGISTRY');
11
+ // Global registry: import edilen her dosyada tek bir listeye yazabilelim
12
+ function getRegistry() {
13
+ const g = globalThis;
14
+ if (!g[DISCOVERY_KEY])
15
+ g[DISCOVERY_KEY] = [];
16
+ return g[DISCOVERY_KEY];
17
+ }
18
+ function AutoBind(token, opts) {
19
+ const scope = opts?.scope ?? 'Singleton';
20
+ return function (target) {
21
+ const reg = getRegistry();
22
+ reg.push({ token, target, scope });
23
+ };
24
+ }
25
+ const bindDiscovered = () => {
26
+ const reg = getRegistry();
27
+ for (const b of reg) {
28
+ // aynı token birden fazla kez gelirse tekrar bind etmeyelim
29
+ if (exports.container.isBound(b.token))
30
+ continue;
31
+ const binding = exports.container.bind(b.token).to(b.target);
32
+ if (b.scope === 'Singleton')
33
+ binding.inSingletonScope();
34
+ if (b.scope === 'Transient')
35
+ binding.inTransientScope();
36
+ if (b.scope === 'Request')
37
+ binding.inRequestScope();
38
+ }
39
+ return { count: reg.length };
40
+ };
41
+ exports.bindDiscovered = bindDiscovered;
6
42
  //# sourceMappingURL=container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../container.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AAEtC,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAC;AAGlC,kBAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"container.js","sourceRoot":"","sources":["../container.ts"],"names":[],"mappings":";;;AAyBA,4BAUC;AAjCD,yCAAsC;AACzB,QAAA,SAAS,GAAG,IAAI,qBAAS,CAAC;IACtC,YAAY,EAAE,WAAW;IACzB,QAAQ,EAAE,IAAI;CACd,CAAC,CAAC;AAUH,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;AAE1D,yEAAyE;AACzE,SAAS,WAAW;IACnB,MAAM,CAAC,GAAG,UAAiB,CAAC;IAC5B,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC;QAAE,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;IAC7C,OAAO,CAAC,CAAC,aAAa,CAAwB,CAAC;AAChD,CAAC;AAED,SAAgB,QAAQ,CACvB,KAAiC,EACjC,IAAwB;IAExB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,WAAW,CAAC;IAEzC,OAAO,UAAU,MAAW;QAC3B,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;QAC1B,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC;AACH,CAAC;AAEM,MAAM,cAAc,GAAG,GAAG,EAAE;IAClC,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACrB,4DAA4D;QAC5D,IAAI,iBAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QAEzC,MAAM,OAAO,GAAG,iBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAErD,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW;YAAE,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACxD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,cAAc,EAAE,CAAC;IACrD,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;AAC9B,CAAC,CAAC;AAfW,QAAA,cAAc,kBAezB"}
package/dist/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import App from './app';
2
- import container from './container';
2
+ import { container, AutoBind } from './container';
3
3
  import { IApp } from './interfaces/app.interface';
4
4
  import { MINI_TYPES } from './types';
5
5
  export * from 'inversify';
6
6
  export { container };
7
+ export { AutoBind };
7
8
  export { IApp };
8
9
  export { App };
9
10
  export { MINI_TYPES };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,cAAe,WAAW,CAAC;AAC3B,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,OAAO,EAAE,GAAG,EAAE,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAG7B,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGvE,cAAc,SAAS,CAAC;AAGxB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,QAAQ,CAAC;AAGvB,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,OAAO,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAIrC,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,OAAO,EAAE,IAAI,EAAE,CAAC;AAChB,OAAO,EAAE,GAAG,EAAE,CAAC;AACf,OAAO,EAAE,UAAU,EAAE,CAAC;AAGtB,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAGlD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AAGpD,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAG7B,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGvE,cAAc,SAAS,CAAC;AAGxB,cAAc,oBAAoB,CAAC;AAGnC,cAAc,QAAQ,CAAC;AAGvB,cAAc,WAAW,CAAC"}
package/dist/index.js CHANGED
@@ -17,11 +17,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.HttpException = exports.MINI_TYPES = exports.App = exports.container = void 0;
20
+ exports.HttpException = exports.MINI_TYPES = exports.App = exports.AutoBind = exports.container = void 0;
21
21
  const app_1 = __importDefault(require("./app"));
22
22
  exports.App = app_1.default;
23
- const container_1 = __importDefault(require("./container"));
24
- exports.container = container_1.default;
23
+ const container_1 = require("./container");
24
+ Object.defineProperty(exports, "container", { enumerable: true, get: function () { return container_1.container; } });
25
+ Object.defineProperty(exports, "AutoBind", { enumerable: true, get: function () { return container_1.AutoBind; } });
25
26
  const types_1 = require("./types");
26
27
  Object.defineProperty(exports, "MINI_TYPES", { enumerable: true, get: function () { return types_1.MINI_TYPES; } });
27
28
  // Main Application class
@@ -52,5 +53,5 @@ __exportStar(require("./response-builder"), exports);
52
53
  __exportStar(require("./rest"), exports);
53
54
  // Swagger integration
54
55
  __exportStar(require("./swagger"), exports);
55
- container_1.default.bind(types_1.MINI_TYPES.IApp).to(app_1.default).inSingletonScope();
56
+ container_1.container.bind(types_1.MINI_TYPES.IApp).to(app_1.default).inSingletonScope();
56
57
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AAUf,cAVF,aAAG,CAUE;AATZ,4DAAoC;AAO3B,oBAPF,mBAAS,CAOE;AALlB,mCAAqC;AAQ5B,2FARA,kBAAU,OAQA;AAPnB,yBAAyB;AAEzB,mCAAmC;AACnC,4CAA2B;AAM3B,aAAa;AACb,6DAA2C;AAC3C,uEAAqD;AACrD,gEAA8C;AAC9C,+DAA6C;AAC7C,oEAAkD;AAElD,cAAc;AACd,yEAAuD;AACvD,sEAAoD;AACpD,sEAAoD;AAEpD,QAAQ;AACR,sDAAoC;AACpC,+CAA6B;AAE7B,aAAa;AACb,8DAA4C;AAC5C,8DAAuE;AAA9D,gIAAA,OAAO,OAAiB;AAEjC,QAAQ;AACR,0CAAwB;AAExB,mBAAmB;AACnB,qDAAmC;AAEnC,iBAAiB;AACjB,yCAAuB;AAEvB,sBAAsB;AACtB,4CAA0B;AAE1B,mBAAS,CAAC,IAAI,CAAO,kBAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gDAAwB;AAWf,cAXF,aAAG,CAWE;AAVZ,2CAAkD;AAOzC,0FAPA,qBAAS,OAOA;AACT,yFARW,oBAAQ,OAQX;AANjB,mCAAqC;AAS5B,2FATA,kBAAU,OASA;AARnB,yBAAyB;AAEzB,mCAAmC;AACnC,4CAA0B;AAO1B,aAAa;AACb,6DAA2C;AAC3C,uEAAqD;AACrD,gEAA8C;AAC9C,+DAA6C;AAC7C,oEAAkD;AAElD,cAAc;AACd,yEAAuD;AACvD,sEAAoD;AACpD,sEAAoD;AAEpD,QAAQ;AACR,sDAAoC;AACpC,+CAA6B;AAE7B,aAAa;AACb,8DAA4C;AAC5C,8DAAuE;AAA9D,gIAAA,OAAO,OAAiB;AAEjC,QAAQ;AACR,0CAAwB;AAExB,mBAAmB;AACnB,qDAAmC;AAEnC,iBAAiB;AACjB,yCAAuB;AAEvB,sBAAsB;AACtB,4CAA0B;AAE1B,qBAAS,CAAC,IAAI,CAAO,kBAAU,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAG,CAAC,CAAC,gBAAgB,EAAE,CAAC"}
@@ -1,7 +1,12 @@
1
+ import { IController } from '../rest';
1
2
  import { IConfig } from './config.interface';
2
3
  import { Express } from 'express';
4
+ import { Server } from 'http';
5
+ import { LoadInjectablesOptions } from '../loader';
3
6
  export interface IApp {
4
- init(config: IConfig): Promise<void>;
7
+ server: Server;
8
+ controllers: IController[];
9
+ init(config: IConfig, loadInjectablesOptions?: LoadInjectablesOptions): Promise<void>;
5
10
  afterInit(standartErrorHandler?: boolean): Promise<void>;
6
11
  getApp(): Express;
7
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.interface.d.ts","sourceRoot":"","sources":["../../interfaces/app.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,MAAM,WAAW,IAAI;IACpB,IAAI,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,CAAC,oBAAoB,CAAC,EAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,IAAG,OAAO,CAAC;CACjB"}
1
+ {"version":3,"file":"app.interface.d.ts","sourceRoot":"","sources":["../../interfaces/app.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACnD,MAAM,WAAW,IAAI;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,IAAI,CACH,MAAM,EAAE,OAAO,EACf,sBAAsB,CAAC,EAAE,sBAAsB,GAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,SAAS,CAAC,oBAAoB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD,MAAM,IAAI,OAAO,CAAC;CAClB"}
@@ -1 +1 @@
1
- {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,QAAA,MAAM,MAAM,EAAE,MAiBb,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"jest.config.d.ts","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAEnC,QAAA,MAAM,MAAM,EAAE,MAkBb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -4,6 +4,7 @@ const config = {
4
4
  preset: 'ts-jest',
5
5
  testEnvironment: 'node',
6
6
  roots: ['<rootDir>/__tests__'],
7
+ testMatch: ['**/*.test.ts'],
7
8
  moduleFileExtensions: ['ts', 'tsx', 'js', 'json'],
8
9
  transform: {
9
10
  '^.+\\.tsx?$': [
@@ -1 +1 @@
1
- {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAAW;IACrB,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;IACvB,KAAK,EAAE,CAAC,qBAAqB,CAAC;IAC9B,oBAAoB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;IACjD,SAAS,EAAE;QACT,aAAa,EAAE;YACb,SAAS;YACT;gBACE,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,KAAK;aACvB;SACF;KACF;IACD,kBAAkB,EAAE,CAAC,yBAAyB,CAAC;IAC/C,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF,kBAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"jest.config.js","sourceRoot":"","sources":["../jest.config.ts"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAAW;IACtB,MAAM,EAAE,SAAS;IACjB,eAAe,EAAE,MAAM;IACvB,KAAK,EAAE,CAAC,qBAAqB,CAAC;IAC9B,SAAS,EAAE,CAAC,cAAc,CAAC;IAC3B,oBAAoB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC;IACjD,SAAS,EAAE;QACV,aAAa,EAAE;YACd,SAAS;YACT;gBACC,QAAQ,EAAE,oBAAoB;gBAC9B,WAAW,EAAE,IAAI;gBACjB,eAAe,EAAE,KAAK;aACtB;SACD;KACD;IACD,kBAAkB,EAAE,CAAC,yBAAyB,CAAC;IAC/C,WAAW,EAAE,KAAK;CAClB,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,11 @@
1
+ export type LoadInjectablesOptions = {
2
+ srcDir?: string;
3
+ distDir?: string;
4
+ patterns?: string[];
5
+ runOnlySrc?: boolean;
6
+ };
7
+ export declare function loadInjectables(opts?: LoadInjectablesOptions): {
8
+ files: string[];
9
+ count: number;
10
+ };
11
+ //# sourceMappingURL=loader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../loader.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AACF,wBAAgB,eAAe,CAAC,IAAI,CAAC,EAAE,sBAAsB;;;EAwB5D"}
package/dist/loader.js ADDED
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.loadInjectables = loadInjectables;
7
+ // load-injectables.ts
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const fast_glob_1 = __importDefault(require("fast-glob"));
10
+ function loadInjectables(opts) {
11
+ const srcDir = opts?.srcDir ?? 'src';
12
+ const distDir = opts?.distDir ?? 'dist';
13
+ const patterns = opts?.patterns ?? ['**/*.(ts|js)'];
14
+ const isProd = process.env.NODE_ENV === 'production';
15
+ const baseDir = node_path_1.default.join(opts?.runOnlySrc ? srcDir : isProd ? distDir : srcDir);
16
+ // TS dev: .ts, prod: .js
17
+ const exts = isProd ? ['js', 'cjs', 'mjs'] : ['ts', 'mts', 'cts'];
18
+ const files = fast_glob_1.default.sync(exts.flatMap((ext) => patterns.map((p) => node_path_1.default.join(baseDir, p.replace('(ts|js)', ext)))), {
19
+ onlyFiles: true,
20
+ unique: true,
21
+ });
22
+ files.forEach((f) => require(f));
23
+ return { files, count: files.length };
24
+ }
25
+ //# sourceMappingURL=loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../loader.ts"],"names":[],"mappings":";;;;;AASA,0CAwBC;AAjCD,sBAAsB;AACtB,0DAA6B;AAC7B,0DAA2B;AAO3B,SAAgB,eAAe,CAAC,IAA6B;IAC5D,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,MAAM,CAAC;IACxC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,CAAC,cAAc,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;IACrD,MAAM,OAAO,GAAG,mBAAI,CAAC,IAAI,CACxB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CACrD,CAAC;IACF,yBAAyB;IACzB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAElE,MAAM,KAAK,GAAG,mBAAE,CAAC,IAAI,CACpB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,CAClE,EACD;QACC,SAAS,EAAE,IAAI;QACf,MAAM,EAAE,IAAI;KACZ,CACD,CAAC;IAEF,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;AACvC,CAAC"}
package/package.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "license": "ISC",
26
26
  "description": "Mini Express Framework - Lightweight and modular Express.js framework with TypeScript support",
27
27
  "name": "@mini2/core",
28
- "version": "1.4.9",
28
+ "version": "1.4.10-beta.0",
29
29
  "author": "Mustafa Çolakoglu <mustafacolakoglu94@gmail.com> (https://github.com/mustafa-colakoglu)",
30
30
  "dependencies": {
31
31
  "class-transformer": "^0.5.1",
@@ -33,6 +33,7 @@
33
33
  "class-validator-jsonschema": "^5.0.2",
34
34
  "cors": "^2.8.5",
35
35
  "express": "^5.1.0",
36
+ "fast-glob": "^3.3.3",
36
37
  "inversify": "^7.6.1",
37
38
  "morgan": "^1.10.0",
38
39
  "reflect-metadata": "^0.2.2",