minervajs-helmet 1.0.10 → 1.0.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  BSD 2-Clause License
2
2
 
3
- Copyright (c) 2024, Alexander E. Escobar
3
+ Copyright (c) 2024, 2025, Alexander Enrique Escobar O.
4
4
 
5
5
  Redistribution and use in source and binary forms, with or without
6
6
  modification, are permitted provided that the following conditions are met:
package/README.md CHANGED
@@ -1,26 +1,26 @@
1
- # MinervaJS-Helmet
1
+ # MinervaJS.Helmet
2
2
  Modulo para la gestion de las conección a la base de datos, permite conectarse a varios tipos utilizando sobrecarga de metodos, tolera MySQL y Oracle Client
3
3
 
4
- Ejemplo: Partiendo de un proyecto en blanco recien creado
4
+ Ejemplo: Partiendo de un proyecto NodeJS en blanco recien creado
5
5
  `$ npm i minervajs-helmet `
6
6
 
7
- ###Archivo: ./config/settings.js
7
+ #### Archivo: ./config/settings.js
8
8
  Adicionas una Entrada, por cada tipo y base de datos
9
9
  ```javascript
10
10
  {
11
- 'my_mysql': // 'Perfil de Conexion'
11
+ 'my_mysql': // 'Perfil de Conexión'
12
12
  {
13
13
  type: 'mysql',
14
14
  host: 'sql3.freesqldatabase.com', // 'localhost',
15
- port: 3306, // 'puerto',
16
- user: 'sql3772729', // 'usuario',
15
+ port: 3306, // 'puerto',
16
+ user: 'sql3772729', // 'usuario',
17
17
  password: 'esUA3qpGKD', // 'contraseña',
18
- database: 'sql3772729' // 'nombre_db'
18
+ database: 'sql3772729' // 'nombre_db'
19
19
  }
20
20
  }
21
21
  ```
22
22
 
23
- ###Archivo: index.js
23
+ #### Archivo: index.js
24
24
 
25
25
  ```javascript
26
26
  var db = require('minervajs-helmet');
@@ -30,7 +30,7 @@ async function main() {
30
30
  try {
31
31
  // Conexión a MySQL
32
32
  const mysqlConnection = await db.connect('my_mysql', config);
33
- const mysqlResult = await db.query('my_mysql', ' SELECT * FROM test ;', [], config); // Ejemplo con parámetros
33
+ const mysqlResult = await db.query('my_mysql', ' SELECT * FROM test ;', [], config); // Ejemplo sin parámetros
34
34
  console.log('Resultados de MySQL:', mysqlResult);
35
35
  await db.close('my_mysql', config);
36
36
  } catch (error) {
@@ -41,7 +41,7 @@ async function main() {
41
41
  main();
42
42
  ```
43
43
 
