@typetron/framework 0.3.6 → 0.3.7

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 (81) hide show
  1. package/Container/Contracts.d.ts +1 -1
  2. package/Container/Contracts.d.ts.map +1 -1
  3. package/Framework/Config/AppConfig.d.ts +5 -2
  4. package/Framework/Config/AppConfig.d.ts.map +1 -1
  5. package/Framework/Config/DatabaseConfig.js +3 -3
  6. package/Framework/Config/DatabaseConfig.js.map +1 -1
  7. package/Framework/Middleware/StaticAssetsMiddleware.d.ts +1 -1
  8. package/Framework/Middleware/StaticAssetsMiddleware.d.ts.map +1 -1
  9. package/Framework/Middleware/StaticAssetsMiddleware.js +42 -24
  10. package/Framework/Middleware/StaticAssetsMiddleware.js.map +1 -1
  11. package/package.json +1 -1
  12. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.d.ts +2 -0
  13. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.d.ts.map +1 -0
  14. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.js +166 -0
  15. package/tests/Framework/Middleware/StaticAssetsMiddlewareTest.js.map +1 -0
  16. package/tests/Router/HttpHandlerTest.js +4 -4
  17. package/tests/Router/HttpHandlerTest.js.map +1 -1
  18. package/Web/Contracts.d.ts +0 -4
  19. package/Web/Contracts.d.ts.map +0 -1
  20. package/Web/Contracts.js +0 -3
  21. package/Web/Contracts.js.map +0 -1
  22. package/Web/ErrorHandler.d.ts +0 -10
  23. package/Web/ErrorHandler.d.ts.map +0 -1
  24. package/Web/ErrorHandler.js +0 -52
  25. package/Web/ErrorHandler.js.map +0 -1
  26. package/Web/ErrorHandlerInterface.d.ts +0 -6
  27. package/Web/ErrorHandlerInterface.d.ts.map +0 -1
  28. package/Web/ErrorHandlerInterface.js +0 -7
  29. package/Web/ErrorHandlerInterface.js.map +0 -1
  30. package/Web/Errors/HttpError.d.ts +0 -8
  31. package/Web/Errors/HttpError.d.ts.map +0 -1
  32. package/Web/Errors/HttpError.js +0 -16
  33. package/Web/Errors/HttpError.js.map +0 -1
  34. package/Web/Handler.d.ts +0 -11
  35. package/Web/Handler.d.ts.map +0 -1
  36. package/Web/Handler.js +0 -52
  37. package/Web/Handler.js.map +0 -1
  38. package/Web/Request.d.ts +0 -25
  39. package/Web/Request.d.ts.map +0 -1
  40. package/Web/Request.js +0 -152
  41. package/Web/Request.js.map +0 -1
  42. package/Web/Response.d.ts +0 -16
  43. package/Web/Response.d.ts.map +0 -1
  44. package/Web/Response.js +0 -51
  45. package/Web/Response.js.map +0 -1
  46. package/Web/index.d.ts +0 -84
  47. package/Web/index.d.ts.map +0 -1
  48. package/Web/index.js +0 -100
  49. package/Web/index.js.map +0 -1
  50. package/Web-old/Contracts.d.ts +0 -4
  51. package/Web-old/Contracts.d.ts.map +0 -1
  52. package/Web-old/Contracts.js +0 -3
  53. package/Web-old/Contracts.js.map +0 -1
  54. package/Web-old/ErrorHandler.d.ts +0 -10
  55. package/Web-old/ErrorHandler.d.ts.map +0 -1
  56. package/Web-old/ErrorHandler.js +0 -52
  57. package/Web-old/ErrorHandler.js.map +0 -1
  58. package/Web-old/ErrorHandlerInterface.d.ts +0 -6
  59. package/Web-old/ErrorHandlerInterface.d.ts.map +0 -1
  60. package/Web-old/ErrorHandlerInterface.js +0 -7
  61. package/Web-old/ErrorHandlerInterface.js.map +0 -1
  62. package/Web-old/Errors/HttpError.d.ts +0 -8
  63. package/Web-old/Errors/HttpError.d.ts.map +0 -1
  64. package/Web-old/Errors/HttpError.js +0 -16
  65. package/Web-old/Errors/HttpError.js.map +0 -1
  66. package/Web-old/Handler.d.ts +0 -16
  67. package/Web-old/Handler.d.ts.map +0 -1
  68. package/Web-old/Handler.js +0 -132
  69. package/Web-old/Handler.js.map +0 -1
  70. package/Web-old/Request.d.ts +0 -25
  71. package/Web-old/Request.d.ts.map +0 -1
  72. package/Web-old/Request.js +0 -152
  73. package/Web-old/Request.js.map +0 -1
  74. package/Web-old/Response.d.ts +0 -16
  75. package/Web-old/Response.d.ts.map +0 -1
  76. package/Web-old/Response.js +0 -51
  77. package/Web-old/Response.js.map +0 -1
  78. package/Web-old/index.d.ts +0 -84
  79. package/Web-old/index.d.ts.map +0 -1
  80. package/Web-old/index.js +0 -100
  81. package/Web-old/index.js.map +0 -1
