pwi-plata-type 0.4.190 → 0.4.192

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.
@@ -7,7 +7,6 @@ exports.PlataGlobalRuntime = void 0;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const node_fs_1 = __importDefault(require("node:fs"));
9
9
  const node_cluster_1 = __importDefault(require("node:cluster"));
10
- const effect_1 = require("effect");
11
10
  const fs_1 = require("./fs");
12
11
  const glob_1 = require("glob");
13
12
  class PlataGlobalRuntime {
@@ -21,6 +20,7 @@ class PlataGlobalRuntime {
21
20
  _knexExtended = false;
22
21
  _loadedsWasms = new Set();
23
22
  config = process.env;
23
+ effectLib = null;
24
24
  constructor() {
25
25
  this.ProjectDir = node_path_1.default.resolve('.');
26
26
  this.ProjectJson = JSON.parse(node_fs_1.default.readFileSync(node_path_1.default.join(this.ProjectDir, 'package.json')).toString());
@@ -38,6 +38,12 @@ class PlataGlobalRuntime {
38
38
  };
39
39
  }
40
40
  }
41
+ getEffectLib() {
42
+ if (this.effectLib === null) {
43
+ this.effectLib = require('effect').Effect;
44
+ }
45
+ return this.effectLib;
46
+ }
41
47
  CacheClass(newFunction) {
42
48
  const p = process;
43
49
  if (p._plata_cache === undefined) {
@@ -52,21 +58,18 @@ class PlataGlobalRuntime {
52
58
  if (promises.length === 0) {
53
59
  return [];
54
60
  }
55
- const results = [];
61
+ const Effect = this.getEffectLib();
62
+ const results = new Array(promises.length);
56
63
  let error = null;
57
- const promisesWithID = promises.map((p, i) => ({
58
- promise: p,
59
- id: i
60
- }));
61
- const effect = effect_1.Effect.forEach(promisesWithID, (p) => effect_1.Effect.gen(function* (_) {
62
- const result = yield* _(effect_1.Effect.promise(() => p.promise));
64
+ const effect = Effect.forEach(promises, (p, i) => Effect.gen(function* (_) {
65
+ const result = yield* _(Effect.promise(() => p));
63
66
  if (result.errorID !== undefined) {
64
67
  error = result;
65
- return yield* _(effect_1.Effect.interrupt);
68
+ return yield* _(Effect.interrupt);
66
69
  }
67
- results[p.id] = result;
70
+ results[i] = result;
68
71
  }), { concurrency: 'unbounded' });
69
- await effect_1.Effect.runPromise(effect).catch((err) => {
72
+ await Effect.runPromise(effect).catch((err) => {
70
73
  if (error === null)
71
74
  error = {
72
75
  errorID: 'PBRUNEFFPROALL001',
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/libs/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/libs/runtime.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,30 @@ var Internals;
21
21
  return this.queryContext(context);
22
22
  }
23
23
  Internals.context = context;
24
+ function cleanStringToComment(content) {
25
+ return content
26
+ .normalize('NFD')
27
+ .replace(/\*|\-|\@|\?|[\u0300-\u036f]/g, '')
28
+ .toUpperCase();
29
+ }
30
+ Internals.cleanStringToComment = cleanStringToComment;
31
+ function compileComments(comments) {
32
+ const keysNumber = Object.keys(comments).length;
33
+ if (keysNumber === 0) {
34
+ return null;
35
+ }
36
+ const stringCommentBuilder = new Array();
37
+ let i = 0;
38
+ for (const key in comments) {
39
+ if (!Object.hasOwn(comments, key))
40
+ continue;
41
+ const newKey = Internals.cleanStringToComment(key);
42
+ const content = Internals.cleanStringToComment(comments[key]);
43
+ stringCommentBuilder.push(`${newKey}: (${content})`);
44
+ }
45
+ return stringCommentBuilder.join(' ');
46
+ }
47
+ Internals.compileComments = compileComments;
24
48
  function includeOne(table, type, s) {
25
49
  const t = this;
26
50
  const context = t.queryContext() ?? Object.create(null);
@@ -57,10 +81,13 @@ var Internals;
57
81
  }
58
82
  }
59
83
  Internals.includeOne = includeOne;
60
- function getConnTable(table, trxName) {
84
+ function getConnTable(table, comments) {
61
85
  let conn = this.table(table);
62
- if (trxName !== undefined && conn.comment !== undefined) {
63
- conn = conn.comment(`TRX: ${trxName}`);
86
+ if (comments !== undefined && conn.comment !== undefined) {
87
+ const stringComment = Internals.compileComments(comments);
88
+ if (stringComment !== null) {
89
+ conn = conn.comment(stringComment);
90
+ }
64
91
  }
65
92
  return conn;
66
93
  }
@@ -120,15 +147,22 @@ class Driver {
120
147
  async onOpenTrx(trx) {
121
148
  return trx;
122
149
  }
123
- runRawWithComment(query) {
124
- if (this.trxName === undefined) {
125
- return this.conn.raw(query.sql, query.bindings);
150
+ compileCommentsIntoSql(sql, comments) {
151
+ if (this.trxName !== undefined) {
152
+ comments.TRX = this.trxName;
126
153
  }
127
- return this.conn.raw(`/*TRX: ${this.trxName}*/${query.sql}`, query.bindings);
154
+ const stringComment = Internals.compileComments(comments);
155
+ if (stringComment === null) {
156
+ return sql;
157
+ }
158
+ return `/* ${stringComment} */${sql}`;
159
+ }
160
+ runRawWithComment(query, comments) {
161
+ return this.conn.raw(this.compileCommentsIntoSql(query.sql, comments ?? Object.create(null)), query.bindings);
128
162
  }
129
- select(table, model) {
163
+ select(table, model, options) {
130
164
  return {
131
- build: (builder) => new Query(builder(this.conn.queryBuilder().getConnTable(table, this.trxName)), model, table),
165
+ build: (builder) => new Query(builder(this.conn.queryBuilder().table(table)), model, table, this, options),
132
166
  };
133
167
  }
134
168
  async rawMappedSelect(queryInfo) {
@@ -141,7 +175,7 @@ class Driver {
141
175
  }
142
176
  }
143
177
  const sql = queryInfo.query(queryBuilder, {}).toSQL();
144
- const result = await this.runRawWithComment(sql).then(r => r, err => ({
178
+ const result = await this.runRawWithComment(sql, queryInfo.comments).then(r => r, err => ({
145
179
  errorID: 'PLSQLRWSEL001',
146
180
  msg: 'Unexpected error while select',
147
181
  error: {
@@ -173,10 +207,10 @@ class Driver {
173
207
  }
174
208
  async insert(table, model, values, options) {
175
209
  if (this.config.client === 'mssql') {
176
- const sql = this.conn.queryBuilder().getConnTable(table, this.trxName).insert(values, '*', {
210
+ const sql = this.conn.queryBuilder().table(table).insert(values, '*', {
177
211
  includeTriggerModifications: options?.ignoreTrigger === undefined
178
212
  }).toSQL();
179
- return this.runRawWithComment(sql).then(r => r, err => Plata.BuildPlataError({
213
+ return this.runRawWithComment(sql, options?.comments).then(r => r, err => Plata.BuildPlataError({
180
214
  errorID: 'PLSQL001',
181
215
  msg: 'Unexpected error while inserting',
182
216
  error: {
@@ -185,8 +219,12 @@ class Driver {
185
219
  },
186
220
  }));
187
221
  }
222
+ const comments = options?.comments ?? Object.create(null);
223
+ if (this.trxName !== undefined) {
224
+ comments.TRX = this.trxName;
225
+ }
188
226
  if (options?.ignoreTrigger === true)
189
- return this.conn.queryBuilder().getConnTable(table, this.trxName).insert(values, '*', {
227
+ return this.conn.queryBuilder().getConnTable(table, comments).insert(values, '*', {
190
228
  includeTriggerModifications: options?.ignoreTrigger
191
229
  }).then(r => r, err => Plata.BuildPlataError({
192
230
  errorID: 'PLSQLINS001',
@@ -216,15 +254,21 @@ class Driver {
216
254
  return key;
217
255
  }
218
256
  return this.transaction(async (trx) => {
219
- const result = await trx.conn.queryBuilder().getConnTable(table, `${trx.trxName}<->${this.trxName}`).insert(values);
257
+ if (comments.TRX !== undefined) {
258
+ comments.TRX = `${trx.trxName}<->${this.trxName}`;
259
+ }
260
+ else {
261
+ comments.TRX_INSERT = trx.trxName ?? '';
262
+ }
263
+ const result = await trx.conn.queryBuilder().getConnTable(table, comments).insert(values);
220
264
  return trx.conn.select('*').from(table).whereIn(key, result);
221
265
  });
222
266
  }
223
- update(table, model) {
267
+ update(table, model, options) {
224
268
  return {
225
269
  build: async (s, set) => {
226
- const sql = s(this.conn.queryBuilder().getConnTable(table, this.trxName)).update(set).toSQL();
227
- return this.runRawWithComment(sql).then(() => true, err => Plata.BuildPlataError({
270
+ const sql = s(this.conn.queryBuilder().table(table)).update(set).toSQL();
271
+ return this.runRawWithComment(sql, options?.comments).then(() => true, err => Plata.BuildPlataError({
228
272
  errorID: 'PLSQL002',
229
273
  msg: 'Unexpected error while update',
230
274
  error: {
@@ -477,12 +521,16 @@ class Query {
477
521
  model;
478
522
  table;
479
523
  joins;
480
- constructor(query, model, table) {
524
+ options;
525
+ conn;
526
+ constructor(query, model, table, conn, options) {
481
527
  const context = query.queryContext() ?? Object.create(null);
482
528
  this.joins = context._joins ?? [];
483
529
  this.table = table;
484
530
  this.model = model;
485
531
  this.query = this._buildSelect(query, this.model.template);
532
+ this.conn = conn;
533
+ this.options = options;
486
534
  }
487
535
  _buildSelect(query, template) {
488
536
  const cs = [];
@@ -504,7 +552,7 @@ class Query {
504
552
  cs.push(`${key}.${column} as ${key}_${column}`);
505
553
  }
506
554
  }
507
- return query.select(...cs);
555
+ return query.select(...cs).toSQL();
508
556
  }
509
557
  _buildModel(row) {
510
558
  const template = this.model.template;
@@ -535,7 +583,7 @@ class Query {
535
583
  _handleStream(handler) {
536
584
  return new Promise(resolve => {
537
585
  let shoudContinue = true;
538
- const stream = this.query.stream();
586
+ const stream = this.conn.runRawWithComment(this.query, this.options?.comments).stream();
539
587
  stream.on('close', async () => {
540
588
  return resolve(handler.close());
541
589
  });
@@ -568,7 +616,7 @@ class Query {
568
616
  async toListAsync() {
569
617
  const errors = [];
570
618
  const itens = [];
571
- const result = await this.query.then(r => {
619
+ const result = await this.conn.runRawWithComment(this.query, this.options?.comments).then(r => {
572
620
  const promises = [];
573
621
  for (let i = 0; i < r.length; i++) {
574
622
  promises.push(Plata.FastPromise(async () => {
@@ -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.190",
3
+ "version": "0.4.192",
4
4
  "main": "__BUILD__/index",
5
5
  "types": "src/@types/exported.d.ts",
6
6
  "bin": {
@@ -7,7 +7,7 @@ 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>
10
+ getConnTable<TRecord extends {}, TResult>(table: string, comments?: Record<string, string>): KnexOriginal.QueryBuilder<TRecord, TResult>
11
11
  comment?: <TRecord extends {}, TResult>(comment: string) => KnexOriginal.QueryBuilder<TRecord, TResult>
12
12
  }
13
13
  }
@@ -34,7 +34,8 @@ declare global {
34
34
  interface SqlRawSelectInfo<T> {
35
35
  table: string
36
36
  cols: Record<string, SqlRawSelectCamp<T>>
37
- query: (s: Knex.QueryBuilder<T, any>, t: T) => Knex.QueryBuilder<any, any>
37
+ query: (s: Knex.QueryBuilder<T, any>, t: T) => Knex.QueryBuilder<any, any>,
38
+ comments?: Record<string, string>
38
39
  }
39
40
 
40
41
  type ExtractSqlRawSelectInfo<const I extends SqlRawSelectInfo<any>> =
@@ -54,6 +55,15 @@ declare global {
54
55
 
55
56
  interface InsertOptions {
56
57
  ignoreTrigger?: true
58
+ comments?: Record<string, string>
59
+ }
60
+
61
+ interface UpdateOptions {
62
+ comments?: Record<string, string>
63
+ }
64
+
65
+ interface SelectOptions {
66
+ comments?: Record<string, string>
57
67
  }
58
68
 
59
69
  type ModelQueryBuilder<T extends Model.Template> =
@@ -1,7 +1,6 @@
1
1
  import path from 'node:path'
2
2
  import fs from 'node:fs'
3
3
  import cluster from "node:cluster";
4
- import { Effect } from 'effect'
5
4
  import { PlataFs } from './fs'
6
5
  import { glob } from 'glob'
7
6
 
@@ -30,7 +29,9 @@ export class PlataGlobalRuntime {
30
29
  public readonly _loadedsWasms: Set<string> = new Set()
31
30
 
32
31
  // Env
33
- public config: PlataEnvAutoComplete = process.env
32
+ public config: PlataEnvAutoComplete = process.env
33
+
34
+ private effectLib: (typeof import('effect').Effect) | null = null
34
35
 
35
36
  constructor() {
36
37
  // Caminhos da Plata
@@ -60,6 +61,14 @@ export class PlataGlobalRuntime {
60
61
  }
61
62
  }
62
63
 
64
+ private getEffectLib(): typeof import('effect').Effect {
65
+ if (this.effectLib === null) {
66
+ this.effectLib = require('effect').Effect as typeof import('effect').Effect
67
+ }
68
+
69
+ return this.effectLib
70
+ }
71
+
63
72
  public CacheClass<T>(newFunction: (...args: any) => T): T {
64
73
  const p = process as any
65
74
 
@@ -74,27 +83,26 @@ export class PlataGlobalRuntime {
74
83
  return p._plata_cache[newFunction.name]
75
84
  }
76
85
 
77
- public async PromiseAll<T extends readonly unknown[] | [], R = RemovePlataResultOnPromiseAll<{ -readonly [P in keyof T]: Awaited<T[P]> }>>(promises: T): PlataPromiseAllReturn<T, R> {
86
+ public async PromiseAll<T extends readonly unknown[] | [], R = RemovePlataResultOnPromiseAll<{ -readonly [P in keyof T]: Awaited<T[P]> }>>(promises: T): PlataPromiseAllReturn<T, R> {
78
87
  if (promises.length === 0) {
79
88
  return [] as any
80
89
  }
81
90
 
82
- const results: any[] = []
91
+ const Effect = this.getEffectLib()
92
+
93
+ const results = new Array<any>(promises.length)
83
94
  let error: PlataError | null = null
84
- const promisesWithID = promises.map((p, i) => ({
85
- promise: p,
86
- id: i
87
- }))
88
95
 
89
- const effect = Effect.forEach(promisesWithID, (p) => Effect.gen(function* (_) {
90
- const result: PlataResult<any> = yield* _(Effect.promise(() => p.promise))
96
+
97
+ const effect = Effect.forEach(promises as Promise<any>[], (p, i) => Effect.gen(function* (_) {
98
+ const result: PlataResult<any> = yield* _(Effect.promise(() => p))
91
99
 
92
100
  if (result.errorID !== undefined) {
93
101
  error = result
94
102
  return yield* _(Effect.interrupt)
95
103
  }
96
104
 
97
- results[p.id] = result
105
+ results[i] = result
98
106
  }), { concurrency: 'unbounded' })
99
107
 
100
108
  await Effect.runPromise(effect).catch((err) => {
package/src/libs/sql.ts CHANGED
@@ -20,6 +20,36 @@ export namespace Internals {
20
20
  return this.queryContext(context)
21
21
  }
22
22
 
23
+ export function cleanStringToComment(content: string): string {
24
+ return content
25
+ .normalize('NFD')
26
+ .replace(/\*|\-|\@|\?|[\u0300-\u036f]/g, '')
27
+ .toUpperCase()
28
+ ;
29
+ }
30
+
31
+ export function compileComments(comments: Record<string, string>): string | null {
32
+ const keysNumber = Object.keys(comments).length
33
+
34
+ if (keysNumber === 0) {
35
+ return null
36
+ }
37
+
38
+ const stringCommentBuilder = new Array<string>()
39
+ let i = 0
40
+
41
+ for (const key in comments) {
42
+ if (!Object.hasOwn(comments, key)) continue
43
+
44
+ const newKey = Internals.cleanStringToComment(key)
45
+ const content = Internals.cleanStringToComment(comments[key])
46
+
47
+ stringCommentBuilder.push(`${newKey}: (${content})`)
48
+ }
49
+
50
+ return stringCommentBuilder.join(' ')
51
+ }
52
+
23
53
  export function includeOne(table: string, type: Sql.Joins,s: Knex.JoinCallback) {
24
54
  const t: Knex.QueryBuilder = this
25
55
  const context = t.queryContext() ?? Object.create(null)
@@ -60,11 +90,16 @@ export namespace Internals {
60
90
  }
61
91
  }
62
92
 
63
- export function getConnTable(this: Knex.QueryBuilder, table: string, trxName?: string) {
93
+ export function getConnTable(this: Knex.QueryBuilder, table: string, comments?: Record<string, string>) {
64
94
  let conn = this.table(table)
65
95
 
66
- if (trxName !== undefined && conn.comment !== undefined) {
67
- conn = conn.comment(`TRX: ${trxName}`)
96
+ if (comments !== undefined && conn.comment !== undefined) {
97
+ const stringComment = Internals.compileComments(comments)
98
+
99
+ if (stringComment !== null) {
100
+ conn = conn.comment(stringComment)
101
+ }
102
+
68
103
  }
69
104
 
70
105
  return conn
@@ -138,21 +173,36 @@ export class Driver<InTransaction extends boolean> {
138
173
  return trx
139
174
  }
140
175
 
141
- public runRawWithComment(query: { sql: string, bindings: readonly any[] }) {
142
- if (this.trxName === undefined) {
143
- return this.conn.raw(query.sql, query.bindings)
176
+ private compileCommentsIntoSql(sql: string, comments: Record<string, string>): string {
177
+ if (this.trxName !== undefined) {
178
+ comments.TRX = this.trxName
144
179
  }
145
180
 
146
- return this.conn.raw(`/*TRX: ${this.trxName}*/${query.sql}`, query.bindings)
181
+ const stringComment = Internals.compileComments(comments)
182
+
183
+ if (stringComment === null) {
184
+ return sql
185
+ }
186
+
187
+ return `/* ${stringComment} */${sql}`
188
+ }
189
+
190
+ public runRawWithComment(query: { sql: string, bindings: readonly any[] }, comments?: Record<string, string>) {
191
+ return this.conn.raw(
192
+ this.compileCommentsIntoSql(query.sql, comments ?? Object.create(null)),
193
+ query.bindings
194
+ )
147
195
  }
148
196
 
149
- public select<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>) {
197
+ public select<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>, options?: Sql.SelectOptions) {
150
198
  return {
151
199
  build: (builder: Sql.Builder<T>) =>
152
200
  new Query(
153
- builder(this.conn.queryBuilder().getConnTable(table, this.trxName)),
201
+ builder(this.conn.queryBuilder().table(table)),
154
202
  model,
155
203
  table,
204
+ this,
205
+ options,
156
206
  )
157
207
  ,
158
208
  }
@@ -172,7 +222,7 @@ export class Driver<InTransaction extends boolean> {
172
222
 
173
223
  const sql = queryInfo.query(queryBuilder as any, {} as any).toSQL()
174
224
 
175
- const result: PlataResult<any[]> = await this.runRawWithComment(sql).then(
225
+ const result: PlataResult<any[]> = await this.runRawWithComment(sql, queryInfo.comments).then(
176
226
  r => r,
177
227
  err => ({
178
228
  errorID: 'PLSQLRWSEL001',
@@ -210,9 +260,9 @@ export class Driver<InTransaction extends boolean> {
210
260
  return result
211
261
  }
212
262
 
213
- 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>[]> {
263
+ 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>[]> {
214
264
  if (this.config.client === 'mssql') {
215
- const sql = this.conn.queryBuilder().getConnTable(table, this.trxName).insert(
265
+ const sql = this.conn.queryBuilder().table(table).insert(
216
266
  values,
217
267
  '*',
218
268
  {
@@ -220,7 +270,7 @@ export class Driver<InTransaction extends boolean> {
220
270
  }
221
271
  ).toSQL()
222
272
 
223
- return this.runRawWithComment(sql).then(
273
+ return this.runRawWithComment(sql, options?.comments).then(
224
274
  r => r,
225
275
  err => Plata.BuildPlataError({
226
276
  errorID: 'PLSQL001',
@@ -233,10 +283,16 @@ export class Driver<InTransaction extends boolean> {
233
283
  )
234
284
  }
235
285
 
286
+ const comments: Record<string, string> = options?.comments ?? Object.create(null)
287
+
288
+ if (this.trxName !== undefined) {
289
+ comments.TRX = this.trxName
290
+ }
291
+
236
292
  // TODO ver a necessidade de comentario de trx nas outras conexões
237
293
 
238
294
  if (options?.ignoreTrigger === true)
239
- return this.conn.queryBuilder().getConnTable(table, this.trxName).insert(
295
+ return this.conn.queryBuilder().getConnTable(table, comments).insert(
240
296
  values,
241
297
  '*',
242
298
  {
@@ -282,7 +338,13 @@ export class Driver<InTransaction extends boolean> {
282
338
 
283
339
  return this.transaction(
284
340
  async (trx) => {
285
- const result: number[] = await trx.conn.queryBuilder().getConnTable(table, `${trx.trxName}<->${this.trxName}`).insert(
341
+ if (comments.TRX !== undefined) {
342
+ comments.TRX = `${trx.trxName}<->${this.trxName}`
343
+ } else {
344
+ comments.TRX_INSERT = trx.trxName ?? ''
345
+ }
346
+
347
+ const result: number[] = await trx.conn.queryBuilder().getConnTable(table, comments).insert(
286
348
  values,
287
349
  )
288
350
 
@@ -291,12 +353,12 @@ export class Driver<InTransaction extends boolean> {
291
353
  )
292
354
  }
293
355
 
294
- public update<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>) {
356
+ public update<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>, options?: Sql.UpdateOptions) {
295
357
  return {
296
358
  build: async (s: Sql.Builder<T>, set: Model.ParcialTemplateType<T>): PlataPromise<true> => {
297
- const sql = s(this.conn.queryBuilder().getConnTable(table, this.trxName)).update(set as any).toSQL()
359
+ const sql = s(this.conn.queryBuilder().table(table)).update(set as any).toSQL()
298
360
 
299
- return this.runRawWithComment(sql).then(
361
+ return this.runRawWithComment(sql, options?.comments).then(
300
362
  () => true,
301
363
  err => Plata.BuildPlataError({
302
364
  errorID: 'PLSQL002',
@@ -627,12 +689,20 @@ export class Driver<InTransaction extends boolean> {
627
689
  }
628
690
 
629
691
  export class Query<T extends Model.Template, C extends Model.Converters<T>> {
630
- public query: Sql.ModelQueryBuilder<T>
692
+ public query: { sql: string, bindings: readonly any[] }
631
693
  public readonly model: ModelTemplate<T, C>
632
694
  public readonly table: string
633
695
  public readonly joins: string[]
634
-
635
- constructor (query: Sql.ModelQueryBuilder<T>, model: ModelTemplate<T, C>, table: string) {
696
+ private readonly options: Sql.SelectOptions | undefined
697
+ private readonly conn: Driver<boolean>
698
+
699
+ constructor(
700
+ query: Sql.ModelQueryBuilder<T>,
701
+ model: ModelTemplate<T, C>,
702
+ table: string,
703
+ conn: Driver<boolean>,
704
+ options?: Sql.SelectOptions
705
+ ) {
636
706
  const context = query.queryContext() ?? Object.create(null)
637
707
 
638
708
  this.joins = context._joins ?? []
@@ -640,9 +710,11 @@ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
640
710
  this.table = table
641
711
  this.model = model
642
712
  this.query = this._buildSelect(query, this.model.template)
713
+ this.conn = conn
714
+ this.options = options
643
715
  }
644
716
 
645
- private _buildSelect<T extends Model.Template>(query: Sql.ModelQueryBuilder<T>, template: T): Sql.ModelQueryBuilder<T> {
717
+ private _buildSelect<T extends Model.Template>(query: Sql.ModelQueryBuilder<T>, template: T): { sql: string, bindings: readonly any[] } {
646
718
  const cs: string[] = []
647
719
 
648
720
  for (const key in template) {
@@ -668,7 +740,7 @@ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
668
740
  }
669
741
  }
670
742
 
671
- return query.select(...cs)
743
+ return query.select(...cs).toSQL()
672
744
  }
673
745
 
674
746
  private _buildModel<T extends Model.Template>(row: any): typeof this.model.type {
@@ -709,7 +781,7 @@ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
709
781
  return new Promise(resolve => {
710
782
  let shoudContinue = true
711
783
 
712
- const stream = this.query.stream()
784
+ const stream = this.conn.runRawWithComment(this.query, this.options?.comments).stream()
713
785
 
714
786
  stream.on('close', async () => {
715
787
  return resolve(handler.close<Y>())
@@ -748,7 +820,7 @@ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
748
820
  const errors: PlataError[] = []
749
821
  const itens: any[] = []
750
822
 
751
- const result: PlataResult<boolean[]> = await this.query.then(
823
+ const result: PlataResult<boolean[]> = await this.conn.runRawWithComment(this.query, this.options?.comments).then(
752
824
  r => {
753
825
  const promises: Promise<boolean>[] = []
754
826
 
@@ -15,7 +15,7 @@ describe('PromiseAll', () => {
15
15
  await plataPromise
16
16
  })
17
17
 
18
- it('should resolve an array of promises', async () => {
18
+ it('should resolve an array of promises (cold start)', async () => {
19
19
  const promises = [
20
20
  Plata.FastPromise(async (): Promise<1> => 1),
21
21
  Plata.FastPromise(async (): Promise<2> => 2),
@@ -31,6 +31,36 @@ describe('PromiseAll', () => {
31
31
 
32
32
  })
33
33
 
34
+ it('should resolve an array of promises (hot start)', async () => {
35
+ const promises = [
36
+ Plata.FastPromise(async (): Promise<1> => 1),
37
+ Plata.FastPromise(async (): Promise<2> => 2),
38
+ Plata.FastPromise(async (): Promise<3> => 3),
39
+ ] as const
40
+
41
+ const result = await Plata.PromiseAll(promises)
42
+
43
+ assert.strictEqual(result.errorID, undefined)
44
+
45
+ const type: [ 1, 2, 3 ] = result
46
+ assert.deepStrictEqual(result, [1, 2, 3])
47
+
48
+ })
49
+
50
+ it('(stress) should resolve an array in order', async () => {
51
+ const arrayAleatorio = new Array<number>()
52
+ const arrayPromises = new Array<Promise<number>>()
53
+
54
+ for (let i = 0; i < 3_000; i++) {
55
+ arrayAleatorio.push(Math.random())
56
+ arrayPromises.push(Plata.FastPromise(() => Promise.resolve(arrayAleatorio[i])))
57
+ }
58
+
59
+ const newArray = await Plata.PromiseAll(arrayPromises)
60
+ assert.deepStrictEqual(newArray, arrayAleatorio)
61
+
62
+ })
63
+
34
64
  it('should return an empty array if input is an empty array', async () => {
35
65
  const promises: [] = []
36
66
 
@@ -61,4 +91,18 @@ describe('PromiseAll', () => {
61
91
 
62
92
  assert.strictEqual(result.errorID, 'a')
63
93
  })
94
+
95
+ it('should run in concurrency', async () => {
96
+ const promises = [
97
+ Plata.FastPromise(() => new Promise<number>(r => setTimeout(() => r(100), 100))),
98
+ Plata.FastPromise(() => new Promise<number>(r => setTimeout(() => r(200), 200))),
99
+ Plata.FastPromise(() => new Promise<number>(r => setTimeout(() => r(100), 100))),
100
+ ]
101
+
102
+ const startTime = performance.now()
103
+ await Plata.PromiseAll(promises)
104
+ const endTime = performance.now()
105
+
106
+ assert.equal((endTime - startTime) < 400, true)
107
+ })
64
108
  })
@@ -537,6 +537,90 @@ describe('PlataSql', () => {
537
537
  assert.strictEqual(value.errorID, 'PLSQLRWSEL002')
538
538
  })
539
539
 
540
+ it('Select with SQL Comments', async () => {
541
+ let capturedSql = ''
542
+ const listener = (q: any) => { capturedSql = q.sql }
543
+
544
+ sql.conn.on('query', listener)
545
+
546
+ const result = await sql.select('TB_INSERT', modelSql, {
547
+ comments: {
548
+ user: 'test',
549
+ feature: 'select_test'
550
+ }
551
+ }).build(s => s.limit(1)).toListAsync()
552
+
553
+ sql.conn.off('query', listener)
554
+
555
+ assert.strictEqual(result.errorID, undefined)
556
+ assert.ok(capturedSql.includes('USER: (TEST)'))
557
+ assert.ok(capturedSql.includes('FEATURE: (SELECT_TEST)'))
558
+ })
559
+
560
+ it('Update with SQL Comments', async () => {
561
+ let capturedSql = ''
562
+ const listener = (q: any) => { capturedSql = q.sql }
563
+
564
+ sql.conn.on('query', listener)
565
+
566
+ const result = await sql.update('TB_UPDATE', modelSql, {
567
+ comments: {
568
+ operation: 'update_price'
569
+ }
570
+ }).build(
571
+ s => s.where('PK_ID', 1),
572
+ { VL_PRECO: 777, DS_OBS: 'TEST' }
573
+ )
574
+
575
+ sql.conn.off('query', listener)
576
+
577
+ assert.strictEqual(result, true)
578
+ assert.ok(capturedSql.includes('OPERATION: (UPDATE_PRICE)'))
579
+ })
580
+
581
+ it('Raw execution preserves comments', async () => {
582
+ let capturedSql = ''
583
+ const listener = (q: any) => { capturedSql = q.sql }
584
+
585
+ sql.conn.on('query', listener)
586
+
587
+ const raw = sql.conn.queryBuilder().from('TB_INSERT').select('*').limit(1).toSQL()
588
+
589
+ const result = await sql.runRawWithComment(raw, {
590
+ trace: 'raw_test'
591
+ })
592
+
593
+ sql.conn.off('query', listener)
594
+
595
+ assert.ok(Array.isArray(result))
596
+ assert.ok(capturedSql.includes('TRACE: (RAW_TEST)'))
597
+ })
598
+
599
+ it('Transaction automatically injects TRX comment', async () => {
600
+ let capturedSql = ''
601
+ const listener = (q: any) => {
602
+ capturedSql = q.sql
603
+ }
604
+
605
+ await sql.transaction(async trx => {
606
+ trx.trxConn.on('query', listener)
607
+
608
+ await trx
609
+ .select('TB_INSERT', modelSql)
610
+ .build(s => s.limit(1))
611
+ .toListAsync()
612
+ ;
613
+
614
+
615
+ trx.trxConn.off('query', listener)
616
+
617
+ return true
618
+ })
619
+
620
+ assert.ok(capturedSql.includes('TRX: ('))
621
+ })
622
+
623
+
540
624
 
541
625
  after(async () => { // Requerido para Sqlite3
542
626
  const sqlError = await sql.conn.destroy().then(