@expressots/core 2.9.1 → 2.11.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/lib/CHANGELOG.md +145 -89
- package/lib/cjs/application/{app-container.js → application-container.js} +95 -94
- package/lib/cjs/application/application-factory.js +39 -74
- package/lib/cjs/application/index.js +7 -7
- package/lib/cjs/common/{color-service.provider.js → color-codes.js} +46 -47
- package/lib/cjs/common/index.js +2 -2
- package/lib/cjs/common/{package-resolver.provider.js → package-resolver.js} +35 -35
- package/lib/cjs/common/{project-config.provider.js → project-config.js} +2 -2
- package/lib/cjs/console/console.js +60 -61
- package/lib/cjs/console/index.js +5 -5
- package/lib/cjs/container-module/container-module.js +111 -111
- package/lib/cjs/container-module/index.js +6 -6
- package/lib/cjs/controller/base-controller.js +74 -75
- package/lib/cjs/controller/index.js +5 -5
- package/lib/cjs/decorator/index.js +17 -17
- package/lib/cjs/decorator/scope-binding.js +44 -44
- package/lib/cjs/error/app-error.js +26 -26
- package/lib/cjs/error/error-handler-middleware.js +28 -28
- package/lib/cjs/error/index.js +9 -9
- package/lib/cjs/error/report.js +53 -54
- package/lib/cjs/error/status-code.js +89 -89
- package/lib/cjs/index.js +26 -26
- package/lib/cjs/middleware/index.js +32 -32
- package/lib/cjs/middleware/interfaces/body-parser.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/compression.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cookie-parser.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cookie-session/cookie-session.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cookie-session/keygrip.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/cors.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/express-rate-limit.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/express-session.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/helmet.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/morgan.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/multer.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/serve-favicon.interface.js +2 -2
- package/lib/cjs/middleware/interfaces/serve-static.interface.js +2 -2
- package/lib/cjs/middleware/middleware-resolver.js +72 -72
- package/lib/cjs/middleware/middleware-service.js +480 -481
- package/lib/cjs/provider/db-in-memory/db-in-memory.provider.js +82 -82
- package/lib/cjs/provider/dto-validator/dto-validator.provider.js +53 -53
- package/lib/cjs/provider/environment/env-validator.provider.js +98 -98
- package/lib/cjs/provider/index.js +13 -13
- package/lib/cjs/provider/logger/logger.provider.js +117 -117
- package/lib/cjs/provider/provider-manager.js +49 -50
- package/lib/cjs/render/handlebars.interface.js +2 -2
- package/lib/cjs/render/index.js +2 -2
- package/lib/cjs/render/render.type.js +2 -2
- package/lib/cjs/types/application/{app-container.d.ts → application-container.d.ts} +64 -62
- package/lib/cjs/types/application/application-factory.d.ts +19 -34
- package/lib/cjs/types/application/index.d.ts +2 -2
- package/lib/cjs/types/common/{color-service.provider.d.ts → color-codes.d.ts} +29 -29
- package/lib/cjs/types/common/index.d.ts +1 -1
- package/lib/cjs/types/common/{package-resolver.provider.d.ts → package-resolver.d.ts} +8 -8
- package/lib/cjs/types/common/{project-config.provider.d.ts → project-config.d.ts} +56 -56
- package/lib/cjs/types/console/console.d.ts +27 -27
- package/lib/cjs/types/console/index.d.ts +1 -1
- package/lib/cjs/types/container-module/container-module.d.ts +28 -28
- package/lib/cjs/types/container-module/index.d.ts +1 -1
- package/lib/cjs/types/controller/base-controller.d.ts +48 -48
- package/lib/cjs/types/controller/index.d.ts +1 -1
- package/lib/cjs/types/decorator/index.d.ts +1 -1
- package/lib/cjs/types/decorator/scope-binding.d.ts +33 -33
- package/lib/cjs/types/error/app-error.d.ts +29 -29
- package/lib/cjs/types/error/error-handler-middleware.d.ts +11 -11
- package/lib/cjs/types/error/index.d.ts +3 -3
- package/lib/cjs/types/error/report.d.ts +25 -25
- package/lib/cjs/types/error/status-code.d.ts +136 -136
- package/lib/cjs/types/index.d.ts +10 -10
- package/lib/cjs/types/middleware/index.d.ts +13 -13
- package/lib/cjs/types/middleware/interfaces/body-parser.interface.d.ts +33 -33
- package/lib/cjs/types/middleware/interfaces/compression.interface.d.ts +98 -98
- package/lib/cjs/types/middleware/interfaces/cookie-parser.interface.d.ts +9 -9
- package/lib/cjs/types/middleware/interfaces/cookie-session/cookie-session.interface.d.ts +57 -57
- package/lib/cjs/types/middleware/interfaces/cookie-session/keygrip.interface.d.ts +27 -27
- package/lib/cjs/types/middleware/interfaces/cors.interface.d.ts +57 -57
- package/lib/cjs/types/middleware/interfaces/express-rate-limit.interface.d.ts +292 -292
- package/lib/cjs/types/middleware/interfaces/express-session.interface.d.ts +207 -207
- package/lib/cjs/types/middleware/interfaces/helmet.interface.d.ts +210 -210
- package/lib/cjs/types/middleware/interfaces/morgan.interface.d.ts +40 -40
- package/lib/cjs/types/middleware/interfaces/multer.interface.d.ts +255 -255
- package/lib/cjs/types/middleware/interfaces/serve-favicon.interface.d.ts +11 -11
- package/lib/cjs/types/middleware/interfaces/serve-static.interface.d.ts +70 -70
- package/lib/cjs/types/middleware/middleware-resolver.d.ts +11 -11
- package/lib/cjs/types/middleware/middleware-service.d.ts +368 -368
- package/lib/cjs/types/provider/db-in-memory/db-in-memory.provider.d.ts +43 -43
- package/lib/cjs/types/provider/dto-validator/dto-validator.provider.d.ts +11 -11
- package/lib/cjs/types/provider/environment/env-validator.provider.d.ts +35 -35
- package/lib/cjs/types/provider/index.d.ts +5 -5
- package/lib/cjs/types/provider/logger/logger.provider.d.ts +54 -54
- package/lib/cjs/types/provider/provider-manager.d.ts +16 -16
- package/lib/cjs/types/render/handlebars.interface.d.ts +46 -46
- package/lib/cjs/types/render/index.d.ts +2 -2
- package/lib/cjs/types/render/render.type.d.ts +12 -12
- package/lib/package.json +16 -17
- package/package.json +16 -17
|
@@ -1,82 +1,82 @@
|
|
|
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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.InMemoryDB = void 0;
|
|
10
|
-
const inversify_1 = require("inversify");
|
|
11
|
-
/**
|
|
12
|
-
* InMemoryDB Class
|
|
13
|
-
*
|
|
14
|
-
* This class and its methods offer functionalities to simulate an in-memory database.
|
|
15
|
-
* It is particularly useful for developers starting with ExpressoTS without any database connection.
|
|
16
|
-
*
|
|
17
|
-
* @decorator @provideSingleton(InMemoryDB)
|
|
18
|
-
*/
|
|
19
|
-
//@provideSingleton(InMemoryDB)
|
|
20
|
-
let InMemoryDB = class InMemoryDB {
|
|
21
|
-
constructor() {
|
|
22
|
-
this.name = "InMemoryDB";
|
|
23
|
-
this.version = "0.0.1";
|
|
24
|
-
this.author = "Richard Zampieri";
|
|
25
|
-
this.repo = "internal";
|
|
26
|
-
this.tables = {};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* getTable Method
|
|
30
|
-
*
|
|
31
|
-
* Retrieves a table by its name from the in-memory database.
|
|
32
|
-
*
|
|
33
|
-
* @param tableName - The name of the table to retrieve.
|
|
34
|
-
* @returns {IEntity[]} - An array of entities.
|
|
35
|
-
*/
|
|
36
|
-
getTable(tableName) {
|
|
37
|
-
if (!this.tables[tableName]) {
|
|
38
|
-
this.tables[tableName] = [];
|
|
39
|
-
}
|
|
40
|
-
return this.tables[tableName];
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* showTables Method
|
|
44
|
-
*
|
|
45
|
-
* Prints a list of all tables in the in-memory database to the standard output.
|
|
46
|
-
*/
|
|
47
|
-
showTables() {
|
|
48
|
-
if (!this.tables) {
|
|
49
|
-
process.stdout.write("No tables exist.");
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
process.stdout.write("List of tables:");
|
|
53
|
-
for (const tableName in this.tables) {
|
|
54
|
-
process.stdout.write(`\n- ${tableName}`);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* printTable Method
|
|
59
|
-
*
|
|
60
|
-
* Prints all records in a specific table to the console.
|
|
61
|
-
* If the table doesn't exist or is empty, it notifies the user.
|
|
62
|
-
*
|
|
63
|
-
* @param tableName - The name of the table to print.
|
|
64
|
-
*/
|
|
65
|
-
printTable(tableName) {
|
|
66
|
-
if (!this.tables) {
|
|
67
|
-
process.stdout.write("No tables exist.");
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
const table = this.getTable(tableName);
|
|
71
|
-
if (table.length === 0) {
|
|
72
|
-
process.stdout.write(`Table '${tableName}' is empty.`);
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
process.stdout.write(`\nRecords in table '${tableName}':\n`);
|
|
76
|
-
console.table(table);
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
InMemoryDB =
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.InMemoryDB = void 0;
|
|
10
|
+
const inversify_1 = require("inversify");
|
|
11
|
+
/**
|
|
12
|
+
* InMemoryDB Class
|
|
13
|
+
*
|
|
14
|
+
* This class and its methods offer functionalities to simulate an in-memory database.
|
|
15
|
+
* It is particularly useful for developers starting with ExpressoTS without any database connection.
|
|
16
|
+
*
|
|
17
|
+
* @decorator @provideSingleton(InMemoryDB)
|
|
18
|
+
*/
|
|
19
|
+
//@provideSingleton(InMemoryDB)
|
|
20
|
+
let InMemoryDB = class InMemoryDB {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.name = "InMemoryDB";
|
|
23
|
+
this.version = "0.0.1";
|
|
24
|
+
this.author = "Richard Zampieri";
|
|
25
|
+
this.repo = "internal";
|
|
26
|
+
this.tables = {};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* getTable Method
|
|
30
|
+
*
|
|
31
|
+
* Retrieves a table by its name from the in-memory database.
|
|
32
|
+
*
|
|
33
|
+
* @param tableName - The name of the table to retrieve.
|
|
34
|
+
* @returns {IEntity[]} - An array of entities.
|
|
35
|
+
*/
|
|
36
|
+
getTable(tableName) {
|
|
37
|
+
if (!this.tables[tableName]) {
|
|
38
|
+
this.tables[tableName] = [];
|
|
39
|
+
}
|
|
40
|
+
return this.tables[tableName];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* showTables Method
|
|
44
|
+
*
|
|
45
|
+
* Prints a list of all tables in the in-memory database to the standard output.
|
|
46
|
+
*/
|
|
47
|
+
showTables() {
|
|
48
|
+
if (!this.tables) {
|
|
49
|
+
process.stdout.write("No tables exist.");
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
process.stdout.write("List of tables:");
|
|
53
|
+
for (const tableName in this.tables) {
|
|
54
|
+
process.stdout.write(`\n- ${tableName}`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* printTable Method
|
|
59
|
+
*
|
|
60
|
+
* Prints all records in a specific table to the console.
|
|
61
|
+
* If the table doesn't exist or is empty, it notifies the user.
|
|
62
|
+
*
|
|
63
|
+
* @param tableName - The name of the table to print.
|
|
64
|
+
*/
|
|
65
|
+
printTable(tableName) {
|
|
66
|
+
if (!this.tables) {
|
|
67
|
+
process.stdout.write("No tables exist.");
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const table = this.getTable(tableName);
|
|
71
|
+
if (table.length === 0) {
|
|
72
|
+
process.stdout.write(`Table '${tableName}' is empty.`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
process.stdout.write(`\nRecords in table '${tableName}':\n`);
|
|
76
|
+
console.table(table);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
exports.InMemoryDB = InMemoryDB;
|
|
80
|
+
exports.InMemoryDB = InMemoryDB = __decorate([
|
|
81
|
+
(0, inversify_1.injectable)()
|
|
82
|
+
], InMemoryDB);
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ValidateDTO = void 0;
|
|
4
|
-
require("reflect-metadata");
|
|
5
|
-
const status_code_1 = require("../../error/status-code");
|
|
6
|
-
const
|
|
7
|
-
const logger_provider_1 = require("../logger/logger.provider");
|
|
8
|
-
/**
|
|
9
|
-
* Validate the DTO using class-validator and class-transformer.
|
|
10
|
-
* @param type - The type of the DTO to validate.
|
|
11
|
-
* @returns A RequestHandler function.
|
|
12
|
-
* @throws An exception if the DTO is invalid.
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
function ValidateDTO(type) {
|
|
16
|
-
return async (req, res, next) => {
|
|
17
|
-
const logger = new logger_provider_1.Logger();
|
|
18
|
-
const classValidator = (0,
|
|
19
|
-
const classTransformer = (0,
|
|
20
|
-
if (!classValidator || !classTransformer) {
|
|
21
|
-
return next();
|
|
22
|
-
}
|
|
23
|
-
try {
|
|
24
|
-
const errors = await classValidator.validate(classTransformer.plainToClass(type, req.body));
|
|
25
|
-
if (errors.length > 0) {
|
|
26
|
-
const DTO = errors.reduce((acc, error) => {
|
|
27
|
-
if (error.constraints) {
|
|
28
|
-
const propertyName = error.property;
|
|
29
|
-
if (!acc.some((e) => e.property === propertyName)) {
|
|
30
|
-
acc.push({ property: propertyName, messages: [] });
|
|
31
|
-
}
|
|
32
|
-
const target = acc.find((e) => e.property === propertyName);
|
|
33
|
-
target.messages.push(...Object.values(error.constraints));
|
|
34
|
-
}
|
|
35
|
-
return acc;
|
|
36
|
-
}, []);
|
|
37
|
-
res.status(status_code_1.StatusCode.BadRequest).json({
|
|
38
|
-
errorCode: status_code_1.StatusCode.BadRequest,
|
|
39
|
-
errorMessage: "Bad Request",
|
|
40
|
-
DTO,
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
next();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
logger.error(`An exception occurred while validating the DTO: ${error}`, "validate-dto-provider");
|
|
49
|
-
next(error);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
exports.ValidateDTO = ValidateDTO;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ValidateDTO = void 0;
|
|
4
|
+
require("reflect-metadata");
|
|
5
|
+
const status_code_1 = require("../../error/status-code");
|
|
6
|
+
const package_resolver_1 = require("../../common/package-resolver");
|
|
7
|
+
const logger_provider_1 = require("../logger/logger.provider");
|
|
8
|
+
/**
|
|
9
|
+
* Validate the DTO using class-validator and class-transformer.
|
|
10
|
+
* @param type - The type of the DTO to validate.
|
|
11
|
+
* @returns A RequestHandler function.
|
|
12
|
+
* @throws An exception if the DTO is invalid.
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
function ValidateDTO(type) {
|
|
16
|
+
return async (req, res, next) => {
|
|
17
|
+
const logger = new logger_provider_1.Logger();
|
|
18
|
+
const classValidator = (0, package_resolver_1.packageResolver)("class-validator");
|
|
19
|
+
const classTransformer = (0, package_resolver_1.packageResolver)("class-transformer");
|
|
20
|
+
if (!classValidator || !classTransformer) {
|
|
21
|
+
return next();
|
|
22
|
+
}
|
|
23
|
+
try {
|
|
24
|
+
const errors = await classValidator.validate(classTransformer.plainToClass(type, req.body));
|
|
25
|
+
if (errors.length > 0) {
|
|
26
|
+
const DTO = errors.reduce((acc, error) => {
|
|
27
|
+
if (error.constraints) {
|
|
28
|
+
const propertyName = error.property;
|
|
29
|
+
if (!acc.some((e) => e.property === propertyName)) {
|
|
30
|
+
acc.push({ property: propertyName, messages: [] });
|
|
31
|
+
}
|
|
32
|
+
const target = acc.find((e) => e.property === propertyName);
|
|
33
|
+
target.messages.push(...Object.values(error.constraints));
|
|
34
|
+
}
|
|
35
|
+
return acc;
|
|
36
|
+
}, []);
|
|
37
|
+
res.status(status_code_1.StatusCode.BadRequest).json({
|
|
38
|
+
errorCode: status_code_1.StatusCode.BadRequest,
|
|
39
|
+
errorMessage: "Bad Request",
|
|
40
|
+
DTO,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
next();
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
logger.error(`An exception occurred while validating the DTO: ${error}`, "validate-dto-provider");
|
|
49
|
+
next(error);
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
exports.ValidateDTO = ValidateDTO;
|
|
@@ -1,98 +1,98 @@
|
|
|
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
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.EnvValidatorProvider = void 0;
|
|
16
|
-
const dotenv_1 = __importDefault(require("dotenv"));
|
|
17
|
-
const inversify_1 = require("inversify");
|
|
18
|
-
const fs_1 = __importDefault(require("fs"));
|
|
19
|
-
const path_1 = __importDefault(require("path"));
|
|
20
|
-
const logger_provider_1 = require("../logger/logger.provider");
|
|
21
|
-
/**
|
|
22
|
-
* The EnvValidatorProvider class provides utility methods for working with environment variables.
|
|
23
|
-
* It validates, loads, and retrieves environment variables from the .env file.
|
|
24
|
-
* @provide EnvValidatorProvider
|
|
25
|
-
*/
|
|
26
|
-
let EnvValidatorProvider = class EnvValidatorProvider {
|
|
27
|
-
constructor() {
|
|
28
|
-
this.name = "EnvValidatorProvider";
|
|
29
|
-
this.version = "0.0.1";
|
|
30
|
-
this.author = "Richard Zampieri";
|
|
31
|
-
this.repo = "internal";
|
|
32
|
-
this.logger = new logger_provider_1.Logger();
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Retrieves the value of an environment variable, or a default value if the variable is not set.
|
|
36
|
-
* @param key - The key of the environment variable.
|
|
37
|
-
* @param defaultValue - The default value to return if the environment variable is not set.
|
|
38
|
-
* @returns The value of the environment variable, or the default value if not set.
|
|
39
|
-
*/
|
|
40
|
-
get(key, defaultValue = undefined) {
|
|
41
|
-
return process.env[key] ?? defaultValue;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Validates and loads all environment variables from the .env file.
|
|
45
|
-
* If the .env file does not exist or any environment variables are not set, the process will exit with an error.
|
|
46
|
-
*/
|
|
47
|
-
checkAll() {
|
|
48
|
-
// Get the full path of the .env file
|
|
49
|
-
const envFilePath = path_1.default.join(process.cwd(), ".", ".env");
|
|
50
|
-
// Check if the .env file exists
|
|
51
|
-
if (!fs_1.default.existsSync(envFilePath)) {
|
|
52
|
-
this.logger.error("Environment file .env is not defined.", "env-validator-provider");
|
|
53
|
-
process.exit(1);
|
|
54
|
-
}
|
|
55
|
-
// Load the environment variables from the .env file
|
|
56
|
-
const dotenvConfigOutput = dotenv_1.default.config({ path: envFilePath });
|
|
57
|
-
const dotEnvParsed = dotenvConfigOutput.parsed;
|
|
58
|
-
/* Verify if all environment variables are defined */
|
|
59
|
-
let hasError = false;
|
|
60
|
-
if (dotEnvParsed) {
|
|
61
|
-
for (const key of Object.keys(dotEnvParsed)) {
|
|
62
|
-
// Check if the environment variable is not defined or is an empty string
|
|
63
|
-
if (!process.env[key] || process.env[key] === "") {
|
|
64
|
-
this.logger.error(`Environment variable ${key} is not defined.`, "env-validator-provider");
|
|
65
|
-
hasError = true;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
if (hasError) {
|
|
70
|
-
process.exit(1);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
EnvValidatorProvider =
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
String.prototype.AsBoolean = function () {
|
|
80
|
-
switch (this.toLowerCase().trim()) {
|
|
81
|
-
case "true":
|
|
82
|
-
case "1":
|
|
83
|
-
case "yes":
|
|
84
|
-
return true;
|
|
85
|
-
case "false":
|
|
86
|
-
case "0":
|
|
87
|
-
case "no":
|
|
88
|
-
return false;
|
|
89
|
-
default:
|
|
90
|
-
return undefined;
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
String.prototype.AsNumber = function () {
|
|
94
|
-
return Number(this);
|
|
95
|
-
};
|
|
96
|
-
String.prototype.AsString = function () {
|
|
97
|
-
return String(this);
|
|
98
|
-
};
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.EnvValidatorProvider = void 0;
|
|
16
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
17
|
+
const inversify_1 = require("inversify");
|
|
18
|
+
const fs_1 = __importDefault(require("fs"));
|
|
19
|
+
const path_1 = __importDefault(require("path"));
|
|
20
|
+
const logger_provider_1 = require("../logger/logger.provider");
|
|
21
|
+
/**
|
|
22
|
+
* The EnvValidatorProvider class provides utility methods for working with environment variables.
|
|
23
|
+
* It validates, loads, and retrieves environment variables from the .env file.
|
|
24
|
+
* @provide EnvValidatorProvider
|
|
25
|
+
*/
|
|
26
|
+
let EnvValidatorProvider = class EnvValidatorProvider {
|
|
27
|
+
constructor() {
|
|
28
|
+
this.name = "EnvValidatorProvider";
|
|
29
|
+
this.version = "0.0.1";
|
|
30
|
+
this.author = "Richard Zampieri";
|
|
31
|
+
this.repo = "internal";
|
|
32
|
+
this.logger = new logger_provider_1.Logger();
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Retrieves the value of an environment variable, or a default value if the variable is not set.
|
|
36
|
+
* @param key - The key of the environment variable.
|
|
37
|
+
* @param defaultValue - The default value to return if the environment variable is not set.
|
|
38
|
+
* @returns The value of the environment variable, or the default value if not set.
|
|
39
|
+
*/
|
|
40
|
+
get(key, defaultValue = undefined) {
|
|
41
|
+
return process.env[key] ?? defaultValue;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Validates and loads all environment variables from the .env file.
|
|
45
|
+
* If the .env file does not exist or any environment variables are not set, the process will exit with an error.
|
|
46
|
+
*/
|
|
47
|
+
checkAll() {
|
|
48
|
+
// Get the full path of the .env file
|
|
49
|
+
const envFilePath = path_1.default.join(process.cwd(), ".", ".env");
|
|
50
|
+
// Check if the .env file exists
|
|
51
|
+
if (!fs_1.default.existsSync(envFilePath)) {
|
|
52
|
+
this.logger.error("Environment file .env is not defined.", "env-validator-provider");
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
// Load the environment variables from the .env file
|
|
56
|
+
const dotenvConfigOutput = dotenv_1.default.config({ path: envFilePath });
|
|
57
|
+
const dotEnvParsed = dotenvConfigOutput.parsed;
|
|
58
|
+
/* Verify if all environment variables are defined */
|
|
59
|
+
let hasError = false;
|
|
60
|
+
if (dotEnvParsed) {
|
|
61
|
+
for (const key of Object.keys(dotEnvParsed)) {
|
|
62
|
+
// Check if the environment variable is not defined or is an empty string
|
|
63
|
+
if (!process.env[key] || process.env[key] === "") {
|
|
64
|
+
this.logger.error(`Environment variable ${key} is not defined.`, "env-validator-provider");
|
|
65
|
+
hasError = true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (hasError) {
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
exports.EnvValidatorProvider = EnvValidatorProvider;
|
|
75
|
+
exports.EnvValidatorProvider = EnvValidatorProvider = __decorate([
|
|
76
|
+
(0, inversify_1.injectable)(),
|
|
77
|
+
__metadata("design:paramtypes", [])
|
|
78
|
+
], EnvValidatorProvider);
|
|
79
|
+
String.prototype.AsBoolean = function () {
|
|
80
|
+
switch (this.toLowerCase().trim()) {
|
|
81
|
+
case "true":
|
|
82
|
+
case "1":
|
|
83
|
+
case "yes":
|
|
84
|
+
return true;
|
|
85
|
+
case "false":
|
|
86
|
+
case "0":
|
|
87
|
+
case "no":
|
|
88
|
+
return false;
|
|
89
|
+
default:
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
String.prototype.AsNumber = function () {
|
|
94
|
+
return Number(this);
|
|
95
|
+
};
|
|
96
|
+
String.prototype.AsString = function () {
|
|
97
|
+
return String(this);
|
|
98
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.InMemoryDB = exports.ValidateDTO = exports.Env = exports.Logger = exports.ProviderManager = void 0;
|
|
4
|
-
var provider_manager_1 = require("./provider-manager");
|
|
5
|
-
Object.defineProperty(exports, "ProviderManager", { enumerable: true, get: function () { return provider_manager_1.ProviderManager; } });
|
|
6
|
-
var logger_provider_1 = require("./logger/logger.provider");
|
|
7
|
-
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_provider_1.Logger; } });
|
|
8
|
-
var env_validator_provider_1 = require("./environment/env-validator.provider");
|
|
9
|
-
Object.defineProperty(exports, "Env", { enumerable: true, get: function () { return env_validator_provider_1.EnvValidatorProvider; } });
|
|
10
|
-
var dto_validator_provider_1 = require("./dto-validator/dto-validator.provider");
|
|
11
|
-
Object.defineProperty(exports, "ValidateDTO", { enumerable: true, get: function () { return dto_validator_provider_1.ValidateDTO; } });
|
|
12
|
-
var db_in_memory_provider_1 = require("./db-in-memory/db-in-memory.provider");
|
|
13
|
-
Object.defineProperty(exports, "InMemoryDB", { enumerable: true, get: function () { return db_in_memory_provider_1.InMemoryDB; } });
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InMemoryDB = exports.ValidateDTO = exports.Env = exports.Logger = exports.ProviderManager = void 0;
|
|
4
|
+
var provider_manager_1 = require("./provider-manager");
|
|
5
|
+
Object.defineProperty(exports, "ProviderManager", { enumerable: true, get: function () { return provider_manager_1.ProviderManager; } });
|
|
6
|
+
var logger_provider_1 = require("./logger/logger.provider");
|
|
7
|
+
Object.defineProperty(exports, "Logger", { enumerable: true, get: function () { return logger_provider_1.Logger; } });
|
|
8
|
+
var env_validator_provider_1 = require("./environment/env-validator.provider");
|
|
9
|
+
Object.defineProperty(exports, "Env", { enumerable: true, get: function () { return env_validator_provider_1.EnvValidatorProvider; } });
|
|
10
|
+
var dto_validator_provider_1 = require("./dto-validator/dto-validator.provider");
|
|
11
|
+
Object.defineProperty(exports, "ValidateDTO", { enumerable: true, get: function () { return dto_validator_provider_1.ValidateDTO; } });
|
|
12
|
+
var db_in_memory_provider_1 = require("./db-in-memory/db-in-memory.provider");
|
|
13
|
+
Object.defineProperty(exports, "InMemoryDB", { enumerable: true, get: function () { return db_in_memory_provider_1.InMemoryDB; } });
|