@@ -1,3 +1,3 @@
1
1
  import { Abstract, Constructor } from '../Support';
2
- export declare type ServiceIdentifier<T> = (string | Constructor<T> | Abstract<T> | Symbol);
2
+ export declare type ServiceIdentifier<T> = string | Constructor<T> | Abstract<T> | Symbol;
3
3
  //# sourceMappingURL=Contracts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Contracts.d.ts","sourceRoot":"","sources":["../../Container/Contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAElD,oBAAY,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"Contracts.d.ts","sourceRoot":"","sources":["../../Container/Contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAElD,oBAAY,iBAAiB,CAAC,CAAC,IAAI,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC"}
@@ -9,7 +9,10 @@ export declare class AppConfig extends BaseConfig<AppConfig> {
9
9
  middleware: Abstract<MiddlewareInterface>[];
10
10
  providers: Type<Provider>[];
11
11
  staticAssets?: {
12
- [key: string]: string | string[];
13
- };
12
+ url: string;
13
+ path: string;
14
+ basePath?: boolean;
15
+ indexFile?: string;
16
+ }[];
14
17
  }
15
18
  //# sourceMappingURL=AppConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppConfig.d.ts","sourceRoot":"","sources":["../../../Framework/Config/AppConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,qBAAa,SAAU,SAAQ,UAAU,CAAC,SAAS,CAAC;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAG,CAAA;IAC5B,YAAY,CAAC,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAC,CAAA;CACpD"}
