dbtabla 2.2.1 → 2.2.2
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/index.mjs +4 -0
- package/lib/Connect.js +254 -254
- package/lib/procesingSql.js +1 -0
- package/package.json +8 -2
- package/refactor_dbtabla.js +0 -36
- package/test_results.txt +0 -65
package/index.mjs
ADDED
package/lib/Connect.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
const fs=require("fs")
|
|
2
|
-
const path=require("path")
|
|
3
|
-
const dbTablaModel=require("tabla-model")
|
|
4
|
-
const dbTabla=require(__dirname+"/dbTabla.js")
|
|
5
|
-
const procesingSql = require('./procesingSql')
|
|
6
|
-
/**
|
|
7
|
-
* Connect
|
|
8
|
-
* clase abstracta para crear la clase de conexion a la base de datos
|
|
9
|
-
*/
|
|
1
|
+
const fs = require("fs")
|
|
2
|
+
const path = require("path")
|
|
3
|
+
const dbTablaModel = require("tabla-model")
|
|
4
|
+
const dbTabla = require(__dirname + "/dbTabla.js")
|
|
5
|
+
const procesingSql = require('./procesingSql')
|
|
6
|
+
/**
|
|
7
|
+
* Connect
|
|
8
|
+
* clase abstracta para crear la clase de conexion a la base de datos
|
|
9
|
+
*/
|
|
10
10
|
class Connect {
|
|
11
11
|
_escapeChar;
|
|
12
12
|
_reserveIdentifiers;
|
|
@@ -17,248 +17,248 @@ class Connect {
|
|
|
17
17
|
_models;
|
|
18
18
|
_caheTablas;
|
|
19
19
|
_createdTables;
|
|
20
|
-
_escapeString;
|
|
21
|
-
/**
|
|
22
|
-
* constructor de la clase
|
|
23
|
-
* @param {object} params - parametros de conexion
|
|
24
|
-
*/
|
|
25
|
-
constructor(params,typeDB="")
|
|
26
|
-
|
|
27
|
-
this.
|
|
28
|
-
this.
|
|
29
|
-
this.
|
|
30
|
-
this.
|
|
31
|
-
this.
|
|
32
|
-
this.
|
|
33
|
-
this.
|
|
34
|
-
this.
|
|
35
|
-
this.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
*
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
*
|
|
142
|
-
* @
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
*
|
|
160
|
-
* @
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
*
|
|
174
|
-
*
|
|
175
|
-
*
|
|
176
|
-
*
|
|
177
|
-
* @param {string}
|
|
178
|
-
* @
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
{
|
|
256
|
-
await this.query(sql.insert(item))
|
|
257
|
-
}
|
|
258
|
-
res()
|
|
259
|
-
|
|
260
|
-
})
|
|
261
|
-
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
module.exports=Connect
|
|
20
|
+
_escapeString;
|
|
21
|
+
/**
|
|
22
|
+
* constructor de la clase
|
|
23
|
+
* @param {object} params - parametros de conexion
|
|
24
|
+
*/
|
|
25
|
+
constructor(params, typeDB = "") {
|
|
26
|
+
this.config = params
|
|
27
|
+
this._escapeChar = ""
|
|
28
|
+
this._reserveIdentifiers = ["*"]
|
|
29
|
+
this._ar_aliased_tables = []
|
|
30
|
+
this._dbprefix = ""
|
|
31
|
+
this._swap_pre = ""
|
|
32
|
+
this._information_schema = " "
|
|
33
|
+
this._models = {}
|
|
34
|
+
this.typeDB = typeDB
|
|
35
|
+
this._caheTablas = {}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* retorna la configuracion para los helpers
|
|
39
|
+
* @return {object}
|
|
40
|
+
*/
|
|
41
|
+
helpersConf() {
|
|
42
|
+
return {
|
|
43
|
+
escapeChar: this._escapeChar,
|
|
44
|
+
reserveIdentifiers: this._reserveIdentifiers,
|
|
45
|
+
ar_aliased_tables: this._ar_aliased_tables,
|
|
46
|
+
dbprefix: this._dbprefix,
|
|
47
|
+
swap_pre: this._swap_pre,
|
|
48
|
+
typeDB: this.typeDB,
|
|
49
|
+
escapeString: typeof this._escapeString === "function" ? e => this._escapeString(e) : null
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* retorna el modelo asociado a la tabla
|
|
54
|
+
* @param {string} tabla - nombre de la tabla
|
|
55
|
+
* @return {dbTablaModel|boolean} - si el modelo no existe retorna false
|
|
56
|
+
*/
|
|
57
|
+
model(tabla) {
|
|
58
|
+
|
|
59
|
+
return this._models[tabla] instanceof dbTablaModel ? this._models[tabla] : false
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* agrega un modelo a la lista de modelos interna
|
|
63
|
+
* @param {sqlModel|object|string} model - objeto modelo
|
|
64
|
+
*/
|
|
65
|
+
addModel(model) {
|
|
66
|
+
if (model instanceof dbTablaModel) {
|
|
67
|
+
this._models[model.tabla] = model
|
|
68
|
+
} else if (typeof model === "object" && model !== null) {
|
|
69
|
+
this._models[model.tabla] = new dbTablaModel(model.tabla, model)
|
|
70
|
+
} else {
|
|
71
|
+
this._models[model.tabla] = new dbTablaModel(model, this.helpersConf().escapeChar)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* agrega todos los modelos existentes en un directorio a la lista interna
|
|
77
|
+
* @param {string} pathModel - directorio de modelos
|
|
78
|
+
*/
|
|
79
|
+
pathModels(pathModel) {
|
|
80
|
+
const { pathToFileURL } = require('url')
|
|
81
|
+
let files = fs.readdirSync(pathModel)
|
|
82
|
+
|
|
83
|
+
let isEsmProject = false
|
|
84
|
+
try {
|
|
85
|
+
const pkgPath = path.join(process.cwd(), 'package.json')
|
|
86
|
+
if (fs.existsSync(pkgPath)) {
|
|
87
|
+
isEsmProject = JSON.parse(fs.readFileSync(pkgPath, 'utf8')).type === 'module'
|
|
88
|
+
}
|
|
89
|
+
} catch (e) { }
|
|
90
|
+
|
|
91
|
+
for (let i in files) {
|
|
92
|
+
|
|
93
|
+
if (/(\.js|\.mjs|\.cjs)$/i.test(files[i])) {
|
|
94
|
+
let filePath = path.join(pathModel, files[i])
|
|
95
|
+
|
|
96
|
+
if (isEsmProject || /\.mjs$/i.test(files[i])) {
|
|
97
|
+
import(pathToFileURL(filePath).href).then(module => {
|
|
98
|
+
let model = module.default || module
|
|
99
|
+
if (model instanceof dbTablaModel) {
|
|
100
|
+
this.addModel(model)
|
|
101
|
+
}
|
|
102
|
+
}).catch(e => console.error(`Error loading ESM model ${files[i]}:`, e))
|
|
103
|
+
} else {
|
|
104
|
+
try {
|
|
105
|
+
let model = require(filePath)
|
|
106
|
+
if (model && model.default) model = model.default
|
|
107
|
+
if (model instanceof dbTablaModel) {
|
|
108
|
+
this.addModel(model)
|
|
109
|
+
}
|
|
110
|
+
} catch (e) {
|
|
111
|
+
import(pathToFileURL(filePath).href).then(module => {
|
|
112
|
+
let model = module.default || module
|
|
113
|
+
if (model instanceof dbTablaModel) {
|
|
114
|
+
this.addModel(model)
|
|
115
|
+
}
|
|
116
|
+
}).catch(err => console.error(`Error loading model ${files[i]}:`, err))
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* metodo abstracto en su redefinicion debere generar una
|
|
127
|
+
* consulta a la base de datos y debe retornar una promesa
|
|
128
|
+
* @param {string} query - consulta sql
|
|
129
|
+
* @return {Promise}
|
|
130
|
+
*/
|
|
131
|
+
query(query) {
|
|
132
|
+
return new Promise((res) => {
|
|
133
|
+
res(query)
|
|
134
|
+
})
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* construlle un objeto dbtabla asociado a el nombre
|
|
138
|
+
* de la tabla del primer parametro
|
|
139
|
+
* @param {string} tabla - nombre de la tabla en la base de datos
|
|
140
|
+
* @param {function} callback - funcion anomina que se ejecutara cuando se verifique la existencia de la tabla
|
|
141
|
+
* @param {boolean} verify - indicara si se verificara la existencia de la tabla o se esperara a la primera consulta
|
|
142
|
+
* @return {dbTabla}
|
|
143
|
+
*/
|
|
144
|
+
tabla(tabla, callback, verify = false) {
|
|
145
|
+
if (typeof this._caheTablas[tabla] !== "undefined") {
|
|
146
|
+
typeof callback === "function" ? callback(this._caheTablas[tabla]) : null
|
|
147
|
+
return this._caheTablas[tabla]
|
|
148
|
+
}
|
|
149
|
+
return this._caheTablas[tabla] = new dbTabla({
|
|
150
|
+
tabla: tabla,
|
|
151
|
+
connection: this,
|
|
152
|
+
callback: callback,
|
|
153
|
+
config: this.helpersConf()
|
|
154
|
+
}, verify)
|
|
155
|
+
//console.log(config)
|
|
156
|
+
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* metodo abstracto que escapara el texto sql
|
|
160
|
+
* @param {string} str - texto
|
|
161
|
+
* @return {string}
|
|
162
|
+
*/
|
|
163
|
+
/*__escapeString(str)
|
|
164
|
+
{
|
|
165
|
+
return str
|
|
166
|
+
}*/
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* metodo abstracto que verificara la existencia de la tabla
|
|
171
|
+
* en la base de datos y retornar una promesa
|
|
172
|
+
* el valor de la promesa debe ser en el siguiente formato
|
|
173
|
+
* {
|
|
174
|
+
* tabla:{string} - nombre de la tabla
|
|
175
|
+
* colums:{array} - columnas de la tabla
|
|
176
|
+
* }
|
|
177
|
+
* @param {string} table - nombre de la tabla
|
|
178
|
+
* @return {Promise}
|
|
179
|
+
*/
|
|
180
|
+
_keysInTable(table) {
|
|
181
|
+
return new Promise((res) => {
|
|
182
|
+
res({
|
|
183
|
+
tabla: table,
|
|
184
|
+
colums: []
|
|
185
|
+
})
|
|
186
|
+
})
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Verifica si la tabla esta representada en un modelo si el parametro create es true
|
|
190
|
+
* se intentara crear la tabla e inicializarla retorna una promesa si no existe el modelo
|
|
191
|
+
* lanzara un catch
|
|
192
|
+
*
|
|
193
|
+
* @param {string} tabla - nombre de la tabla
|
|
194
|
+
* @param {boolean} create - existencia en la base de datos
|
|
195
|
+
* @return {Promise}
|
|
196
|
+
*/
|
|
197
|
+
inModel(tabla, create) {
|
|
198
|
+
return new Promise((res, rej) => {
|
|
199
|
+
if (!this.model(tabla)) {
|
|
200
|
+
rej()
|
|
201
|
+
} else {
|
|
202
|
+
|
|
203
|
+
if (create) {
|
|
204
|
+
|
|
205
|
+
this._createTable(this.model(tabla))
|
|
206
|
+
.then(res).catch(rej)
|
|
207
|
+
} else {
|
|
208
|
+
res(this.model(tabla).getData())
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
})
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* crea una tabla en la base de datos apartir de un modelo
|
|
215
|
+
* si la tabla tiene claves foraneas intentara crear primero
|
|
216
|
+
* las tablas a las que apuntan
|
|
217
|
+
* @param {dbTablaModel} model - objeto del modelo
|
|
218
|
+
* @return {Promise}
|
|
219
|
+
*/
|
|
220
|
+
_createTable(model) {
|
|
221
|
+
|
|
222
|
+
return new Promise((res, rej) => {
|
|
223
|
+
this._createdTables = {}
|
|
224
|
+
let rescursive = (foreingKey, i) => {
|
|
225
|
+
|
|
226
|
+
if (foreingKey[i] !== undefined) {
|
|
227
|
+
try {
|
|
228
|
+
this.tabla(foreingKey[i].reference, (t) => {
|
|
229
|
+
rescursive(foreingKey, ++i)
|
|
230
|
+
}, true)
|
|
231
|
+
} catch (e) { rej(e) }
|
|
232
|
+
} else {
|
|
233
|
+
|
|
234
|
+
this.query(model.sql(this)).then(() => {
|
|
235
|
+
this._createdTables[model.tabla] = true
|
|
236
|
+
this._initializeTable(model.tabla).then(() => {
|
|
237
|
+
|
|
238
|
+
res(model.getData())
|
|
239
|
+
}).catch(rej)
|
|
240
|
+
}).catch(rej)
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
rescursive(model.foreingKey(), 0)
|
|
244
|
+
})
|
|
245
|
+
}
|
|
246
|
+
_initializeTable(tab) {
|
|
247
|
+
return new Promise(async (res) => {
|
|
248
|
+
|
|
249
|
+
let sql = new procesingSql(this.model(tab).getData(), this.helpersConf())
|
|
250
|
+
let init = this.model(tab).getData().init
|
|
251
|
+
|
|
252
|
+
if (init.length < 1) {
|
|
253
|
+
return res()
|
|
254
|
+
}
|
|
255
|
+
for (let item of init) {
|
|
256
|
+
await this.query(sql.insert(item))
|
|
257
|
+
}
|
|
258
|
+
res()
|
|
259
|
+
|
|
260
|
+
})
|
|
261
|
+
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
module.exports = Connect
|
package/lib/procesingSql.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbtabla",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.2",
|
|
4
4
|
"description": "interface de alto nivel para sql",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "enyerverfranco@gmail.com",
|
|
@@ -9,9 +9,15 @@
|
|
|
9
9
|
"url": "git+https://github.com/ever23/dbtabla.git"
|
|
10
10
|
},
|
|
11
11
|
"main": "index.js",
|
|
12
|
+
"exports": {
|
|
13
|
+
".": {
|
|
14
|
+
"require": "./index.js",
|
|
15
|
+
"import": "./index.mjs"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
12
18
|
"scripts": {
|
|
13
19
|
"lint": "eslint ./index.js ./lib",
|
|
14
|
-
"test": "node --test ./test/
|
|
20
|
+
"test": "node --test ./test/"
|
|
15
21
|
},
|
|
16
22
|
"keywords": [
|
|
17
23
|
"sql",
|
package/refactor_dbtabla.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
const fs = require('fs');
|
|
2
|
-
const path = require('path');
|
|
3
|
-
|
|
4
|
-
const libDir = 'c:/programacion/dbtabla/dbtabla/lib';
|
|
5
|
-
|
|
6
|
-
// 1. Refactor Connect.js
|
|
7
|
-
let connectFile = path.join(libDir, 'Connect.js');
|
|
8
|
-
let connectCode = fs.readFileSync(connectFile, 'utf8');
|
|
9
|
-
connectCode = connectCode.replace(/class Connect\s*\{/, 'class Connect {\n #escapeChar;\n #reserveIdentifiers;\n #ar_aliased_tables;\n #dbprefix;\n #swap_pre;\n #information_schema;\n #models;\n #caheTablas;\n #createdTables;\n #escapeString;');
|
|
10
|
-
connectCode = connectCode.replace(/this\.__/g, 'this.#');
|
|
11
|
-
connectCode = connectCode.replace(/^(\s*)__([a-zA-Z0-9_]+)\s*\(/gm, '$1#$2(');
|
|
12
|
-
fs.writeFileSync(connectFile, connectCode);
|
|
13
|
-
|
|
14
|
-
// 2. Refactor dbTabla.js
|
|
15
|
-
let dbTablaFile = path.join(libDir, 'dbTabla.js');
|
|
16
|
-
let dbTablaCode = fs.readFileSync(dbTablaFile, 'utf8');
|
|
17
|
-
dbTablaCode = dbTablaCode.replace(/class dbTabla\s*\{/, 'class dbTabla {\n #connection;\n #lastSql;\n #keys;\n #callbackKey;\n #config;\n\n get lastSql() { return this.#lastSql; }\n');
|
|
18
|
-
dbTablaCode = dbTablaCode.replace(/this\.__/g, 'this.#');
|
|
19
|
-
dbTablaCode = dbTablaCode.replace(/^(\s*)__([a-zA-Z0-9_]+)\s*\(/gm, '$1#$2(');
|
|
20
|
-
fs.writeFileSync(dbTablaFile, dbTablaCode);
|
|
21
|
-
|
|
22
|
-
// 3. Refactor procesingSql.js
|
|
23
|
-
let procesingSqlFile = path.join(libDir, 'procesingSql.js');
|
|
24
|
-
let procesingSqlCode = fs.readFileSync(procesingSqlFile, 'utf8');
|
|
25
|
-
procesingSqlCode = procesingSqlCode.replace(/class prosesingSql\s*\{/, 'class prosesingSql {\n #helpers;');
|
|
26
|
-
procesingSqlCode = procesingSqlCode.replace(/this\.__/g, 'this.#');
|
|
27
|
-
procesingSqlCode = procesingSqlCode.replace(/^(\s*)__([a-zA-Z0-9_]+)\s*\(/gm, '$1#$2(');
|
|
28
|
-
fs.writeFileSync(procesingSqlFile, procesingSqlCode);
|
|
29
|
-
|
|
30
|
-
// 4. Refactor dbResult.js (read exposed property)
|
|
31
|
-
let dbResultFile = path.join(libDir, 'dbResult.js');
|
|
32
|
-
let dbResultCode = fs.readFileSync(dbResultFile, 'utf8');
|
|
33
|
-
dbResultCode = dbResultCode.replace(/dbTabla\.__lastSql/g, 'dbTabla.lastSql');
|
|
34
|
-
fs.writeFileSync(dbResultFile, dbResultCode);
|
|
35
|
-
|
|
36
|
-
console.log('Refactoring completed successfully.');
|
package/test_results.txt
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
> dbtabla@2.1.1 test
|
|
3
|
-
> node --test ./test/index.js
|
|
4
|
-
|
|
5
|
-
ÔûÂ test de dbTabla
|
|
6
|
-
ÔûÂ Test de la clase prosessingSql
|
|
7
|
-
Ô£ö verificacion de metodos (1.2094ms)
|
|
8
|
-
Ô£ö metodo busqueda (2.2858ms)
|
|
9
|
-
Ô£ö metodo select (1.1186ms)
|
|
10
|
-
Ô£ö metodo select (0.2998ms)
|
|
11
|
-
Ô£ö metodo insert (0.6902ms)
|
|
12
|
-
Ô£ö metodo update (0.4324ms)
|
|
13
|
-
Ô£ö metodo delete (0.3132ms)
|
|
14
|
-
Ô£ö Test de la clase prosessingSql (7.4947ms)
|
|
15
|
-
ÔûÂ Test de la clase Connect
|
|
16
|
-
Ô£ö verificacion de metodos (0.2097ms)
|
|
17
|
-
Ô£ö verificacion de modelos (2.2262ms)
|
|
18
|
-
Ô£ö verificacion de tabla (0.3958ms)
|
|
19
|
-
Ô£ö Test de la clase Connect (3.0674ms)
|
|
20
|
-
ÔûÂ Test de la clase dbRow
|
|
21
|
-
Ô£ö verificacion de metodos (0.2598ms)
|
|
22
|
-
Ô£û metodo update (1.4786ms)
|
|
23
|
-
Ô£ö metodo update sin claves primarias (0.367ms)
|
|
24
|
-
Ô£û metodo delete (0.6469ms)
|
|
25
|
-
Ô£ö metodo delete sin claves primarias (0.246ms)
|
|
26
|
-
Ô£û Test de la clase dbRow (3.3226ms)
|
|
27
|
-
Ô£û test de dbTabla (14.5938ms)
|
|
28
|
-
Ôä╣ tests 15
|
|
29
|
-
Ôä╣ suites 4
|
|
30
|
-
Ôä╣ pass 13
|
|
31
|
-
Ôä╣ fail 2
|
|
32
|
-
Ôä╣ cancelled 0
|
|
33
|
-
Ôä╣ skipped 0
|
|
34
|
-
Ôä╣ todo 0
|
|
35
|
-
Ôä╣ duration_ms 168.9837
|
|
36
|
-
|
|
37
|
-
Ô£û failing tests:
|
|
38
|
-
|
|
39
|
-
test at test\dbRow.js:74:5
|
|
40
|
-
Ô£û metodo update (1.4786ms)
|
|
41
|
-
AssertionError [ERR_ASSERTION]: "UPDATE test1 SET col1=2343 WHERE id=1 AND col1=234 AND col2='row';" == 'UPDATE test1 SET col1=2343 WHERE id=1;'
|
|
42
|
-
at C:\programacion\dbtabla\dbtabla\test\dbRow.js:90:20
|
|
43
|
-
at async Test.run (node:internal/test_runner/test:1125:7)
|
|
44
|
-
at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7) {
|
|
45
|
-
generatedMessage: true,
|
|
46
|
-
code: 'ERR_ASSERTION',
|
|
47
|
-
actual: "UPDATE test1 SET col1=2343 WHERE id=1 AND col1=234 AND col2='row';",
|
|
48
|
-
expected: 'UPDATE test1 SET col1=2343 WHERE id=1;',
|
|
49
|
-
operator: '==',
|
|
50
|
-
diff: 'simple'
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
test at test\dbRow.js:111:5
|
|
54
|
-
Ô£û metodo delete (0.6469ms)
|
|
55
|
-
AssertionError [ERR_ASSERTION]: "DELETE FROM test1 WHERE id=1 AND col1=234 AND col2='row';" == 'DELETE FROM test1 WHERE id=1;'
|
|
56
|
-
at C:\programacion\dbtabla\dbtabla\test\dbRow.js:122:20
|
|
57
|
-
at async Test.run (node:internal/test_runner/test:1125:7)
|
|
58
|
-
at async Suite.processPendingSubtests (node:internal/test_runner/test:787:7) {
|
|
59
|
-
generatedMessage: true,
|
|
60
|
-
code: 'ERR_ASSERTION',
|
|
61
|
-
actual: "DELETE FROM test1 WHERE id=1 AND col1=234 AND col2='row';",
|
|
62
|
-
expected: 'DELETE FROM test1 WHERE id=1;',
|
|
63
|
-
operator: '==',
|
|
64
|
-
diff: 'simple'
|
|
65
|
-
}
|