pwi-plata-type 0.4.163 → 0.4.165

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.
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Query = exports.Driver = exports.Internals = void 0;
7
7
  const knex_1 = __importDefault(require("knex"));
8
8
  const knex_schema_inspector_1 = __importDefault(require("knex-schema-inspector"));
9
+ const node_crypto_1 = require("node:crypto");
9
10
  var Internals;
10
11
  (function (Internals) {
11
12
  function context(c) {
@@ -56,15 +57,27 @@ var Internals;
56
57
  }
57
58
  }
58
59
  Internals.includeOne = includeOne;
60
+ function getConnTable(table, trxName) {
61
+ let conn = this.table(table);
62
+ if (trxName !== undefined && conn.comment !== undefined) {
63
+ conn = conn.comment(`TRX: ${trxName}`);
64
+ }
65
+ return conn;
66
+ }
67
+ Internals.getConnTable = getConnTable;
59
68
  })(Internals || (exports.Internals = Internals = {}));
60
69
  class Driver {
61
70
  config;
62
71
  inTransaction;
63
72
  conn;
73
+ trxConn;
64
74
  cacheTable;
75
+ logQuerys;
76
+ trxName;
65
77
  constructor(config, inTransaction, trx, cacheTable) {
66
78
  this.inTransaction = inTransaction;
67
79
  this.config = config;
80
+ this.logQuerys = Plata.config.ENV === 'debug' || Plata.config._PLATA_SQL_SHOWQUERY === '1';
68
81
  if (!this.inTransaction) {
69
82
  if (config.pool === undefined)
70
83
  config.pool = {
@@ -74,29 +87,46 @@ class Driver {
74
87
  if (!Plata._knexExtended) {
75
88
  knex_1.default.QueryBuilder.extend('context', Internals.context);
76
89
  knex_1.default.QueryBuilder.extend('includeOne', Internals.includeOne);
90
+ knex_1.default.QueryBuilder.extend('getConnTable', Internals.getConnTable);
77
91
  Plata._knexExtended = true;
78
92
  }
79
93
  this.conn = (0, knex_1.default)(config);
94
+ this.trxConn = (0, knex_1.default)({
95
+ ...config,
96
+ pool: {
97
+ min: 1,
98
+ max: 1
99
+ }
100
+ });
80
101
  }
81
102
  else {
82
103
  this.conn = trx;
104
+ this.trxConn = trx;
83
105
  }
84
- if (Plata.config.ENV === 'debug' || Plata.config._PLATA_SQL_SHOWQUERY === '1') {
106
+ this.trxName = this.conn?.userParams?.trxName;
107
+ if (this.logQuerys) {
85
108
  this.conn.on('query', (...args) => console.log(...args));
86
109
  this.conn.on('query-error', (...args) => console.error(...args));
87
110
  }
88
111
  this.cacheTable = cacheTable ?? new Map();
89
112
  }
113
+ runRawWithComment(query) {
114
+ if (this.trxName === undefined) {
115
+ return this.conn.raw(query.sql, query.bindings);
116
+ }
117
+ return this.conn.raw(`/*TRX: ${this.trxName}*/${query.sql}`, query.bindings);
118
+ }
90
119
  select(table, model) {
91
120
  return {
92
- build: (builder) => new Query(builder(this.conn.queryBuilder().from(table)), model, table),
121
+ build: (builder) => new Query(builder(this.conn.queryBuilder().getConnTable(table, this.trxName)), model, table),
93
122
  };
94
123
  }
95
124
  async insert(table, model, values, options) {
96
125
  if (this.config.client === 'mssql') {
97
- return this.conn(table).insert(values, '*', {
126
+ const sql = this.conn.queryBuilder().getConnTable(table, this.trxName).insert(values, '*', {
98
127
  includeTriggerModifications: options?.ignoreTrigger === undefined
99
- }).then(r => r, err => Plata.BuildPlataError({
128
+ }).toSQL();
129
+ return this.runRawWithComment(sql).then(r => r, err => Plata.BuildPlataError({
100
130
  errorID: 'PLSQL001',
101
131
  msg: 'Unexpected error while inserting',
102
132
  error: {
@@ -106,7 +136,7 @@ class Driver {
106
136
  }));
107
137
  }
108
138
  if (options?.ignoreTrigger === true)
109
- return this.conn(table).insert(values, '*', {
139
+ return this.conn.queryBuilder().getConnTable(table, this.trxName).insert(values, '*', {
110
140
  includeTriggerModifications: options?.ignoreTrigger
111
141
  }).then(r => r, err => Plata.BuildPlataError({
112
142
  errorID: 'PLSQLINS001',
@@ -136,22 +166,30 @@ class Driver {
136
166
  return key;
137
167
  }
138
168
  return this.transaction(async (trx) => {
139
- const result = await trx.conn(table).insert(values);
169
+ const result = await trx.conn.queryBuilder().getConnTable(table, `${trx.trxName}<->${this.trxName}`).insert(values);
140
170
  return trx.conn.select('*').from(table).whereIn(key, result);
141
171
  });
142
172
  }
143
173
  update(table, model) {
144
174
  return {
145
- build: async (s, set) => s(this.conn(table)).update(set).then(rows => rows, err => Plata.BuildPlataError({
146
- errorID: 'PLSQL002',
147
- msg: 'Unexpected error while update',
148
- error: {
149
- message: err?.toString(),
150
- stack: err?.stack ?? new Error().stack
151
- }
152
- })),
175
+ build: async (s, set) => {
176
+ const sql = s(this.conn.queryBuilder().getConnTable(table, this.trxName)).update(set).toSQL();
177
+ return this.runRawWithComment(sql).then(() => true, err => Plata.BuildPlataError({
178
+ errorID: 'PLSQL002',
179
+ msg: 'Unexpected error while update',
180
+ error: {
181
+ message: err?.toString(),
182
+ stack: err?.stack ?? new Error().stack
183
+ }
184
+ }));
185
+ },
153
186
  };
154
187
  }
188
+ log(text, ...extras) {
189
+ if (this.logQuerys === true) {
190
+ console.log(text, ...extras);
191
+ }
192
+ }
155
193
  trasation(transaction, config) {
156
194
  return this.conn.transaction(async (trx) => {
157
195
  const transactionDriver = new Driver(this.config, true, trx, this.cacheTable);
@@ -173,10 +211,12 @@ class Driver {
173
211
  });
174
212
  }
175
213
  async getTransactionDriver(config) {
176
- const provider = await this.conn.transactionProvider({
214
+ const trxName = (0, node_crypto_1.randomUUID)();
215
+ const provider = await this.trxConn.transactionProvider({
177
216
  ...config,
178
217
  doNotRejectOnRollback: true,
179
218
  });
219
+ this.log(`[PLATA-SQL] [TRX-${trxName}] - Inciando provider`);
180
220
  const trx = await provider().catch(e => ({
181
221
  errorID: 'PLSQLGETTRX001',
182
222
  msg: 'Erro ao iniciar a transação',
@@ -186,8 +226,11 @@ class Driver {
186
226
  }
187
227
  }));
188
228
  if (trx.errorID !== undefined) {
229
+ this.log(`[PLATA-SQL] [TRX-${trxName}] - Conexão não foi aberta`);
189
230
  return trx;
190
231
  }
232
+ trx.userParams.trxName = trxName;
233
+ this.log(`[PLATA-SQL] [TRX-${trxName}] - Conexão foi aberta`);
191
234
  return new Driver(this.config, true, trx, this.cacheTable);
192
235
  }
193
236
  async transaction(transaction, config) {
@@ -195,12 +238,17 @@ class Driver {
195
238
  if (driver.errorID !== undefined) {
196
239
  return driver;
197
240
  }
241
+ const transPromise = Plata.FastPromise(() => driver.conn.executionPromise.catch((...args) => console.log(...args)));
198
242
  try {
199
243
  const resultTransation = await transaction(driver);
200
244
  if (resultTransation.errorID !== undefined) {
201
- await driver.conn.rollback().catch(console.log);
245
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Roollback -> Erro da API na transação`);
246
+ await driver.conn.rollback().catch((...err) => console.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}]`, ...err));
247
+ await transPromise;
248
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Roollback realizado`);
202
249
  return resultTransation;
203
250
  }
251
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Commit -> Realizando Commit`);
204
252
  const resultCommit = await driver.conn.commit().then(() => true, err => ({
205
253
  errorID: 'PLSQLTRX003',
206
254
  msg: 'Erro inesperado ao realizar o commit',
@@ -210,13 +258,20 @@ class Driver {
210
258
  }
211
259
  }));
212
260
  if (resultCommit.errorID !== undefined) {
213
- await driver.conn.rollback().catch(console.log);
261
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Rollback -> Erro no commit, realizando Rollback`);
262
+ await driver.conn.rollback().catch((...err) => console.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}]`, ...err));
263
+ await transPromise;
264
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Roollback realizado`);
214
265
  return resultCommit;
215
266
  }
267
+ await transPromise;
216
268
  return resultTransation;
217
269
  }
218
270
  catch (err) {
219
- await driver.conn.rollback().catch(console.log);
271
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Rollback -> Erro inesperado: `, err);
272
+ await driver.conn.rollback().catch((...err) => console.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}]`, ...err));
273
+ await transPromise;
274
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Rollback -> Roollback realizado`);
220
275
  return {
221
276
  errorID: 'PLSQLTRX002',
222
277
  msg: 'Erro inesperado ao realizar a transação ',
@@ -1 +1 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/libs/sql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../src/libs/sql.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pwi-plata-type",
3
- "version": "0.4.163",
3
+ "version": "0.4.165",
4
4
  "main": "__BUILD__/index",
5
5
  "types": "src/@types/exported.d.ts",
6
6
  "bin": {
@@ -28,7 +28,7 @@
28
28
  "effect": "^2.0.0-next.30",
29
29
  "express": "^4.18.1",
30
30
  "glob": "^8.0.3",
31
- "knex": "^2.4.2",
31
+ "knex": "^3.1.0",
32
32
  "knex-schema-inspector": "^3.0.1",
33
33
  "moment": "^2.29.4",
34
34
  "node-schedule": "^2.1.0",
@@ -7,6 +7,8 @@ declare module 'knex' {
7
7
  includeOne<TRecord extends {}, TResult>(table: keyof TRecord, type: Sql.Joins,s: KnexOriginal.JoinCallback): KnexOriginal.QueryBuilder<TRecord, TResult>;
8
8
  context<TRecord extends {}, TResult>(context: any): KnexOriginal.QueryBuilder<TRecord, TResult>;
9
9
  context<T>(): T;
10
+ getConnTable<TRecord extends {}, TResult>(table: string, trxName?: string): KnexOriginal.QueryBuilder<TRecord, TResult>
11
+ comment?: <TRecord extends {}, TResult>(comment: string) => KnexOriginal.QueryBuilder<TRecord, TResult>
10
12
  }
11
13
  }
12
14
  }
package/src/libs/sql.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import knex, { Knex } from "knex"
2
2
  import { ModelTemplate } from "./models"
3
3
  import schemaInspector from 'knex-schema-inspector';
4
+ import { randomUUID } from "node:crypto"
5
+
4
6
  export namespace Internals {
5
7
  export function context<T extends {} | undefined>(c: T): T extends undefined ? void : T {
6
8
  const context = this.queryContext() ?? Object.create(null)
@@ -58,17 +60,33 @@ export namespace Internals {
58
60
  }
59
61
  }
60
62
 
63
+ export function getConnTable(this: Knex.QueryBuilder, table: string, trxName?: string) {
64
+ let conn = this.table(table)
65
+
66
+ if (trxName !== undefined && conn.comment !== undefined) {
67
+ conn = conn.comment(`TRX: ${trxName}`)
68
+ }
69
+
70
+ return conn
71
+ }
61
72
  }
62
73
 
63
74
  export class Driver<InTransaction extends boolean> {
64
75
  public readonly config: Knex.Config
65
76
  public readonly inTransaction: InTransaction
66
77
  public readonly conn: InTransaction extends true ? Knex.Transaction : Knex
78
+ public readonly trxConn: InTransaction extends true ? Knex.Transaction : Knex
67
79
  public readonly cacheTable: Map<string, Sql.CacheTable>
80
+ public readonly logQuerys: boolean
81
+ public readonly trxName: string | undefined
82
+
68
83
  constructor(config: Knex.Config, inTransaction: InTransaction, trx?: Knex.Transaction, cacheTable?: Map<string, Sql.CacheTable>) {
69
84
  this.inTransaction = inTransaction
70
85
  this.config = config
71
86
 
87
+ this.logQuerys = Plata.config.ENV === 'debug' || Plata.config._PLATA_SQL_SHOWQUERY === '1'
88
+
89
+
72
90
  if (!this.inTransaction) {
73
91
  if (config.pool === undefined)
74
92
  config.pool = {
@@ -80,30 +98,47 @@ export class Driver<InTransaction extends boolean> {
80
98
  if (!Plata._knexExtended) {
81
99
  knex.QueryBuilder.extend('context', Internals.context)
82
100
  knex.QueryBuilder.extend('includeOne', Internals.includeOne)
101
+ knex.QueryBuilder.extend('getConnTable', Internals.getConnTable)
83
102
 
84
103
  Plata._knexExtended = true
85
104
  }
86
105
 
87
106
  this.conn = knex(config) as any
107
+ this.trxConn = knex({
108
+ ...config,
109
+ pool: {
110
+ min: 1,
111
+ max: 1
112
+ }
113
+ }) as any
88
114
  } else {
89
115
  this.conn = trx as any
116
+ this.trxConn = trx as any
90
117
  }
91
118
 
92
- if (Plata.config.ENV === 'debug' || Plata.config._PLATA_SQL_SHOWQUERY === '1') {
119
+ this.trxName = this.conn?.userParams?.trxName
120
+ if (this.logQuerys) {
93
121
  this.conn.on('query', (...args) => console.log(...args))
94
122
  this.conn.on('query-error', (...args) => console.error(...args))
95
123
  }
96
-
97
124
  this.cacheTable = cacheTable ?? new Map()
98
125
  }
99
126
 
127
+ public runRawWithComment(query: { sql: string, bindings: readonly any[] }) {
128
+ if (this.trxName === undefined) {
129
+ return this.conn.raw(query.sql, query.bindings)
130
+ }
131
+
132
+ return this.conn.raw(`/*TRX: ${this.trxName}*/${query.sql}`, query.bindings)
133
+ }
134
+
100
135
  public select<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>) {
101
136
  return {
102
137
  build: (builder: Sql.Builder<T>) =>
103
138
  new Query(
104
- builder(this.conn.queryBuilder().from(table)),
139
+ builder(this.conn.queryBuilder().getConnTable(table, this.trxName)),
105
140
  model,
106
- table
141
+ table,
107
142
  )
108
143
  ,
109
144
  }
@@ -111,13 +146,15 @@ export class Driver<InTransaction extends boolean> {
111
146
 
112
147
  public async insert<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>, values: Model.ParcialTemplateType<T>[], options?: Sql.InsertOptions): PlataPromise<Model.ExtractTemplateType<T>[]> {
113
148
  if (this.config.client === 'mssql') {
114
- return this.conn(table).insert(
149
+ const sql = this.conn.queryBuilder().getConnTable(table, this.trxName).insert(
115
150
  values,
116
151
  '*',
117
152
  {
118
153
  includeTriggerModifications: options?.ignoreTrigger === undefined
119
154
  }
120
- ).then(
155
+ ).toSQL()
156
+
157
+ return this.runRawWithComment(sql).then(
121
158
  r => r,
122
159
  err => Plata.BuildPlataError({
123
160
  errorID: 'PLSQL001',
@@ -130,8 +167,10 @@ export class Driver<InTransaction extends boolean> {
130
167
  )
131
168
  }
132
169
 
170
+ // TODO ver a necessidade de comentario de trx nas outras conexões
171
+
133
172
  if (options?.ignoreTrigger === true)
134
- return this.conn(table).insert(
173
+ return this.conn.queryBuilder().getConnTable(table, this.trxName).insert(
135
174
  values,
136
175
  '*',
137
176
  {
@@ -177,7 +216,7 @@ export class Driver<InTransaction extends boolean> {
177
216
 
178
217
  return this.transaction(
179
218
  async (trx) => {
180
- const result: number[] = await trx.conn(table).insert(
219
+ const result: number[] = await trx.conn.queryBuilder().getConnTable(table, `${trx.trxName}<->${this.trxName}`).insert(
181
220
  values,
182
221
  )
183
222
 
@@ -188,10 +227,12 @@ export class Driver<InTransaction extends boolean> {
188
227
 
189
228
  public update<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>) {
190
229
  return {
191
- build: async (s: Sql.Builder<T>, set: Model.ParcialTemplateType<T>): PlataPromise<number> =>
192
- s(this.conn(table)).update(set as any).then(
193
- rows => rows,
194
- err => Plata.BuildPlataError({
230
+ build: async (s: Sql.Builder<T>, set: Model.ParcialTemplateType<T>): PlataPromise<true> => {
231
+ const sql = s(this.conn.queryBuilder().getConnTable(table, this.trxName)).update(set as any).toSQL()
232
+
233
+ return this.runRawWithComment(sql).then(
234
+ () => true,
235
+ err => Plata.BuildPlataError({
195
236
  errorID: 'PLSQL002',
196
237
  msg: 'Unexpected error while update',
197
238
  error: {
@@ -200,10 +241,15 @@ export class Driver<InTransaction extends boolean> {
200
241
  }
201
242
  })
202
243
  )
203
- ,
244
+ },
204
245
  }
205
246
  }
206
247
 
248
+ public log(text: string, ...extras: any[]) {
249
+ if (this.logQuerys === true) {
250
+ console.log(text, ...extras)
251
+ }
252
+ }
207
253
 
208
254
  /** @deprecated */
209
255
  public trasation<T = any>(transaction: Sql.TransactionFunction<Driver<true>, T>, config?: Knex.TransactionConfig) {
@@ -235,11 +281,14 @@ export class Driver<InTransaction extends boolean> {
235
281
  }
236
282
 
237
283
  public async getTransactionDriver(config?: Knex.TransactionConfig): PlataPromise<Driver<true>> {
238
- const provider = await this.conn.transactionProvider({
284
+ const trxName = randomUUID()
285
+ const provider = await this.trxConn.transactionProvider({
239
286
  ...config,
240
287
  doNotRejectOnRollback: true,
241
288
  })
242
289
 
290
+ this.log(`[PLATA-SQL] [TRX-${trxName}] - Inciando provider`)
291
+
243
292
  // Inicia a transação
244
293
  const trx: PlataResult<Knex.Transaction> = await provider().catch(
245
294
  e => ({
@@ -253,9 +302,13 @@ export class Driver<InTransaction extends boolean> {
253
302
  )
254
303
 
255
304
  if (trx.errorID !== undefined) {
305
+ this.log(`[PLATA-SQL] [TRX-${trxName}] - Conexão não foi aberta`)
256
306
  return trx
257
307
  }
258
308
 
309
+ trx.userParams.trxName = trxName
310
+
311
+ this.log(`[PLATA-SQL] [TRX-${trxName}] - Conexão foi aberta`)
259
312
  return new Driver(this.config, true, trx, this.cacheTable)
260
313
  }
261
314
 
@@ -265,15 +318,22 @@ export class Driver<InTransaction extends boolean> {
265
318
  if (driver.errorID !== undefined) {
266
319
  return driver
267
320
  }
321
+
322
+ const transPromise = Plata.FastPromise(() => driver.conn.executionPromise.catch((...args) => console.log(...args)))
268
323
 
269
324
  try {
270
325
  const resultTransation = await transaction(driver)
271
326
 
272
327
  if (resultTransation.errorID !== undefined) {
273
- await driver.conn.rollback().catch(console.log)
328
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Roollback -> Erro da API na transação`)
329
+ await driver.conn.rollback().catch((...err) => console.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}]`, ...err))
330
+ await transPromise
331
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Roollback realizado`)
332
+
274
333
  return resultTransation
275
334
  }
276
335
 
336
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Commit -> Realizando Commit`)
277
337
  const resultCommit: PlataResult<true> = await driver.conn.commit().then(
278
338
  () => true,
279
339
  err => ({
@@ -286,14 +346,23 @@ export class Driver<InTransaction extends boolean> {
286
346
  })
287
347
  )
288
348
 
349
+
289
350
  if (resultCommit.errorID !== undefined) {
290
- await driver.conn.rollback().catch(console.log)
351
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Rollback -> Erro no commit, realizando Rollback`)
352
+ await driver.conn.rollback().catch((...err) => console.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}]`, ...err))
353
+ await transPromise
354
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Roollback realizado`)
291
355
  return resultCommit
292
356
  }
293
357
 
358
+ await transPromise
359
+
294
360
  return resultTransation
295
361
  } catch (err) {
296
- await driver.conn.rollback().catch(console.log)
362
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Rollback -> Erro inesperado: `, err)
363
+ await driver.conn.rollback().catch((...err) => console.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}]`, ...err))
364
+ await transPromise
365
+ this.log(`[PLATA-SQL] [TRX-${driver.conn.userParams?.trxName}] - Rollback -> Roollback realizado`)
297
366
 
298
367
  return {
299
368
  errorID: 'PLSQLTRX002',