1
+ {"version":3,"file":"AppConfig.d.ts","sourceRoot":"","sources":["../../../Framework/Config/AppConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC,qBAAa,SAAU,SAAQ,UAAU,CAAC,SAAS,CAAC;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAA;IAC3C,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAG,CAAA;IAC5B,YAAY,CAAC,EAAE;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,EAAE,CAAA;CACvF"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DatabaseConfig = void 0;
4
4
  const BaseConfig_1 = require("./BaseConfig");
5
- const Drivers_1 = require("@Typetron/Database/Drivers");
5
+ const Database_1 = require("@Typetron/Database");
6
6
  class DatabaseConfig extends BaseConfig_1.BaseConfig {
7
7
  constructor() {
8
8
  var _a;
@@ -11,8 +11,8 @@ class DatabaseConfig extends BaseConfig_1.BaseConfig {
11
11
  this.migrationsDirectory = 'migrations';
12
12
  this.driver = (_a = process.env.databaseDriver) !== null && _a !== void 0 ? _a : 'sqlite';
13
13
  this.drivers = {
14
- sqlite: () => { var _a; return new Drivers_1.SqliteDriver((_a = process.env.database) !== null && _a !== void 0 ? _a : 'database.sqlite'); },
15
- mysql: () => new Drivers_1.MysqlDriver({
14
+ sqlite: () => { var _a; return new Database_1.SqliteDriver((_a = process.env.database) !== null && _a !== void 0 ? _a : 'database.sqlite'); },
15
+ mysql: () => new Database_1.MysqlDriver({
16
16
  host: process.env.databaseHost,
17
17
  user: process.env.databaseUser,
18
18
  password: process.env.databasePassword,
@@ -1 +1 @@
1
- {"version":3,"file":"DatabaseConfig.js","sourceRoot":"","sources":["../../../Framework/Config/DatabaseConfig.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,wDAAsE;AAGtE,MAAa,cAAe,SAAQ,uBAA0B;IAA9D;;;QACI,sBAAiB,GAAG,KAAK,CAAA;QAEzB,wBAAmB,GAAG,YAAY,CAAA;QAClC,WAAM,SAA0B,OAAO,CAAC,GAAG,CAAC,cAAuC,mCAAI,QAAQ,CAAA;QAE/F,YAAO,GAAyC;YAC5C,MAAM,EAAE,GAAG,EAAE,WAAC,OAAA,IAAI,sBAAY,OAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,iBAAiB,CAAC,CAAA,EAAA;YACzE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAW,CAAC;gBACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;gBAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;gBAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;aACjC,CAAC;SACL,CAAA;IACL,CAAC;CAAA;AAfD,wCAeC"}
1
+ {"version":3,"file":"DatabaseConfig.js","sourceRoot":"","sources":["../../../Framework/Config/DatabaseConfig.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,iDAA8D;AAG9D,MAAa,cAAe,SAAQ,uBAA0B;IAA9D;;;QACI,sBAAiB,GAAG,KAAK,CAAA;QAEzB,wBAAmB,GAAG,YAAY,CAAA;QAClC,WAAM,SAA0B,OAAO,CAAC,GAAG,CAAC,cAAuC,mCAAI,QAAQ,CAAA;QAE/F,YAAO,GAAyC;YAC5C,MAAM,EAAE,GAAG,EAAE,WAAC,OAAA,IAAI,uBAAY,OAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,mCAAI,iBAAiB,CAAC,CAAA,EAAA;YACzE,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAW,CAAC;gBACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;gBAC9B,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;gBAC9B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB;gBACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;aACjC,CAAC;SACL,CAAA;IACL,CAAC;CAAA;AAfD,wCAeC"}
@@ -10,6 +10,6 @@ export declare class StaticAssetsMiddleware implements MiddlewareInterface {
10
10
  };
11
11
  handle(request: Request, next: RequestHandler): Promise<Response<any>>;
12
12
  loadStaticAsset(error: RouteNotFoundError, request: Request): Promise<Response>;
13
- getExtension(string: string): string | undefined;
13
+ private getResponse;
14
14
  }
15
15
  //# sourceMappingURL=StaticAssetsMiddleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticAssetsMiddleware.d.ts","sourceRoot":"","sources":["../../../Framework/Middleware/StaticAssetsMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAQ,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,qBACa,sBAAuB,YAAW,mBAAmB;IAG9D,SAAS,EAAE,SAAS,CAAA;IAGpB,OAAO,EAAE,OAAO,CAAA;IAEhB,SAAS,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CASjC;IAEK,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc;IAW7C,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IA4BrF,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAOnD"}
1
+ {"version":3,"file":"StaticAssetsMiddleware.d.ts","sourceRoot":"","sources":["../../../Framework/Middleware/StaticAssetsMiddleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AACtF,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AACvC,OAAO,EAAQ,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAGrC,qBACa,sBAAuB,YAAW,mBAAmB;IAG9D,SAAS,EAAE,SAAS,CAAA;IAGpB,OAAO,EAAE,OAAO,CAAA;IAEhB,SAAS,EAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAC,CASjC;IAEK,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc;IAW7C,eAAe,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;YA4BvE,WAAW;CAM5B"}
@@ -1,10 +1,29 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
2
14
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
15
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
16
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
17
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
18
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
19
  };
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
8
27
  var __metadata = (this && this.__metadata) || function (k, v) {
9
28
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
29
  };
@@ -15,6 +34,7 @@ const Router_1 = require("../../Router");
15
34
  const Storage_1 = require("../../Storage");
16
35
  const Http_1 = require("../../Router/Http");
17
36
  const Config_1 = require("../Config");
37
+ const path = __importStar(require("path"));
18
38
  let StaticAssetsMiddleware = class StaticAssetsMiddleware {
19
39
  constructor() {
20
40
  this.mimeTypes = {
@@ -40,36 +60,34 @@ let StaticAssetsMiddleware = class StaticAssetsMiddleware {
40
60
  }
41
61
  }
42
62
  async loadStaticAsset(error, request) {
43
- const assetsDirectories = this.appConfig.staticAssets;
44
- for (const path in assetsDirectories) {
45
- let directories = assetsDirectories[path];
46
- if (typeof directories === 'string') {
47
- directories = [directories];
63
+ var _a, _b;
64
+ const configs = (_a = this.appConfig.staticAssets) !== null && _a !== void 0 ? _a : [];
65
+ for (const config of configs) {
66
+ if (!request.uri.match(config.url)) {
67
+ continue;
48
68
  }
49
- for (const directory of directories) {
50
- const uri = path ? request.uri.replace(`/${path}`, '') : request.uri;
51
- let realPath = directory + uri;
52
- let extension = this.getExtension(uri);
53
- if (!extension) {
54
- realPath += '/index.html';
55
- extension = 'html';
56
- }
57
- if (!await this.storage.exists(realPath)) {
58
- continue;
69
+ let realPath = path.join(config.path, request.uri);
70
+ let extension = path.extname(realPath).substring(1);
71
+ if (!extension) {
72
+ realPath = path.join(realPath, 'index.html');
73
+ extension = 'html';
74
+ }
75
+ if (!await this.storage.exists(realPath)) {
76
+ if (config.basePath) {
77
+ const basePath = path.join(config.path, (_b = config.indexFile) !== null && _b !== void 0 ? _b : 'index.html');
78
+ return this.getResponse(basePath);
59
79
  }
60
- const file = await this.storage.read(realPath);
61
- const contentType = this.mimeTypes[extension || 'application/octet-stream'] || this.mimeTypes.txt;
62
- return new Http_1.Response(file, Http_1.Http.Status.OK, { 'Content-type': contentType });
80
+ continue;
63
81
  }
82
+ return this.getResponse(realPath, extension);
64
83
  }
65
84
  throw error;
66
85
  }
67
- getExtension(string) {
68
- const parts = string.split('.');
69
- if (parts.length === 1) {
70
- return undefined;
71
- }
72
- return parts.pop();
86
+ async getResponse(filePath, extension) {
87
+ extension = extension !== null && extension !== void 0 ? extension : path.extname(filePath).substring(1);
88
+ const file = await this.storage.read(filePath);
89
+ const contentType = this.mimeTypes[extension || 'application/octet-stream'] || this.mimeTypes.txt;
90
+ return new Http_1.Response(file, Http_1.Http.Status.OK, { 'Content-type': contentType });
73
91
  }
74
92
  };
75
93
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"StaticAssetsMiddleware.js","sourceRoot":"","sources":["../../../Framework/Middleware/StaticAssetsMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAoD;AACpD,yCAAsF;AACtF,2CAAuC;AACvC,4CAA2D;AAC3D,sCAAqC;AAGrC,IAAa,sBAAsB,GAAnC,MAAa,sBAAsB;IAAnC;QAQI,cAAS,GAA4B;YACjC,KAAK,EAAE,YAAY;YACnB,IAAI,EAAE,iBAAiB;YACvB,MAAM,EAAE,WAAW;YACnB,KAAK,EAAE,UAAU;YACjB,KAAK,EAAE,YAAY;YACnB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,WAAW;SACrB,CAAA;IAgDL,CAAC;IA9CG,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,IAAoB;QAC/C,IAAI;YACA,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,CAAA;SAC7B;QAAC,OAAO,KAAK,EAAE;YACZ,IAAI,OAAO,CAAC,MAAM,KAAK,WAAI,CAAC,MAAM,CAAC,GAAG,IAAI,KAAK,YAAY,2BAAkB,EAAE;gBAC3E,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;aAC9C;YACD,MAAM,KAAK,CAAA;SACd;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAyB,EAAE,OAAgB;QAC7D,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAA;QACrD,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE;YAClC,IAAI,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAA;YACzC,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBACjC,WAAW,GAAG,CAAC,WAAW,CAAC,CAAA;aAC9B;YACD,KAAK,MAAM,SAAS,IAAI,WAAW,EAAE;gBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;gBACpE,IAAI,QAAQ,GAAG,SAAS,GAAG,GAAG,CAAA;gBAC9B,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;gBACtC,IAAI,CAAC,SAAS,EAAE;oBACZ,QAAQ,IAAI,aAAa,CAAA;oBACzB,SAAS,GAAG,MAAM,CAAA;iBACrB;gBAED,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;oBACtC,SAAQ;iBACX;gBACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,0BAA0B,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAA;gBACjG,OAAO,IAAI,eAAQ,CAAC,IAAI,EAAE,WAAI,CAAC,MAAM,CAAC,EAAE,EAAE,EAAC,cAAc,EAAE,WAAW,EAAC,CAAC,CAAA;aAC3E;SACJ;QAED,MAAM,KAAK,CAAA;IACf,CAAC;IAED,YAAY,CAAC,MAAc;QACvB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,SAAS,CAAA;SACnB;QACD,OAAO,KAAK,CAAC,GAAG,EAAE,CAAA;IACtB,CAAC;CACJ,CAAA;AA9DG;IADC,kBAAM,EAAE;8BACE,kBAAS;yDAAA;AAGpB;IADC,kBAAM,EAAE;8BACA,iBAAO;uDAAA;AANP,sBAAsB;IADlC,sBAAU,EAAE;GACA,sBAAsB,CAiElC;AAjEY,wDAAsB"}
1
+ {"version":3,"file":"StaticAssetsMiddleware.js","sourceRoot":"","sources":["../../../Framework/Middleware/StaticAssetsMiddleware.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@typetron/framework",
3
3
  "description": "Modern Node.js framework for modern apps written in Typescript",
4
4
  "license": "MIT",
5
- "version": "0.3.6",
5
+ "version": "0.3.7",
6
6
  "keywords": [
7
7
  "typetron",
8
8
  "framework",
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=StaticAssetsMiddlewareTest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticAssetsMiddlewareTest.d.ts","sourceRoot":"","sources":["../../../../tests/Framework/Middleware/StaticAssetsMiddlewareTest.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
15
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
16
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
17
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
18
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
19
+ };
20
+ var __importStar = (this && this.__importStar) || function (mod) {
21
+ if (mod && mod.__esModule) return mod;
22
+ var result = {};
23
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
24
+ __setModuleDefault(result, mod);
25
+ return result;
26
+ };
27
+ var __metadata = (this && this.__metadata) || function (k, v) {
28
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ const mocha_1 = require("@testdeck/mocha");
32
+ const Container_1 = require("@Typetron/Container");
33
+ const Http_1 = require("@Typetron/Router/Http");
34
+ const chai_1 = require("chai");
35
+ const Router_1 = require("@Typetron/Router");
36
+ const StaticAssetsMiddleware_1 = require("@Typetron/Framework/Middleware/StaticAssetsMiddleware");
37
+ const Framework_1 = require("@Typetron/Framework");
38
+ const path = __importStar(require("path"));
39
+ let StaticAssetsMiddlewareTest = class StaticAssetsMiddlewareTest {
40
+ async 'resolves url to a local directory'() {
41
+ const container = new Container_1.Container();
42
+ container.set(Framework_1.AppConfig, {
43
+ staticAssets: [
44
+ {
45
+ url: 'assets/.*',
46
+ path: path.join(__dirname, '')
47
+ }
48
+ ]
49
+ });
50
+ const router = container.get(Router_1.Router);
51
+ router.middleware.push(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
52
+ const handler = container.get(Http_1.Handler);
53
+ const request = new Http_1.Request('assets/styles.css', Http_1.Http.Method.GET);
54
+ const response = await handler.handle(container, request);
55
+ chai_1.expect(response.headers['Content-type']).to.be.equal('text/css');
56
+ chai_1.expect(String(response.body)).to.contain('color : purple');
57
+ }
58
+ async 'resolves url to a static asset with the exact same name'() {
59
+ const container = new Container_1.Container();
60
+ container.set(Framework_1.AppConfig, {
61
+ staticAssets: [
62
+ {
63
+ url: '.*',
64
+ path: path.join(__dirname, 'articles')
65
+ }
66
+ ]
67
+ });
68
+ const router = container.get(Router_1.Router);
69
+ router.middleware.push(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
70
+ const handler = container.get(Http_1.Handler);
71
+ const request = new Http_1.Request('my-article.html', Http_1.Http.Method.GET);
72
+ const response = await handler.handle(container, request);
73
+ chai_1.expect(response.headers['Content-type']).to.be.equal('text/html');
74
+ chai_1.expect(String(response.body)).to.contain('article');
75
+ }
76
+ async 'resolves url to a static asset returning index file'() {
77
+ const container = new Container_1.Container();
78
+ container.set(Framework_1.AppConfig, {
79
+ staticAssets: [
80
+ {
81
+ url: '.*',
82
+ path: path.join(__dirname, 'articles')
83
+ }
84
+ ]
85
+ });
86
+ const router = container.get(Router_1.Router);
87
+ router.middleware.push(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
88
+ const handler = container.get(Http_1.Handler);
89
+ const request = new Http_1.Request('some-directory', Http_1.Http.Method.GET);
90
+ const response = await handler.handle(container, request);
91
+ chai_1.expect(response.headers['Content-type']).to.be.equal('text/html');
92
+ chai_1.expect(String(response.body)).to.contain('index file');
93
+ }
94
+ async 'resolves url to base path'() {
95
+ const container = new Container_1.Container();
96
+ container.set(Framework_1.AppConfig, {
97
+ staticAssets: [
98
+ {
99
+ url: '.*',
100
+ path: path.join(__dirname, 'articles/some-directory'),
101
+ basePath: true
102
+ }
103
+ ]
104
+ });
105
+ const router = container.get(Router_1.Router);
106
+ router.middleware.push(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
107
+ const handler = container.get(Http_1.Handler);
108
+ const request = new Http_1.Request('test', Http_1.Http.Method.GET);
109
+ const response = await handler.handle(container, request);
110
+ chai_1.expect(response.headers['Content-type']).to.be.equal('text/html');
111
+ chai_1.expect(String(response.body)).to.contain('index file');
112
+ }
113
+ async 'resolves to static resource of when having base path'() {
114
+ const container = new Container_1.Container();
115
+ container.set(Framework_1.AppConfig, {
116
+ staticAssets: [
117
+ {
118
+ url: '.*',
119
+ path: path.join(__dirname, 'assets'),
120
+ basePath: true
121
+ }
122
+ ]
123
+ });
124
+ const router = container.get(Router_1.Router);
125
+ router.middleware.push(StaticAssetsMiddleware_1.StaticAssetsMiddleware);
126
+ const handler = container.get(Http_1.Handler);
127
+ const request = new Http_1.Request('styles.css', Http_1.Http.Method.GET);
128
+ const response = await handler.handle(container, request);
129
+ chai_1.expect(response.headers['Content-type']).to.be.equal('text/css');
130
+ chai_1.expect(String(response.body)).to.contain('color : purple');
131
+ }
132
+ };
133
+ __decorate([
134
+ mocha_1.test,
135
+ __metadata("design:type", Function),
136
+ __metadata("design:paramtypes", []),
137
+ __metadata("design:returntype", Promise)
138
+ ], StaticAssetsMiddlewareTest.prototype, "resolves url to a local directory", null);
139
+ __decorate([
140
+ mocha_1.test,
141
+ __metadata("design:type", Function),
142
+ __metadata("design:paramtypes", []),
143
+ __metadata("design:returntype", Promise)
144
+ ], StaticAssetsMiddlewareTest.prototype, "resolves url to a static asset with the exact same name", null);
145
+ __decorate([
146
+ mocha_1.test,
147
+ __metadata("design:type", Function),
148
+ __metadata("design:paramtypes", []),
149
+ __metadata("design:returntype", Promise)
150
+ ], StaticAssetsMiddlewareTest.prototype, "resolves url to a static asset returning index file", null);
151
+ __decorate([
152
+ mocha_1.test,
153
+ __metadata("design:type", Function),
154
+ __metadata("design:paramtypes", []),
155
+ __metadata("design:returntype", Promise)
156
+ ], StaticAssetsMiddlewareTest.prototype, "resolves url to base path", null);
157
+ __decorate([
158
+ mocha_1.test,
159
+ __metadata("design:type", Function),
160
+ __metadata("design:paramtypes", []),
161
+ __metadata("design:returntype", Promise)
162
+ ], StaticAssetsMiddlewareTest.prototype, "resolves to static resource of when having base path", null);
163
+ StaticAssetsMiddlewareTest = __decorate([
164
+ mocha_1.suite
165
+ ], StaticAssetsMiddlewareTest);
166
+ //# sourceMappingURL=StaticAssetsMiddlewareTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticAssetsMiddlewareTest.js","sourceRoot":"","sources":["../../../../tests/Framework/Middleware/StaticAssetsMiddlewareTest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6C;AAC7C,mDAA+C;AAC/C,gDAA8D;AAC9D,+BAA6B;AAC7B,6CAAyC;AACzC,kGAA8F;AAC9F,mDAA+C;AAC/C,2CAA4B;AAG5B,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAG5B,KAAK,CAAC,mCAAmC;QACrC,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,SAAS,CAAC,GAAG,CAAqB,qBAAS,EAAE;YACzC,YAAY,EAAE;gBACV;oBACI,GAAG,EAAE,WAAW;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;iBACjC;aACJ;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,eAAM,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,+CAAsB,CAAC,CAAA;QAE9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,mBAAmB,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAEzD,aAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAChE,aAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC9D,CAAC;IAGD,KAAK,CAAC,yDAAyD;QAC3D,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,SAAS,CAAC,GAAG,CAAqB,qBAAS,EAAE;YACzC,YAAY,EAAE;gBACV;oBACI,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;iBACzC;aACJ;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,eAAM,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,+CAAsB,CAAC,CAAA;QAE9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,iBAAiB,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC/D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAEzD,aAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACjE,aAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACvD,CAAC;IAGD,KAAK,CAAC,qDAAqD;QACvD,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,SAAS,CAAC,GAAG,CAAqB,qBAAS,EAAE;YACzC,YAAY,EAAE;gBACV;oBACI,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC;iBACzC;aACJ;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,eAAM,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,+CAAsB,CAAC,CAAA;QAE9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,gBAAgB,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAEzD,aAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACjE,aAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;IAGD,KAAK,CAAC,2BAA2B;QAC7B,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,SAAS,CAAC,GAAG,CAAqB,qBAAS,EAAE;YACzC,YAAY,EAAE;gBACV;oBACI,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,yBAAyB,CAAC;oBACrD,QAAQ,EAAE,IAAI;iBACjB;aACJ;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,eAAM,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,+CAAsB,CAAC,CAAA;QAE9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,MAAM,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAEzD,aAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;QACjE,aAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;IAGD,KAAK,CAAC,sDAAsD;QACxD,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,SAAS,CAAC,GAAG,CAAqB,qBAAS,EAAE;YACzC,YAAY,EAAE;gBACV;oBACI,GAAG,EAAE,IAAI;oBACT,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC;oBACpC,QAAQ,EAAE,IAAI;iBACjB;aACJ;SACJ,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,eAAM,CAAC,CAAA;QACpC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,+CAAsB,CAAC,CAAA;QAE9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACtC,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,YAAY,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC1D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAEzD,aAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;QAChE,aAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC9D,CAAC;CACJ,CAAA;AAnHG;IADC,YAAI;;;;mFAqBJ;AAGD;IADC,YAAI;;;;yGAqBJ;AAGD;IADC,YAAI;;;;qGAqBJ;AAGD;IADC,YAAI;;;;2EAsBJ;AAGD;IADC,YAAI;;;;sGAsBJ;AArHC,0BAA0B;IAD/B,aAAK;GACA,0BAA0B,CAsH/B"}
@@ -19,10 +19,10 @@ let HttpHandlerTest = class HttpHandlerTest {
19
19
  class Controller {
20
20
  index() { }
21
21
  }
22
- const router = container.get(Http_1.Handler);
23
- router.addRoute('', Http_1.Http.Method.GET, Controller, 'index', 'index');
24
- chai_1.expect(() => router.addRoute('', Http_1.Http.Method.POST, Controller, 'index', 'index')).to.not.throw(`There is already a route with the same url: [GET] ''`);
25
- chai_1.expect(() => router.addRoute('', Http_1.Http.Method.GET, Controller, 'index', 'index')).to.throw(`There is already a route with the same url: [GET] ''`);
22
+ const handler = container.get(Http_1.Handler);
23
+ handler.addRoute('', Http_1.Http.Method.GET, Controller, 'index', 'index');
24
+ chai_1.expect(() => handler.addRoute('', Http_1.Http.Method.POST, Controller, 'index', 'index')).to.not.throw(`There is already a route with the same url: [GET] ''`);
25
+ chai_1.expect(() => handler.addRoute('', Http_1.Http.Method.GET, Controller, 'index', 'index')).to.throw(`There is already a route with the same url: [GET] ''`);
26
26
  }
27
27
  };
28
28
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"HttpHandlerTest.js","sourceRoot":"","sources":["../../../tests/Router/HttpHandlerTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA6C;AAC7C,4CAAiD;AACjD,+BAA6B;AAC7B,mDAA+C;AAG/C,IAAM,eAAe,GAArB,MAAM,eAAe;IAGjB,gDAAgD;QAC5C,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,MAAM,UAAU;YACZ,KAAK,KAAI,CAAC;SACb;QAED,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACrC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAElE,aAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACtJ,aAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACrJ,CAAC;CAkBJ,CAAA;AA9BG;IADC,YAAI;;;;qFAaJ;AAfC,eAAe;IADpB,aAAK;GACA,eAAe,CAiCpB"}
1
+ {"version":3,"file":"HttpHandlerTest.js","sourceRoot":"","sources":["../../../tests/Router/HttpHandlerTest.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAA6C;AAC7C,4CAAiD;AACjD,+BAA6B;AAC7B,mDAA+C;AAG/C,IAAM,eAAe,GAArB,MAAM,eAAe;IAGjB,gDAAgD;QAC5C,MAAM,SAAS,GAAG,IAAI,qBAAS,EAAE,CAAA;QAEjC,MAAM,UAAU;YACZ,KAAK,KAAI,CAAC;SACb;QAED,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,cAAO,CAAC,CAAA;QACtC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAEnE,aAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;QACvJ,aAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACtJ,CAAC;CAkBJ,CAAA;AA9BG;IADC,YAAI;;;;qFAaJ;AAfC,eAAe;IADpB,aAAK;GACA,eAAe,CAiCpB"}
@@ -1,4 +0,0 @@
1
- export interface Parameters {
2
- [key: string]: string | undefined;
3
- }
4
- //# sourceMappingURL=Contracts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Contracts.d.ts","sourceRoot":"","sources":["../../Web/Contracts.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACrC"}
package/Web/Contracts.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=Contracts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Contracts.js","sourceRoot":"","sources":["../../Web/Contracts.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import { Response } from './Response';
2
- import { ErrorHandlerInterface } from './ErrorHandlerInterface';
3
- import { Request } from './Request';
4
- import { AppConfig } from '../Framework/Config';
5
- export declare class ErrorHandler implements ErrorHandlerInterface {
6
- appConfig: AppConfig;
7
- handle(error: Error, request?: Request): Response<string | object>;
8
- private handleDevelopmentError;
9
- }
10
- //# sourceMappingURL=ErrorHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorHandler.d.ts","sourceRoot":"","sources":["../../Web/ErrorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAE/C,qBAAa,YAAa,YAAW,qBAAqB;IAGtD,SAAS,EAAE,SAAS,CAAA;IAEpB,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO;IAWtC,OAAO,CAAC,sBAAsB;CAoBjC"}
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ErrorHandler = void 0;
13
- const Response_1 = require("./Response");
14
- const HttpError_1 = require("./Errors/HttpError");
15
- const index_1 = require("./index");
16
- const Container_1 = require("../Container");
17
- const Config_1 = require("../Framework/Config");
18
- class ErrorHandler {
19
- handle(error, request) {
20
- if (this.appConfig.environment === 'production') {
21
- if (error instanceof HttpError_1.HttpError) {
22
- return new Response_1.Response(error.content, error.status);
23
- }
24
- return new Response_1.Response(error.message, index_1.Http.Status.BAD_REQUEST);
25
- }
26
- return this.handleDevelopmentError(error, request);
27
- }
28
- handleDevelopmentError(error, request) {
29
- let code = index_1.Http.Status.BAD_REQUEST, message = '', stack;
30
- stack = error.stack ? error.stack.replace(/\n|\s{2,}/g, '').split('at ') : [];
31
- if (error instanceof HttpError_1.HttpError) {
32
- code = error.status;
33
- message = error.content;
34
- if (request) {
35
- stack.unshift(`Route: ${request.method} ${request.uri}`);
36
- }
37
- }
38
- else {
39
- message = error.message;
40
- }
41
- const errorInfo = {
42
- message, stack
43
- };
44
- return new Response_1.Response(errorInfo, code);
45
- }
46
- }
47
- __decorate([
48
- Container_1.Inject(),
49
- __metadata("design:type", Config_1.AppConfig)
50
- ], ErrorHandler.prototype, "appConfig", void 0);
51
- exports.ErrorHandler = ErrorHandler;
52
- //# sourceMappingURL=ErrorHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorHandler.js","sourceRoot":"","sources":["../../Web/ErrorHandler.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAqC;AAErC,kDAA8C;AAC9C,mCAA8B;AAE9B,4CAAqC;AACrC,gDAA+C;AAE/C,MAAa,YAAY;IAKrB,MAAM,CAAC,KAAY,EAAE,OAAiB;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAK,YAAY,EAAE;YAC7C,IAAI,KAAK,YAAY,qBAAS,EAAE;gBAC5B,OAAO,IAAI,mBAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;aACnD;YACD,OAAO,IAAI,mBAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,YAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;SAC9D;QAED,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACtD,CAAC;IAEO,sBAAsB,CAAC,KAAY,EAAE,OAAiB;QAC1D,IAAI,IAAI,GAAG,YAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,GAA6B,EAAE,EAAE,KAAe,CAAA;QAE3F,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QAC7E,IAAI,KAAK,YAAY,qBAAS,EAAE;YAC5B,IAAI,GAAG,KAAK,CAAC,MAAM,CAAA;YACnB,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;YACvB,IAAI,OAAO,EAAE;gBACT,KAAK,CAAC,OAAO,CAAC,UAAU,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;aAC3D;SACJ;aAAM;YACH,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;SAC1B;QAED,MAAM,SAAS,GAA0D;YACrE,OAAO,EAAE,KAAK;SACjB,CAAA;QAED,OAAO,IAAI,mBAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;CACJ;AAjCG;IADC,kBAAM,EAAE;8BACE,kBAAS;+CAAA;AAHxB,oCAoCC"}
@@ -1,6 +0,0 @@
1
- import { Response } from './Response';
2
- import { Request } from './Request';
3
- export declare class ErrorHandlerInterface {
4
- handle: (error: Error, request?: Request) => Promise<Response> | Response;
5
- }
6
- //# sourceMappingURL=ErrorHandlerInterface.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorHandlerInterface.d.ts","sourceRoot":"","sources":["../../Web/ErrorHandlerInterface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,qBAAa,qBAAqB;IAC9B,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;CAC5E"}
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ErrorHandlerInterface = void 0;
4
- class ErrorHandlerInterface {
5
- }
6
- exports.ErrorHandlerInterface = ErrorHandlerInterface;
7
- //# sourceMappingURL=ErrorHandlerInterface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorHandlerInterface.js","sourceRoot":"","sources":["../../Web/ErrorHandlerInterface.ts"],"names":[],"mappings":";;;AAGA,MAAa,qBAAqB;CAEjC;AAFD,sDAEC"}
@@ -1,8 +0,0 @@
1
- import { Http } from '../index';
2
- export declare class HttpError extends Error {
3
- content: string | object;
4
- status: Http.Status;
5
- constructor(content: string | object, status?: Http.Status);
6
- getMessage(): string | object;
7
- }
8
- //# sourceMappingURL=HttpError.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpError.d.ts","sourceRoot":"","sources":["../../../Web/Errors/HttpError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAE/B,qBAAa,SAAU,SAAQ,KAAK;IAGrB,OAAO,EAAE,MAAM,GAAG,MAAM;IACxB,MAAM,EAAE,IAAI,CAAC,MAAM;gBADnB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,MAAM,GAAE,IAAI,CAAC,MAAgC;IAKxD,UAAU;CAGb"}
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpError = void 0;
4
- const index_1 = require("../index");
5
- class HttpError extends Error {
6
- constructor(content, status = index_1.Http.Status.BAD_REQUEST) {
7
- super(typeof content === 'string' ? content : 'HTTP Error');
8
- this.content = content;
9
- this.status = status;
10
- }
11
- getMessage() {
12
- return this.content;
13
- }
14
- }
15
- exports.HttpError = HttpError;
16
- //# sourceMappingURL=HttpError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../../../Web/Errors/HttpError.ts"],"names":[],"mappings":";;;AAAA,oCAA+B;AAE/B,MAAa,SAAU,SAAQ,KAAK;IAEhC,YACW,OAAwB,EACxB,SAAsB,YAAI,CAAC,MAAM,CAAC,WAAW;QAEpD,KAAK,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAA;QAHpD,YAAO,GAAP,OAAO,CAAiB;QACxB,WAAM,GAAN,MAAM,CAAuC;IAGxD,CAAC;IAED,UAAU;QACN,OAAO,IAAI,CAAC,OAAO,CAAA;IACvB,CAAC;CACJ;AAZD,8BAYC"}
package/Web/Handler.d.ts DELETED
@@ -1,11 +0,0 @@
1
- import { Router } from '../Router';
2
- import { ErrorHandlerInterface, Response } from './index';
3
- import { Request } from './Request';
4
- import { Application } from '../Framework';
5
- export declare class Handler {
6
- router: Router;
7
- errorHandler: ErrorHandlerInterface;
8
- handle(app: Application, request: Request): Promise<Response<string | object | undefined>>;
9
- startServer(app: Application): void;
10
- }
11
- //# sourceMappingURL=Handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Handler.d.ts","sourceRoot":"","sources":["../../Web/Handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGnC,OAAO,EAAa,WAAW,EAAE,MAAM,cAAc,CAAA;AAErD,qBAAa,OAAO;IAEhB,MAAM,EAAE,MAAM,CAAA;IAGd,YAAY,EAAE,qBAAqB,CAAA;IAE7B,MAAM,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO;IAQ/C,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAiBtC"}