44
- ###Salida de resultados
44
+ #### Salida de resultados
45
45
  ```javascript
46
46
  Resultados de MySQL: [
47
47
  {
package/js/db_mysql.js CHANGED
@@ -19,8 +19,10 @@ const mysql = require('mysql2/promise'); // Usamos mysql2/promise para async/awa
19
19
  * @param {object} config - Configuración de la conexión.
20
20
  * @returns {Promise<mysql.Connection>} Objeto de conexión de MySQL.
21
21
  */
22
- async function connect(config) {
23
- try {
22
+ async function connect(config)
23
+ {
24
+ try
25
+ {
24
26
  const connection = await mysql.createConnection({
25
27
  host: config.host,
26
28
  port: config.port,
@@ -29,7 +31,9 @@ async function connect(config) {
29
31
  database: config.database,
30
32
  });
31
33
  return connection;
32
- } catch (error) {
34
+ }
35
+ catch (error)
36
+ {
33
37
  console.error('Error al conectar a MySQL:', error);
34
38
  throw error; // Re-lanzamos el error para que sea manejado por el llamador
35
39
  }
@@ -45,11 +49,15 @@ async function connect(config) {
45
49
  * @param {Array} [values] - Parámetros para la consulta.
46
50
  * @returns {Promise<Array>} Filas resultantes de la consulta.
47
51
  */
48
- async function query(connection, sql, values = []) {
49
- try {
52
+ async function query(connection, sql, values = [])
53
+ {
54
+ try
55
+ {
50
56
  const [rows, fields] = await connection.execute(sql, values);
51
57
  return rows;
52
- } catch (error) {
58
+ }
59
+ catch (error)
60
+ {
53
61
  console.error('Error al ejecutar la consulta MySQL:', error);
54
62
  throw error;
55
63
  }
@@ -63,10 +71,12 @@ async function query(connection, sql, values = []) {
63
71
  * @param {mysql.Connection} connection - Objeto de conexión de MySQL.
64
72
  * @returns {Promise<void>}
65
73
  */
66
- async function close(connection) {
67
- try {
68
- await connection.end();
69
- } catch (error) {
74
+ async function close(connection)
75
+ {
76
+ try
77
+ { await connection.end(); }
78
+ catch (error)
79
+ {
70
80
  console.error('Error al cerrar la conexión MySQL:', error);
71
81
  throw error;
72
82
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "minervajs-helmet",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "main": "src/db.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"
@@ -10,10 +10,12 @@
10
10
  "Multi DataBase",
11
11
  "connect",
12
12
  "MySQL",
13
- "Oracle Client"
13
+ "Oracle Client",
14
+ "PostGres",
15
+ "MinervaJS"
14
16
  ],
15
17
  "author": "alexander.enrique.escobar@gmail.com",
16
- "license": "ISC",
18
+ "license": "BSD-2-Clause",
17
19
  "description": "Modulo para la gestion de coneccion a la base de datos, de diferentes tipos mediante el uso de sobre Carga y Herencia de clases",
18
20
  "dependencies": {
19
21
  "mysql2": "^3.14.0",
package/src/db.js CHANGED
@@ -27,39 +27,37 @@ const connections = {};
27
27
  */
28
28
  async function connect(databaseName, config)
29
29
  {
30
- const dbConfig = config[databaseName];
31
-
32
- if (!dbConfig) {
33
- throw new Error(`Configuración de base de datos '${databaseName}' no encontrada.`);
34
- }
30
+ const dbConfig = config[databaseName];
35
31
 
36
- if (connections[databaseName])
37
- {
38
- return connections[databaseName]; // Ya existe una conexión
39
- }
32
+ if (!dbConfig)
33
+ { throw new Error(`Configuración de base de datos '${databaseName}' no encontrada.`); }
40
34
 
41
- switch (dbConfig.type)
42
- {
43
- case 'postgres':
44
- connections[databaseName] = await postgres.connect(dbConfig);
45
- break;
46
- case 'mysql':
47
- connections[databaseName] = await mysql.connect(dbConfig);
48
- break;
49
- // case 'mariadb':
50
- // connections[databaseName] = await mariadb.connect(dbConfig);
51
- // break;
52
- case 'oracle':
53
- connections[databaseName] = await oracle.connect(dbConfig);
54
- break;
55
- // case 'mongodb':
56
- // connections[databaseName] = await mongodb.connect(dbConfig);
57
- // break;
58
- default:
59
- throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado.`);
60
- }
35
+ // Ya existe una conexión
36
+ if (connections[databaseName])
37
+ { return connections[databaseName]; }
38
+
39
+ switch (dbConfig.type)
40
+ {
41
+ case 'postgres':
42
+ connections[databaseName] = await postgres.connect(dbConfig);
43
+ break;
44
+ case 'mysql':
45
+ connections[databaseName] = await mysql.connect(dbConfig);
46
+ break;
47
+ // case 'mariadb':
48
+ // connections[databaseName] = await mariadb.connect(dbConfig);
49
+ // break;
50
+ case 'oracle':
51
+ connections[databaseName] = await oracle.connect(dbConfig);
52
+ break;
53
+ // case 'mongodb':
54
+ // connections[databaseName] = await mongodb.connect(dbConfig);
55
+ // break;
56
+ default:
57
+ throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado.`);
58
+ }
61
59
 
62
- return connections[databaseName];
60
+ return connections[databaseName];
63
61
  }
64
62
 
65
63
  /**
@@ -140,12 +138,36 @@ async function close(databaseName, config)
140
138
 
141
139
  /**
142
140
  * @function
143
- * @name executeSQL
141
+ * @name execute
144
142
  * @param {string} sql - Sentencia SQL a ejecutar
145
143
  * @param {Promise<callback>} callback - objeto, para retornar la promesa
146
144
  * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
147
145
  * @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
148
146
  */
147
+ async function execute(databaseName, sql, values = [], config)
148
+ {
149
+ const connection = await connect(databaseName, config);
150
+ const dbConfig = config[databaseName];
151
+
152
+ switch (dbConfig.type)
153
+ {
154
+ case 'postgres':
155
+ return postgres.query(connection, sql);
156
+ case 'mysql':
157
+ return mysql.query(connection, sql, values);
158
+ // case 'mariadb': // agregamos el caso MariaDB
159
+ // return mariadb.query(connection, sql, binds);
160
+ // break;
161
+ case 'oracle':
162
+ return oracle.query(connection, sql);
163
+ // case 'mongodb':
164
+ // // Adaptar la consulta SQL a la sintaxis de MongoDB
165
+ // console.warn("La función 'query' no es directamente aplicable a MongoDB con sintaxis SQL.");
166
+ // return null; // O lanzar un error
167
+ default:
168
+ throw new Error(`Tipo de base de datos '${dbConfig.type}' no soportado para la operación 'query'.`);
169
+ }
170
+ }
149
171
 
150
172
 
151
173
 
@@ -153,6 +175,7 @@ module.exports =
153
175
  {
154
176
  connect,
155
177
  query,
178
+ execute,
156
179
  close,
157
180
  // ... otras funciones comunes
158
181
  };
package/js/OLD db.js DELETED
@@ -1,76 +0,0 @@
1
- /**
2
- * @module
3
- * @name db_mysql
4
- * @description Modulo gestor de la coneccion a la base de datos, MySQL, utiliza el cliente mysql2
5
- */
6
-
7
- var mysql = require('mysql');
8
- var settings = require('../settings');
9
-
10
- /**
11
- * @function
12
- * @name executeSQL
13
- * @param {string} sql - Sentencia SQL a ejecutar
14
- * @param {Promise<callback>} callback - objeto, para retornar la promesa
15
- * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
16
- * @description Ejecuta una sentencia SQL y devuelve un objeto en un set de datos
17
- */
18
- exports.executeSQL = function (sql, callback)
19
- {
20
- var con = new mysql.createConnection(settings.dbConfig);
21
-
22
- con.connect(function(err)
23
- {
24
- if (err)
25
- {
26
- callback(null, err);
27
- //throw err;
28
- }
29
- if (settings.servConfig.debug){console.log("Connected!");}
30
- con.query(sql, function (err, result) {
31
- if (err)
32
- {
33
- callback(null, err);
34
- //throw err;
35
- }
36
- if (settings.servConfig.debug){console.log("Sentencia Ejecutada:"+sql);}
37
- callback(result);
38
-
39
- con.end();
40
- });
41
- });
42
- };
43
-
44
- /**
45
- * @function
46
- * @name executeSQLarray
47
- * @param {string} sql - Sentencia SQL a ejecutar
48
- * @param {Promise<callback>} callback - objeto, para retornar la promesa
49
- * @returns {result} result/err - Devuelve un objeto con el set de datos o un objeto err con la respuesta del error
50
- * @description Ejecuta una sentencia SQL, basado en una serie de argumentos y devuelve un objeto en un set de datos
51
- */
52
- exports.executeSQLarray = function (sql, array, callback)
53
- {
54
- var con = new mysql.createConnection(settings.dbConfig);
55
-
56
- con.connect(function(err)
57
- {
58
- if (err)
59
- {
60
- callback(null, err);
61
- //throw err;
62
- }
63
- if (settings.servConfig.debug){console.log("Connected!");}
64
- con.query(sql, array, function (err, result) {
65
- if (err)
66
- {
67
- callback(null, err);
68
- //throw err;
69
- }
70
- if (settings.servConfig.debug){console.log("Sentencia Ejecutada:"+sql);}
71
- callback(result);
72
-
73
- con.end();
74
- });
75
- });
76
- }
File without changes