pwi-plata-type 0.4.65 → 0.4.67

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.
@@ -11,5 +11,9 @@ var PlataRuntimeE;
11
11
  return e;
12
12
  }
13
13
  PlataRuntimeE.BuildPlataError = BuildPlataError;
14
+ function BuildObject(o) {
15
+ return o;
16
+ }
17
+ PlataRuntimeE.BuildObject = BuildObject;
14
18
  })(PlataRuntimeE = exports.PlataRuntimeE || (exports.PlataRuntimeE = {}));
15
19
  //# sourceMappingURL=promises.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"promises.js","sourceRoot":"","sources":["../../../src/bin/runtime/promises.ts"],"names":[],"mappings":";;;AAMA,IAAiB,aAAa,CAQ7B;AARD,WAAiB,aAAa;IAC1B,SAAgB,WAAW,CAAI,CAAmB;QAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IAFe,yBAAW,cAE1B,CAAA;IAED,SAAgB,eAAe,CAAC,CAAa;QACzC,OAAO,CAAC,CAAA;IACZ,CAAC;IAFe,6BAAe,kBAE9B,CAAA;AACL,CAAC,EARgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAQ7B"}
1
+ {"version":3,"file":"promises.js","sourceRoot":"","sources":["../../../src/bin/runtime/promises.ts"],"names":[],"mappings":";;;AAMA,IAAiB,aAAa,CAY7B;AAZD,WAAiB,aAAa;IAC1B,SAAgB,WAAW,CAAI,CAAmB;QAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACpC,CAAC;IAFe,yBAAW,cAE1B,CAAA;IAED,SAAgB,eAAe,CAAC,CAAa;QACzC,OAAO,CAAC,CAAA;IACZ,CAAC;IAFe,6BAAe,kBAE9B,CAAA;IAED,SAAgB,WAAW,CAAI,CAAI;QAC/B,OAAO,CAAC,CAAA;IACZ,CAAC;IAFe,yBAAW,cAE1B,CAAA;AACL,CAAC,EAZgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAY7B"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlataRuntimeE = void 0;
4
+ var PlataRuntimeE;
5
+ (function (PlataRuntimeE) {
6
+ function TimeZoneDate(d) {
7
+ return new Date(d.getTime() - (d.getTimezoneOffset() * 1000 * 60));
8
+ }
9
+ PlataRuntimeE.TimeZoneDate = TimeZoneDate;
10
+ PlataRuntimeE._knexExtended = false;
11
+ })(PlataRuntimeE = exports.PlataRuntimeE || (exports.PlataRuntimeE = {}));
12
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../../src/bin/runtime/sql.ts"],"names":[],"mappings":";;;AAMA,IAAiB,aAAa,CAM7B;AAND,WAAiB,aAAa;IAC1B,SAAgB,YAAY,CAAC,CAAO;QAChC,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,iBAAiB,EAAE,GAAG,IAAI,GAAG,EAAE,CAAC,CAAQ,CAAA;IAC7E,CAAC;IAFe,0BAAY,eAE3B,CAAA;IAEU,2BAAa,GAAY,KAAK,CAAA;AAC7C,CAAC,EANgB,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAM7B"}
@@ -15,7 +15,7 @@ class PlataClusterManager {
15
15
  clusters: []
16
16
  };
17
17
  if (this.NodeCluster.eventNames().indexOf('exit') === -1) {
18
- this.NodeCluster.on('exit', this.onWorkerKilled);
18
+ this.NodeCluster.on('exit', (t => t.onWorkerKilled(t))(this));
19
19
  }
20
20
  if (this.NodeCluster.eventNames().indexOf('message') === -1) {
21
21
  this.NodeCluster.on('message', ((t) => t.onMessage(t))(this));
@@ -1 +1 @@
1
- {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/libs/cluster.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAmC;AACnC,qCAA+B;AAE/B,MAAa,mBAAmB;IACX,WAAW,GAAG,sBAAO,CAAA;IAEtC;QACI,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC5B,KAAK,CAAC,OAAO,GAAG;gBACZ,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,EAAE;aACf,CAAA;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE;gBACtD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAA;aACnD;YAED,IAAI,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;gBACzD,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CACxB,CAAC,IAAI,CAAC,CAAC,CAAA;aACX;SACJ;aAAM;YACH,KAAK,CAAC,OAAO,GAAG;gBACZ,SAAS,EAAE,KAAK;aACnB,CAAA;SACJ;IACL,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,MAA4B;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;YAAE,OAAO;gBACjC,OAAO,EAAE,aAAa;gBACtB,GAAG,EAAE,kDAAkD;aAC1D,CAAA;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAC9B,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,EAAE;gBACvB,MAAM,CAAC,OAAO,GAAG,IAAA,cAAI,GAAE,CAAC,MAAM,CAAA;aACjC;iBAAM;gBACH,MAAM,CAAC,OAAO,GAAG,CAAC,CAAA;aACrB;SACJ;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,EAAE;YACvB,MAAM,CAAC,OAAO,GAAG,IAAA,cAAI,GAAE,CAAC,MAAM,CAAA;SACjC;QAED,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,EAAE;YACtB,OAAO,IAAI,CAAA;SACd;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,uBAAuB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAE3E,MAAM,OAAO,GAA0B;YACnC,IAAI,EAAE,EAAE;YACR,MAAM;SACT,CAAA;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAE3B,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC7B,OAAO;oBACH,OAAO,EAAE,aAAa;oBACtB,GAAG,EAAE,8BAA8B,CAAC,iBAAiB,MAAM,CAAC,IAAI,EAAE;oBAClE,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;iBAC5B,CAAA;aACJ;YAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;SACnC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;YAC7B,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;SACrF;QAED,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAEpC,OAAO,IAAI,CAAA;IACf,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,SAAS,CAAA;IACrC,CAAC;IAEM,IAAI,CAAC,MAA4B;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACzB,GAAG,MAAM,CAAC,UAAU;YACpB,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,kBAAkB,EAAE,MAAM,CAAC,IAAI;SAClC,CAAC,CAAA;IACN,CAAC;IAEM,gBAAgB,CAAC,WAAmB;QACvC,MAAM,IAAI,GAAG,iBAAiB,WAAW,EAAE,CAAA;QAC3C,OAAO;YACH,MAAM,EAAE;gBACJ,IAAI,EAAE,GAAG,IAAI,cAAc;aAC9B;SACJ,CAAA;IACL,CAAC;IACM,cAAc,CAAC,CAAO;QACzB,OAAO,CAAC,MAAsB,EAAE,IAAY,EAAE,MAAc,EAAE,EAAE;YAC5D,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS;gBAAE,OAAM;YAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAM;YAEpC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC5D,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CACvD,CAAA;YAED,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;gBACrB,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;gBAE9C,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC,MAAM,CAAC,IAAI,wBAAwB,IAAI,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC,CAAA;gBACrH,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;gBAEnE,sBAAO,CAAC,IAAI,CACR,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAC7C,MAAM,EACN,IAAI,EACJ,MAAM,CACT,CAAA;gBAED,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;gBAE1B,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;gBAEnD,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAA;aACxC;QACL,CAAC,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,GAAoB;QACjD,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,SAAS;YAAE,OAAM;QAElD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;YAC1D,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAQ;YAElC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACnB;IACL,CAAC;IAEM,KAAK,CAAC,gBAAgB,CAAC,IAAY,EAAE,GAAoB;QAC5D,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,KAAK,SAAS;YAAE,OAAM;QAClD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;YAAE,OAAM;QAEpC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QAE9F,IAAI,YAAY,KAAK,CAAC,CAAC;YAAE,OAAM;QAE/B,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAA;QAEtD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;YAC1D,IAAI,MAAM,KAAK,SAAS;gBAAE,SAAQ;YAElC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CACnB;SACJ;IACL,CAAC;IAEM,SAAS,CAAC,CAAO;QACpB,OAAO,CAAC,MAAsB,EAAE,WAA4B,EAAE,EAAE;YAC5D,QAAO,WAAW,CAAC,MAAM,EAAE;gBACvB,KAAK,MAAM;oBACP,OAAO,CAAC,GAAG,CAAC,2BAA2B,WAAW,CAAC,GAAG,EAAE,CAAC,CAAA;oBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBACnB,MAAK;gBACL,KAAK,MAAM;oBACP,CAAC,CAAC,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;oBAC1C,MAAK;gBACL,KAAK,cAAc;oBACf,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;oBAClE,MAAK;aACR;QACL,CAAC,CAAA;IACL,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,GAAoB;QAClC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE;YAC5B,OAAO;gBACH,OAAO,EAAE,aAAa;gBACtB,GAAG,EAAE,kCAAkC;aAC1C,CAAA;SACJ;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ;AAzLD,kDAyLC"}
1
+ {"version":3,"file":"cluster.js","sourceRoot":"","sources":["../../src/libs/cluster.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Query = exports.Driver = void 0;
6
+ exports.Query = exports.Driver = exports.Internals = void 0;
7
7
  const knex_1 = __importDefault(require("knex"));
8
+ var Internals;
9
+ (function (Internals) {
10
+ function context(c) {
11
+ const context = this.queryContext() ?? new Object(null);
12
+ if (context._userContext === undefined) {
13
+ context._userContext = new Object(null);
14
+ }
15
+ if (c === undefined) {
16
+ return context._userContext;
17
+ }
18
+ context._userContext = c;
19
+ return this.queryContext(context);
20
+ }
21
+ Internals.context = context;
22
+ function includeOne(table, type, s) {
23
+ const t = this;
24
+ const context = t.queryContext() ?? new Object(null);
25
+ if (context._joins === undefined) {
26
+ context._joins = [];
27
+ }
28
+ context._joins.push(table);
29
+ const q = t.queryContext(context);
30
+ switch (type) {
31
+ case 'CROSS JOIN':
32
+ return q.crossJoin(table, s);
33
+ break;
34
+ case 'FULL OUTER JOIN':
35
+ return q.fullOuterJoin(table, s);
36
+ break;
37
+ case 'INNER JOIN':
38
+ return q.innerJoin(table, s);
39
+ break;
40
+ case 'JOIN':
41
+ return q.join(table, s);
42
+ break;
43
+ case 'LEFT JOIN':
44
+ return q.leftJoin(table, s);
45
+ break;
46
+ case 'LEFT OUTER JOIN':
47
+ return q.leftOuterJoin(table, s);
48
+ break;
49
+ case 'OUTER JOIN':
50
+ return q.outerJoin(table, s);
51
+ break;
52
+ case 'RIGHT JOIN':
53
+ return q.rightJoin(table, s);
54
+ break;
55
+ }
56
+ }
57
+ Internals.includeOne = includeOne;
58
+ })(Internals = exports.Internals || (exports.Internals = {}));
8
59
  class Driver {
9
60
  config;
10
61
  inTransaction;
@@ -18,6 +69,11 @@ class Driver {
18
69
  min: 1,
19
70
  max: 1
20
71
  };
72
+ if (!Plata._knexExtended) {
73
+ knex_1.default.QueryBuilder.extend('context', Internals.context);
74
+ knex_1.default.QueryBuilder.extend('includeOne', Internals.includeOne);
75
+ Plata._knexExtended = true;
76
+ }
21
77
  this.conn = (0, knex_1.default)(config);
22
78
  if (Plata.config.ENV === 'debug') {
23
79
  this.conn.on('query', console.log);
@@ -30,7 +86,7 @@ class Driver {
30
86
  }
31
87
  select(table, model) {
32
88
  return {
33
- build: (builder) => new Query(builder(this.conn.select(...Object.keys(model.template)).from(table)), model),
89
+ build: (builder) => new Query(builder(this.conn.queryBuilder()), model, table),
34
90
  };
35
91
  }
36
92
  async insert(table, model, values) {
@@ -64,24 +120,81 @@ exports.Driver = Driver;
64
120
  class Query {
65
121
  query;
66
122
  model;
67
- constructor(query, model) {
68
- this.query = query;
123
+ table;
124
+ joins;
125
+ constructor(query, model, table) {
126
+ const context = query.queryContext() ?? new Object(null);
127
+ this.joins = context._joins ?? [];
128
+ this.table = table;
69
129
  this.model = model;
130
+ this.query = this._buildSelect(query, this.model.template);
131
+ }
132
+ _buildSelect(query, template) {
133
+ const cs = [];
134
+ for (const key in template) {
135
+ if (!Array.isArray(template[key])) {
136
+ continue;
137
+ }
138
+ if (Array.isArray(template[key][0])) {
139
+ continue;
140
+ }
141
+ if (typeof template[key][0] === 'function') {
142
+ cs.push(`${this.table}.${key} as ${this.table}_${key}`);
143
+ continue;
144
+ }
145
+ if (!this.joins.includes(key)) {
146
+ continue;
147
+ }
148
+ for (const column in template[key][0]) {
149
+ cs.push(`${key}.${column} as ${key}_${column}`);
150
+ }
151
+ }
152
+ return query.select(...cs).from(this.table);
153
+ }
154
+ _buildModel(row) {
155
+ const template = this.model.template;
156
+ const r = new Object(null);
157
+ for (const key in template) {
158
+ if (!Array.isArray(template[key])) {
159
+ continue;
160
+ }
161
+ if (Array.isArray(template[key][0])) {
162
+ r[key] = [];
163
+ continue;
164
+ }
165
+ if (typeof template[key][0] === 'function') {
166
+ r[key] = row[`${this.table}_${key}`] ?? null;
167
+ continue;
168
+ }
169
+ if (!this.joins.includes(key)) {
170
+ r[key] = [];
171
+ continue;
172
+ }
173
+ r[key] = [new Object(null)];
174
+ for (const column in template[key][0]) {
175
+ r[key][0][column] = row[`${key}_${column}`] ?? null;
176
+ }
177
+ }
178
+ return r;
70
179
  }
71
180
  _handleStream(handler) {
72
181
  return new Promise(resolve => {
73
182
  let shoudContinue = true;
74
183
  const stream = this.query.stream();
75
184
  stream.on('close', async () => {
76
- if (shoudContinue) {
77
- return resolve(handler.close());
78
- }
185
+ return resolve(handler.close());
79
186
  });
80
187
  stream.on('data', async (row) => {
81
188
  if (shoudContinue) {
82
- shoudContinue = await handler.row(row);
189
+ shoudContinue = await handler.row(this._buildModel(row));
190
+ }
191
+ else {
192
+ stream.pause();
83
193
  }
84
194
  });
195
+ stream.on('pause', () => {
196
+ stream.end();
197
+ });
85
198
  stream.on('error', async (err) => {
86
199
  shoudContinue = false;
87
200
  if (handler.error !== undefined)
@@ -130,6 +243,11 @@ class Query {
130
243
  promises.push(Plata.FastPromise(() => this.model.validate(row))
131
244
  .then(lineResult => {
132
245
  c(lineResult).then(r => {
246
+ if (r.errorID !== undefined) {
247
+ shoudContinue = false;
248
+ error = r;
249
+ return;
250
+ }
133
251
  shoudContinue = shoudContinue ? r : shoudContinue;
134
252
  });
135
253
  })
@@ -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.65",
3
+ "version": "0.4.67",
4
4
  "main": "__BUILD__/index",
5
5
  "types": "src/@types/exported.d.ts",
6
6
  "bin": {
@@ -0,0 +1,12 @@
1
+ import { Knex as KnexOriginal } from 'knex';
2
+
3
+ declare module 'knex' {
4
+ namespace Knex {
5
+ interface QueryBuilder {
6
+ includeOne<TRecord extends {}, TResult>(table: keyof TRecord, type: Sql.Joins,s: KnexOriginal.JoinCallback): KnexOriginal.QueryBuilder<TRecord, TResult>;
7
+ context<TRecord extends {}, TResult>(context: any): KnexOriginal.QueryBuilder<TRecord, TResult>;
8
+
9
+ context<T>(): T;
10
+ }
11
+ }
12
+ }
@@ -4,20 +4,41 @@ import express from 'express'
4
4
 
5
5
  declare global {
6
6
  namespace Router {
7
- interface Request extends express.Request {
7
+ type ListRouteParams<TRoute extends string> =
8
+ TRoute extends `/${infer TPart}/${infer TNextRoute}` ?
9
+ TPart extends `:${infer TParam}?` ? `${TParam}_O` | ListRouteParams<`/${TNextRoute}`>
10
+ : TPart extends `:${infer TParam}` ? `${TParam}_R` | ListRouteParams<`/${TNextRoute}`>
11
+ : undefined | ListRouteParams<`/${TNextRoute}`>
12
+ : TRoute extends `/${infer TPart}` ?
13
+ TPart extends `:${infer TParam}?` ? `${TParam}_O`
14
+ : TPart extends `:${infer TParam}` ? `${TParam}_R`
15
+ : undefined
16
+ : undefined
17
+ ;
18
+
19
+ type GetRouteParams<TRoute extends string> = Exclude<ListRouteParams<TRoute>, undefined>
20
+
21
+ type GetUrlParams<TRoute extends string, TParams extends string = GetRouteParams<TRoute>> = {
22
+ [K in LooseAutocomplete<TParams> as K extends `${infer N}_${string}` ? N : string]: K extends `${string}_O` ? string | undefined : string
23
+ }
24
+
25
+ type expressRequest = Omit<express.Request, 'params'>
26
+
27
+ interface Request<T extends string = string> extends expressRequest {
8
28
  user: any
9
29
  extras: any
10
30
  _onResponseEvent: PlataOnResponseEvent[]
31
+ params: GetUrlParams<T>
11
32
  }
12
-
33
+
13
34
  interface Response extends express.Response {
14
35
  oldJson(body?: any): this
15
36
  error(error: PlataError | PlataError[]): this
16
37
  addOnResponseEvent<T = any>(callback: PlataOnResponseEvent<T>): void
17
38
  }
18
-
19
- type RequestHandler = (req: Request, res: Response, next: express.NextFunction) => Promise<any>
20
-
39
+
40
+ type RequestHandler<T extends string = string> = (req: Request<T>, res: Response, next: express.NextFunction) => Promise<any>
41
+
21
42
  type HttpMethods =
22
43
  "all"
23
44
  | "get"
@@ -47,11 +68,7 @@ declare global {
47
68
  | "unsubscribe"
48
69
  | "use"
49
70
  ;
50
-
51
- type RouterFunction = (
52
- (path: string | RequestHandler, ...handlers: RequestHandler[]) => void | Promise<void>
53
- )
54
-
71
+
55
72
  interface Route {
56
73
  path?: string
57
74
  method: string
@@ -64,8 +81,8 @@ declare global {
64
81
  routes: Route[]
65
82
  }
66
83
 
67
- type Router = RouterConfig & {
68
- [method in HttpMethods]: RouterFunction
84
+ type Router = RouterConfig & {
85
+ [method in HttpMethods]: <T extends string>(path: T | RequestHandler, ...handlers: RequestHandler<T>[]) => void | Promise<void>
69
86
  }
70
87
 
71
88
  type RouterBuilder = (r: Router) => Promise<Router>
@@ -25,11 +25,24 @@ declare global {
25
25
  }>
26
26
 
27
27
  type EachRowCallBack<T extends Model.Template> =
28
- (x: Model.ModelValidateReturn<T>) => Promise<boolean>
28
+ (x: Model.ModelValidateReturn<T>) => PlataPromise<true>
29
29
  ;
30
30
 
31
31
  type TimeZoneDate = Date & { __type: 'sql' }
32
32
 
33
33
  type TransactionFunction<T, Y> = (sql: T) => Promise<Y>
34
+
35
+ type Joins =
36
+ 'JOIN'
37
+ | `${
38
+ 'LEFT'
39
+ | 'CROSS'
40
+ | 'INNER'
41
+ | 'OUTER'
42
+ | 'RIGHT'
43
+ | 'FULL OUTER'
44
+ | 'LEFT OUTER'
45
+ } JOIN`
46
+ ;
34
47
  }
35
48
  }
@@ -12,4 +12,8 @@ export namespace PlataRuntimeE {
12
12
  export function BuildPlataError(e: PlataError): PlataError {
13
13
  return e
14
14
  }
15
+
16
+ export function BuildObject<T>(o: T): T {
17
+ return o
18
+ }
15
19
  }
@@ -0,0 +1,13 @@
1
+ declare global {
2
+ interface PlataRuntime extends PlataRuntimeEType {}
3
+ }
4
+
5
+ type PlataRuntimeEType = typeof PlataRuntimeE
6
+
7
+ export namespace PlataRuntimeE {
8
+ export function TimeZoneDate(d: Date): Sql.TimeZoneDate {
9
+ return new Date(d.getTime() - (d.getTimezoneOffset() * 1000 * 60)) as any
10
+ }
11
+
12
+ export let _knexExtended: boolean = false
13
+ }
@@ -12,7 +12,9 @@ export class PlataClusterManager {
12
12
  }
13
13
 
14
14
  if (this.NodeCluster.eventNames().indexOf('exit') === -1) {
15
- this.NodeCluster.on('exit', this.onWorkerKilled)
15
+ this.NodeCluster.on('exit', (
16
+ t => t.onWorkerKilled(t)
17
+ )(this))
16
18
  }
17
19
 
18
20
  if (this.NodeCluster.eventNames().indexOf('message') === -1) {
@@ -115,7 +117,7 @@ export class PlataClusterManager {
115
117
  console.log(`Iniciando um novo worker no cluster ${c.config.name}`)
116
118
 
117
119
  cluster.emit(
118
- t.getClusterEvents(c.config.name).worker.exit, // TODO :: this !== PlataClusterManager
120
+ t.getClusterEvents(c.config.name).worker.exit,
119
121
  worker,
120
122
  code,
121
123
  signal,
package/src/libs/sql.ts CHANGED
@@ -1,6 +1,64 @@
1
1
  import knex, { Knex } from "knex"
2
2
  import { ModelTemplate } from "./model"
3
3
 
4
+ export namespace Internals {
5
+ export function context<T extends {} | undefined>(c: T): T extends undefined ? void : T {
6
+ const context = this.queryContext() ?? new Object(null)
7
+
8
+ if (context._userContext === undefined) {
9
+ context._userContext = new Object(null)
10
+ }
11
+
12
+ if (c === undefined) {
13
+ return context._userContext
14
+ }
15
+
16
+ context._userContext = c
17
+
18
+ return this.queryContext(context)
19
+ }
20
+
21
+ export function includeOne(table: string, type: Sql.Joins,s: Knex.JoinCallback) {
22
+ const t: Knex.QueryBuilder = this
23
+ const context = t.queryContext() ?? new Object(null)
24
+
25
+ if (context._joins === undefined) {
26
+ context._joins = []
27
+ }
28
+
29
+ context._joins.push(table)
30
+
31
+ const q = t.queryContext(context)
32
+
33
+ switch(type) {
34
+ case 'CROSS JOIN':
35
+ return q.crossJoin(table, s)
36
+ break
37
+ case 'FULL OUTER JOIN':
38
+ return q.fullOuterJoin(table, s)
39
+ break
40
+ case 'INNER JOIN':
41
+ return q.innerJoin(table, s)
42
+ break
43
+ case 'JOIN':
44
+ return q.join(table, s)
45
+ break
46
+ case 'LEFT JOIN':
47
+ return q.leftJoin(table, s)
48
+ break
49
+ case 'LEFT OUTER JOIN':
50
+ return q.leftOuterJoin(table, s)
51
+ break
52
+ case 'OUTER JOIN':
53
+ return q.outerJoin(table, s)
54
+ break
55
+ case 'RIGHT JOIN':
56
+ return q.rightJoin(table, s)
57
+ break
58
+ }
59
+ }
60
+ }
61
+
4
62
  export class Driver<InTransaction extends boolean> {
5
63
  public readonly config: Knex.Config
6
64
  public readonly inTransaction: InTransaction
@@ -16,6 +74,13 @@ export class Driver<InTransaction extends boolean> {
16
74
  max: 1
17
75
  }
18
76
  ;
77
+
78
+ if (!Plata._knexExtended) {
79
+ knex.QueryBuilder.extend('context', Internals.context)
80
+ knex.QueryBuilder.extend('includeOne', Internals.includeOne)
81
+
82
+ Plata._knexExtended = true
83
+ }
19
84
 
20
85
  this.conn = knex(config) as any
21
86
 
@@ -32,8 +97,9 @@ export class Driver<InTransaction extends boolean> {
32
97
  return {
33
98
  build: (builder: Sql.Builder<T>) =>
34
99
  new Query(
35
- builder(this.conn.select(...Object.keys(model.template)).from(table)),
36
- model
100
+ builder(this.conn.queryBuilder()),
101
+ model,
102
+ table
37
103
  )
38
104
  ,
39
105
  }
@@ -88,10 +154,80 @@ export class Driver<InTransaction extends boolean> {
88
154
  export class Query<T extends Model.Template, C extends Model.Converters<T>> {
89
155
  public query: Sql.ModelQueryBuilder<T>
90
156
  public readonly model: ModelTemplate<T, C>
157
+ public readonly table: string
158
+ public readonly joins: string[]
159
+
160
+ constructor (query: Sql.ModelQueryBuilder<T>, model: ModelTemplate<T, C>, table: string) {
161
+ const context = query.queryContext() ?? new Object(null)
162
+
163
+ this.joins = context._joins ?? []
91
164
 
92
- constructor (query: Sql.ModelQueryBuilder<T>, model: ModelTemplate<T, C>) {
93
- this.query = query
165
+ this.table = table
94
166
  this.model = model
167
+ this.query = this._buildSelect(query, this.model.template)
168
+ }
169
+
170
+ private _buildSelect<T extends Model.Template>(query: Sql.ModelQueryBuilder<T>, template: T): Sql.ModelQueryBuilder<T> {
171
+ const cs: string[] = []
172
+
173
+ for (const key in template) {
174
+ if (!Array.isArray(template[key])) {
175
+ continue
176
+ }
177
+
178
+ if (Array.isArray(template[key][0])) {
179
+ continue
180
+ }
181
+
182
+ if (typeof template[key][0] === 'function') {
183
+ cs.push(`${this.table}.${key} as ${this.table}_${key}`)
184
+ continue
185
+ }
186
+
187
+ if (!this.joins.includes(key)) {
188
+ continue
189
+ }
190
+
191
+ for (const column in template[key][0]) {
192
+ cs.push(`${key}.${column} as ${key}_${column}`)
193
+ }
194
+ }
195
+
196
+ return query.select(...cs).from(this.table)
197
+ }
198
+
199
+ private _buildModel<T extends Model.Template>(row: any): typeof this.model.type {
200
+ const template = this.model.template
201
+ const r: typeof this.model.type = new Object(null) as any
202
+
203
+ for (const key in template) {
204
+ if (!Array.isArray(template[key])) {
205
+ continue
206
+ }
207
+
208
+ if (Array.isArray(template[key][0])) {
209
+ r[key] = [] as any
210
+ continue
211
+ }
212
+
213
+ if (typeof template[key][0] === 'function') {
214
+ r[key] = row[`${this.table}_${key}`] ?? null
215
+ continue
216
+ }
217
+
218
+ if (!this.joins.includes(key)) {
219
+ r[key] = [] as any
220
+ continue
221
+ }
222
+
223
+ r[key] = [new Object(null)] as any
224
+
225
+ for (const column in template[key][0]) {
226
+ r[key][0][column] = row[`${key}_${column}`] ?? null
227
+ }
228
+ }
229
+
230
+ return r
95
231
  }
96
232
 
97
233
  public _handleStream<Y>(handler: Sql.StreamHandler): PlataPromise<Y> {
@@ -101,17 +237,21 @@ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
101
237
  const stream = this.query.stream()
102
238
 
103
239
  stream.on('close', async () => {
104
- if (shoudContinue) {
105
- return resolve(handler.close<Y>())
106
- }
240
+ return resolve(handler.close<Y>())
107
241
  })
108
242
 
109
243
  stream.on('data', async row => {
110
244
  if (shoudContinue) {
111
- shoudContinue = await handler.row(row)
245
+ shoudContinue = await handler.row(this._buildModel(row))
246
+ } else {
247
+ stream.pause()
112
248
  }
113
249
  })
114
250
 
251
+ stream.on('pause', () => {
252
+ stream.end()
253
+ })
254
+
115
255
  stream.on('error', async err => {
116
256
  shoudContinue = false
117
257
 
@@ -174,6 +314,12 @@ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
174
314
  .then(
175
315
  lineResult => {
176
316
  c(lineResult).then(r => {
317
+ if (r.errorID !== undefined) {
318
+ shoudContinue = false
319
+ error = r
320
+ return
321
+ }
322
+
177
323
  shoudContinue = shoudContinue ? r : shoudContinue
178
324
  })
179
325
  }
Binary file
@@ -35,4 +35,19 @@ CREATE TABLE TB_MULTIBANCO (
35
35
  PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
36
36
  VL_PRECO INTEGER NOT NULL,
37
37
  DS_OBS TEXT NULL
38
- );
38
+ );
39
+
40
+ CREATE TABLE TB_JOINTEST1 (
41
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
42
+ VL_PRECO INTEGER NOT NULL,
43
+ DS_OBS TEXT NULL
44
+ );
45
+
46
+ INSERT INTO TB_JOINTEST1 (VL_PRECO,DS_OBS) VALUES (1, 'A');
47
+
48
+ CREATE TABLE TB_JOINTEST2 (
49
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
50
+ FK_JOIN INTEGER NOT NULL
51
+ );
52
+
53
+ INSERT INTO TB_JOINTEST2 (FK_JOIN) VALUES (1);
@@ -20,38 +20,34 @@ describe('PlataModels', () => {
20
20
  param: [ PlataModels.Optional(), PlataModels.Decimal(10,2) ]
21
21
  }]
22
22
  } as const, {
23
- toValidationsOkay: (x): typeof modelValidations.type => {
24
- return {
25
- enum: 0,
26
- stringDateTime: '2022-12-04T02:06:22',
27
- dateTime: new Date(),
28
- decimal: 99.99,
29
- intMin: 5,
30
- intMax: 5,
31
- intRequired: 1,
32
- smallDateTime: '2022-12-04',
33
- telefone: '99-999999999',
34
- telefoneDDI: '+055 99-999999999',
35
- varCharMin: '1',
36
- varChar: '1',
37
- }
38
- },
39
- toValidationsError: (x): typeof modelValidations.type => {
40
- return {
41
- enum: 2,
42
- stringDateTime: '',
43
- dateTime: '',
44
- decimal: 5.666666666666,
45
- intMin: 1,
46
- intMax: 6,
47
- intRequired: null,
48
- smallDateTime: '',
49
- telefone: '',
50
- telefoneDDI: '',
51
- varCharMin: '',
52
- varChar: '11',
53
- } as any // Forced just for test
54
- }
23
+ toValidationsOkay: (x): typeof modelValidations.type => Plata.BuildObject({
24
+ enum: 0,
25
+ stringDateTime: '2022-12-04T02:06:22',
26
+ dateTime: new Date(),
27
+ decimal: 99.99,
28
+ intMin: 5,
29
+ intMax: 5,
30
+ intRequired: 1,
31
+ smallDateTime: '2022-12-04',
32
+ telefone: '99-999999999',
33
+ telefoneDDI: '+055 99-999999999',
34
+ varCharMin: '1',
35
+ varChar: '1',
36
+ }),
37
+ toValidationsError: (x): typeof modelValidations.type => Plata.BuildObject({
38
+ enum: 2,
39
+ stringDateTime: '',
40
+ dateTime: '',
41
+ decimal: 5.666666666666,
42
+ intMin: 1,
43
+ intMax: 6,
44
+ intRequired: null,
45
+ smallDateTime: '',
46
+ telefone: '',
47
+ telefoneDDI: '',
48
+ varCharMin: '',
49
+ varChar: '11',
50
+ }) as any // Forced just for test
55
51
  })
56
52
 
57
53
  const modelValidations = new PlataModels.ModelTemplate({
@@ -1,4 +1,4 @@
1
- import { describe, it, after, before } from "node:test"
1
+ import { describe, it, before, after } from "node:test"
2
2
  import assert from "node:assert"
3
3
  import path from "node:path"
4
4
  import fs from "node:fs"
@@ -33,11 +33,14 @@ describe('PlataSql', () => {
33
33
  const modelSql = new PlataModels.ModelTemplate({
34
34
  PK_ID: [ PlataModels.Required(), PlataModels.Int() ],
35
35
  VL_PRECO: [ PlataModels.Required(), PlataModels.Int() ],
36
- DS_OBS: [ PlataModels.Required(), PlataModels.VarChar(Infinity) ]
36
+ DS_OBS: [ PlataModels.Required(), PlataModels.VarChar(Infinity) ],
37
+ TB_JOINTEST2: [{
38
+ PK_ID: [ PlataModels.Required(), PlataModels.Int() ],
39
+ FK_JOIN: [ PlataModels.Required(), PlataModels.Int() ],
40
+ }]
37
41
  } as const, {} as const)
38
42
 
39
- const getSqlite3 = async () => {
40
- await plataPromise
43
+ const getSqlite3 = () => {
41
44
  if (!fs.existsSync(tmpDatabasePath)) {
42
45
  fs.copyFileSync(originalDatabasePath, tmpDatabasePath)
43
46
  }
@@ -50,8 +53,7 @@ describe('PlataSql', () => {
50
53
  }, false)
51
54
  }
52
55
 
53
- const getSqlite3Aux = async () => {
54
- await plataPromise
56
+ const getSqlite3Aux = () => {
55
57
  if (!fs.existsSync(tmpAuxDatabasePath)) {
56
58
  fs.copyFileSync(originalDatabasePath, tmpAuxDatabasePath)
57
59
  }
@@ -65,8 +67,11 @@ describe('PlataSql', () => {
65
67
  }
66
68
 
67
69
  before(async () => {
68
- sql = await getSqlite3()
69
- aux = await getSqlite3Aux()
70
+ await plataPromise
71
+ Plata.config.ENV = 'debug'
72
+
73
+ sql = getSqlite3()
74
+ aux = getSqlite3Aux()
70
75
  })
71
76
 
72
77
  it('Insert', async () => {
@@ -94,7 +99,15 @@ describe('PlataSql', () => {
94
99
  assert.strictEqual(depois.errorID, undefined)
95
100
  assert.strictEqual(depois.errors, undefined)
96
101
 
97
- const esperado = [...antes.itens, ...insert]
102
+ // Add TB_JOINTEST2 in insert itens
103
+ const i = insert.map(r => {
104
+ return {
105
+ ...r,
106
+ TB_JOINTEST2: []
107
+ }
108
+ })
109
+
110
+ const esperado = [...antes.itens, ...i]
98
111
 
99
112
  for (let i = 0; i < depois.itens.length; i++) {
100
113
  assert.deepStrictEqual(depois.itens[i], esperado[i])
@@ -167,7 +180,7 @@ describe('PlataSql', () => {
167
180
  assert.strictEqual(depois.itens.length, antes.itens.length + 1)
168
181
  })
169
182
 
170
- it('Transaction Não Okay', async () => {
183
+ it('Transaction Not Okay', async () => {
171
184
  const tabela = 'TB_TRANSACTION_NOKAY'
172
185
 
173
186
  const antes = await sql.select(tabela, modelSql).build(
@@ -202,6 +215,44 @@ describe('PlataSql', () => {
202
215
  assert.strictEqual(depois.itens.length, antes.itens.length)
203
216
  })
204
217
 
218
+ it('Join Found', async () => {
219
+ const table1 = 'TB_JOINTEST1'
220
+ const table2 = 'TB_JOINTEST2'
221
+
222
+ const selectJoin = await sql.select(table1, modelSql).build(
223
+ s => s
224
+ .limit(1)
225
+ .includeOne(table2, 'LEFT JOIN', j => j.on(`${table1}.PK_ID`, '=', `${table2}.FK_JOIN`))
226
+ ).toListAsync()
227
+
228
+ assert.strictEqual(selectJoin.errorID, undefined)
229
+ assert.strictEqual(selectJoin.errors, undefined)
230
+
231
+ assert.deepStrictEqual(selectJoin.itens[0], {
232
+ PK_ID: 1,
233
+ VL_PRECO: 1,
234
+ DS_OBS: 'A',
235
+ TB_JOINTEST2: [{
236
+ PK_ID: 1,
237
+ FK_JOIN: 1
238
+ }]
239
+ })
240
+ })
241
+
242
+ it('Join Not Found', async () => {
243
+ const table1 = 'TB_JOINTEST1'
244
+ const table2 = 'TB_JOINTEST2'
245
+
246
+ const selectJoin = await sql.select(table1, modelSql).build(
247
+ s => s
248
+ .limit(1)
249
+ .includeOne(table2, 'LEFT JOIN', j => j.onVal(`${table2}.PK_ID`, '=', 2))
250
+ ).toListAsync()
251
+
252
+ assert.strictEqual(selectJoin.errorID, undefined)
253
+ assert.notStrictEqual(selectJoin.errors, undefined)
254
+ })
255
+
205
256
  it('MultiBanco', async () => {
206
257
  const tabela = 'TB_MULTIBANCO'
207
258
 
@@ -264,4 +315,4 @@ describe('PlataSql', () => {
264
315
  assert.strictEqual(sqlError, undefined)
265
316
  assert.strictEqual(auxError, undefined)
266
317
  })
267
- })
318
+ })