pwi-plata-type 0.4.63 → 0.4.66

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"}
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.PlataFs = exports.PlataAxiosUnsafe = exports.PlataAxios = exports.PlataTasks = exports.PlataSwagger = exports.PlataModels = exports.PlataTools = exports.PlataRoutes = exports.PlataCluster = void 0;
26
+ exports.PlataFs = exports.PlataSql = exports.PlataAxiosUnsafe = exports.PlataAxios = exports.PlataTasks = exports.PlataSwagger = exports.PlataModels = exports.PlataTools = exports.PlataRoutes = exports.PlataCluster = void 0;
27
27
  const PlataCluster = __importStar(require("./libs/cluster"));
28
28
  exports.PlataCluster = PlataCluster;
29
29
  const PlataRoutes = __importStar(require("./libs/router"));
@@ -36,6 +36,8 @@ const PlataTasks = __importStar(require("./libs/tasks"));
36
36
  exports.PlataTasks = PlataTasks;
37
37
  const PlataSwagger = __importStar(require("./libs/swagger"));
38
38
  exports.PlataSwagger = PlataSwagger;
39
+ const PlataSql = __importStar(require("./libs/sql"));
40
+ exports.PlataSql = PlataSql;
39
41
  const fs_1 = require("./libs/fs");
40
42
  Object.defineProperty(exports, "PlataFs", { enumerable: true, get: function () { return fs_1.PlataFs; } });
41
43
  const axios_1 = require("./libs/axios");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA8C;AAU1C,oCAAY;AAThB,2DAA4C;AAUxC,kCAAW;AATf,yDAA0C;AAUtC,gCAAU;AATd,0DAA2C;AAUvC,kCAAW;AATf,yDAA0C;AAWtC,gCAAU;AAVd,6DAA8C;AAS1C,oCAAY;AARhB,kCAAmC;AAY/B,wFAZK,YAAO,OAYL;AAXX,wCAA2D;AASvD,2FATK,kBAAU,OASL;AACV,iGAViB,wBAAgB,OAUjB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA8C;AAW1C,oCAAY;AAVhB,2DAA4C;AAWxC,kCAAW;AAVf,yDAA0C;AAWtC,gCAAU;AAVd,0DAA2C;AAWvC,kCAAW;AAVf,yDAA0C;AAYtC,gCAAU;AAXd,6DAA8C;AAU1C,oCAAY;AAThB,qDAAsC;AAalC,4BAAQ;AAZZ,kCAAmC;AAa/B,wFAbK,YAAO,OAaL;AAZX,wCAA2D;AASvD,2FATK,kBAAU,OASL;AACV,iGAViB,wBAAgB,OAUjB"}
@@ -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":"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"}
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,CACxB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAC3B,CAAC,IAAI,CAAC,CAAC,CAAA;aACX;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;AA3LD,kDA2LC"}
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Query = exports.Driver = void 0;
7
+ const knex_1 = __importDefault(require("knex"));
8
+ class Driver {
9
+ config;
10
+ inTransaction;
11
+ conn;
12
+ constructor(config, inTransaction, trx) {
13
+ this.inTransaction = inTransaction;
14
+ this.config = config;
15
+ if (!this.inTransaction) {
16
+ if (config.pool === undefined)
17
+ config.pool = {
18
+ min: 1,
19
+ max: 1
20
+ };
21
+ this.conn = (0, knex_1.default)(config);
22
+ if (Plata.config.ENV === 'debug') {
23
+ this.conn.on('query', console.log);
24
+ this.conn.on('query-error', console.error);
25
+ }
26
+ }
27
+ else {
28
+ this.conn = trx;
29
+ }
30
+ }
31
+ select(table, model) {
32
+ return {
33
+ build: (builder) => new Query(builder(this.conn.select(...Object.keys(model.template)).from(table)), model),
34
+ };
35
+ }
36
+ async insert(table, model, values) {
37
+ return this.conn(table).insert(values).returning('*').then(r => r, err => Plata.BuildPlataError({
38
+ errorID: 'PLSQL001',
39
+ msg: 'Unexpected error while inserting',
40
+ error: err?.toString(),
41
+ }));
42
+ }
43
+ update(table, model) {
44
+ return {
45
+ build: async (s, set) => Plata.FastPromise(() => s(this.conn(table)).update(set)).then(rows => rows, err => Plata.BuildPlataError({
46
+ errorID: 'PLSQL002',
47
+ msg: 'Unexpected error while update',
48
+ error: err
49
+ })),
50
+ };
51
+ }
52
+ trasation(transaction, config) {
53
+ return this.conn.transaction(async (trx) => {
54
+ const transactionDriver = new Driver(this.config, true, trx);
55
+ return transaction(transactionDriver);
56
+ }, config).then(r => r, err => Plata.BuildPlataError({
57
+ errorID: 'PLSQL003',
58
+ msg: 'Unexpected error in transation',
59
+ error: err,
60
+ }));
61
+ }
62
+ }
63
+ exports.Driver = Driver;
64
+ class Query {
65
+ query;
66
+ model;
67
+ constructor(query, model) {
68
+ this.query = query;
69
+ this.model = model;
70
+ }
71
+ _handleStream(handler) {
72
+ return new Promise(resolve => {
73
+ let shoudContinue = true;
74
+ const stream = this.query.stream();
75
+ stream.on('close', async () => {
76
+ return resolve(handler.close());
77
+ });
78
+ stream.on('data', async (row) => {
79
+ if (shoudContinue) {
80
+ shoudContinue = await handler.row(row);
81
+ }
82
+ else {
83
+ stream.pause();
84
+ stream.end();
85
+ }
86
+ });
87
+ stream.on('error', async (err) => {
88
+ shoudContinue = false;
89
+ if (handler.error !== undefined)
90
+ await handler.error(err);
91
+ return resolve({
92
+ errorID: 'PLSQLQ001',
93
+ msg: 'Unexpected error in query',
94
+ error: err
95
+ });
96
+ });
97
+ });
98
+ }
99
+ toListAsync() {
100
+ const promises = [];
101
+ const itens = [];
102
+ const errors = [];
103
+ return this._handleStream({
104
+ row: async (row) => {
105
+ promises.push(Plata.FastPromise(() => this.model.validate(row)
106
+ .then(r => {
107
+ itens.push(r.value);
108
+ errors.push(...(r.errors ?? []));
109
+ })));
110
+ return true;
111
+ },
112
+ close: async () => {
113
+ return Promise.all(promises).then(() => {
114
+ return {
115
+ itens,
116
+ errors: errors.length === 0 ? undefined : errors
117
+ };
118
+ }, err => Plata.BuildPlataError({
119
+ errorID: 'PLSQLQ002',
120
+ msg: 'Unexpected error in select',
121
+ error: err
122
+ }));
123
+ }
124
+ });
125
+ }
126
+ async eachRowAsync(c) {
127
+ const promises = [];
128
+ let shoudContinue = true;
129
+ let error = undefined;
130
+ return this._handleStream({
131
+ row: async (row) => {
132
+ promises.push(Plata.FastPromise(() => this.model.validate(row))
133
+ .then(lineResult => {
134
+ c(lineResult).then(r => {
135
+ if (r.errorID !== undefined) {
136
+ shoudContinue = false;
137
+ error = r;
138
+ return;
139
+ }
140
+ shoudContinue = shoudContinue ? r : shoudContinue;
141
+ });
142
+ })
143
+ .catch(err => {
144
+ shoudContinue = false;
145
+ error = {
146
+ errorID: 'PLSQLQ003',
147
+ msg: 'Unexpected error in callback',
148
+ error: err
149
+ };
150
+ }));
151
+ return shoudContinue;
152
+ },
153
+ close: async () => {
154
+ return Promise.all(promises).then(() => error ?? true, err => Plata.BuildPlataError({
155
+ errorID: 'PLSQLQ004',
156
+ msg: 'Unexpected Error in select',
157
+ error: err
158
+ }));
159
+ }
160
+ });
161
+ }
162
+ }
163
+ exports.Query = Query;
164
+ //# sourceMappingURL=sql.js.map
@@ -0,0 +1 @@
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.63",
3
+ "version": "0.4.66",
4
4
  "main": "__BUILD__/index",
5
5
  "types": "src/@types/exported.d.ts",
6
6
  "bin": {
@@ -27,6 +27,7 @@
27
27
  "commander": "^9.4.0",
28
28
  "express": "^4.18.1",
29
29
  "glob": "^8.0.3",
30
+ "knex": "^2.4.2",
30
31
  "node-schedule": "^2.1.0",
31
32
  "swagger-ui-express": "^4.4.0",
32
33
  "tsc-prog": "^2.2.1",
@@ -34,8 +35,14 @@
34
35
  },
35
36
  "devDependencies": {
36
37
  "nodemon": "^2.0.20",
37
- "rimraf": "^3.0.2"
38
+ "rimraf": "^3.0.2",
39
+ "sqlite3": "^5.1.4"
38
40
  },
39
41
  "description": "",
40
- "files": [ "__BUILD__", "src", "templates", "tsconfig.json" ]
42
+ "files": [
43
+ "__BUILD__",
44
+ "src",
45
+ "templates",
46
+ "tsconfig.json"
47
+ ]
41
48
  }
@@ -3,6 +3,7 @@
3
3
  /// <reference path="cluster.d.ts" />
4
4
  /// <reference path="router.d.ts" />
5
5
  /// <reference path="fs.d.ts" />
6
+ /// <reference path="sql.d.ts" />
6
7
  /// <reference path="../bin/runtime/_types.d.ts" />
7
8
 
8
9
  import * as PlataCluster from '../libs/cluster'
@@ -11,6 +12,7 @@ import * as PlataTools from '../libs/tools'
11
12
  import * as PlataModels from '../libs/model'
12
13
  import * as PlataTasks from '../libs/tasks'
13
14
  import * as PlataSwagger from '../libs/swagger'
15
+ import * as PlataSql from '../libs/sql'
14
16
  import { PlataFs } from '../libs/fs'
15
17
  import { PlataAxios, PlataAxiosUnsafe } from '../libs/axios'
16
18
 
@@ -23,5 +25,6 @@ export {
23
25
  PlataTasks,
24
26
  PlataAxios,
25
27
  PlataAxiosUnsafe,
28
+ PlataSql,
26
29
  PlataFs
27
30
  }
@@ -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>
@@ -0,0 +1,35 @@
1
+ import { Knex } from 'knex'
2
+
3
+ declare global {
4
+ namespace Sql {
5
+ type ModelQueryBuilder<T extends Model.Template> =
6
+ Knex.QueryBuilder<Model.ExtractTemplateType<T>, Model.ExtractTemplateType<T>[]>
7
+ ;
8
+
9
+ type Builder<T extends Model.Template> =
10
+ (s: ModelQueryBuilder<T>) => ModelQueryBuilder<T>
11
+ ;
12
+
13
+ interface StreamHandler {
14
+ close: <Y>() => PlataPromise<Y>
15
+ row: <T>(row: T) => Promise<boolean>
16
+ error?: (err) => Promise<void>
17
+ }
18
+
19
+ type ModelList<T extends Model.Template> = PlataPromise<{
20
+ errors: undefined
21
+ itens: Model.ExtractTemplateType<T>[]
22
+ } | {
23
+ errors: PlataError[]
24
+ itens: Model.ExtractTemplateTypeNotValid<T>[]
25
+ }>
26
+
27
+ type EachRowCallBack<T extends Model.Template> =
28
+ (x: Model.ModelValidateReturn<T>) => PlataPromise<true>
29
+ ;
30
+
31
+ type TimeZoneDate = Date & { __type: 'sql' }
32
+
33
+ type TransactionFunction<T, Y> = (sql: T) => Promise<Y>
34
+ }
35
+ }
@@ -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
  }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ import * as PlataTools from './libs/tools'
4
4
  import * as PlataModels from './libs/model'
5
5
  import * as PlataTasks from './libs/tasks'
6
6
  import * as PlataSwagger from './libs/swagger'
7
+ import * as PlataSql from './libs/sql'
7
8
  import { PlataFs } from './libs/fs'
8
9
  import { PlataAxios, PlataAxiosUnsafe } from './libs/axios'
9
10
 
@@ -16,5 +17,6 @@ export {
16
17
  PlataTasks,
17
18
  PlataAxios,
18
19
  PlataAxiosUnsafe,
20
+ PlataSql,
19
21
  PlataFs
20
22
  }
@@ -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,
@@ -0,0 +1,212 @@
1
+ import knex, { Knex } from "knex"
2
+ import { ModelTemplate } from "./model"
3
+
4
+ export class Driver<InTransaction extends boolean> {
5
+ public readonly config: Knex.Config
6
+ public readonly inTransaction: InTransaction
7
+ public readonly conn: InTransaction extends true ? Knex.Transaction : Knex
8
+ constructor(config: Knex.Config, inTransaction: InTransaction, trx?: Knex.Transaction) {
9
+ this.inTransaction = inTransaction
10
+ this.config = config
11
+
12
+ if (!this.inTransaction) {
13
+ if (config.pool === undefined)
14
+ config.pool = {
15
+ min: 1,
16
+ max: 1
17
+ }
18
+ ;
19
+
20
+ this.conn = knex(config) as any
21
+
22
+ if (Plata.config.ENV === 'debug') {
23
+ this.conn.on('query', console.log)
24
+ this.conn.on('query-error', console.error)
25
+ }
26
+ } else {
27
+ this.conn = trx as any
28
+ }
29
+ }
30
+
31
+ public select<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>) {
32
+ return {
33
+ build: (builder: Sql.Builder<T>) =>
34
+ new Query(
35
+ builder(this.conn.select(...Object.keys(model.template)).from(table)),
36
+ model
37
+ )
38
+ ,
39
+ }
40
+ }
41
+
42
+ public async insert<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>, values: Model.ParcialTemplateType<T>[]): PlataPromise<Model.ExtractTemplateType<T>[]> {
43
+ return this.conn(table).insert(
44
+ values,
45
+ ).returning('*').then(
46
+ r => r,
47
+ err => Plata.BuildPlataError({
48
+ errorID: 'PLSQL001',
49
+ msg: 'Unexpected error while inserting',
50
+ error: err?.toString(),
51
+ })
52
+ )
53
+ }
54
+
55
+ public update<T extends Model.Template, C extends Model.Converters<T>>(table: string, model: ModelTemplate<T, C>) {
56
+ return {
57
+ build: async (s: Sql.Builder<T>, set: Model.ParcialTemplateType<T>): PlataPromise<number> =>
58
+ Plata.FastPromise(() =>
59
+ s(this.conn(table)).update(set as any)
60
+ ).then(
61
+ rows => rows,
62
+ err => Plata.BuildPlataError({
63
+ errorID: 'PLSQL002',
64
+ msg: 'Unexpected error while update',
65
+ error: err
66
+ })
67
+ )
68
+ ,
69
+ }
70
+ }
71
+
72
+ public trasation<T = any>(transaction: Sql.TransactionFunction<Driver<true>, T>, config?: Knex.TransactionConfig) {
73
+ return this.conn.transaction(async trx => {
74
+ const transactionDriver = new Driver(this.config, true, trx)
75
+
76
+ return transaction(transactionDriver)
77
+ }, config).then(
78
+ r => r,
79
+ err => Plata.BuildPlataError({
80
+ errorID: 'PLSQL003',
81
+ msg: 'Unexpected error in transation',
82
+ error: err,
83
+ })
84
+ )
85
+ }
86
+ }
87
+
88
+ export class Query<T extends Model.Template, C extends Model.Converters<T>> {
89
+ public query: Sql.ModelQueryBuilder<T>
90
+ public readonly model: ModelTemplate<T, C>
91
+
92
+ constructor (query: Sql.ModelQueryBuilder<T>, model: ModelTemplate<T, C>) {
93
+ this.query = query
94
+ this.model = model
95
+ }
96
+
97
+ public _handleStream<Y>(handler: Sql.StreamHandler): PlataPromise<Y> {
98
+ return new Promise(resolve => {
99
+ let shoudContinue = true
100
+
101
+ const stream = this.query.stream()
102
+
103
+ stream.on('close', async () => {
104
+ return resolve(handler.close<Y>())
105
+ })
106
+
107
+ stream.on('data', async row => {
108
+ if (shoudContinue) {
109
+ shoudContinue = await handler.row(row)
110
+ } else {
111
+ stream.pause()
112
+ stream.end()
113
+ }
114
+ })
115
+
116
+ stream.on('error', async err => {
117
+ shoudContinue = false
118
+
119
+ if (handler.error !== undefined) await handler.error(err)
120
+
121
+ return resolve({
122
+ errorID: 'PLSQLQ001',
123
+ msg: 'Unexpected error in query',
124
+ error: err
125
+ })
126
+ })
127
+ })
128
+ }
129
+
130
+ public toListAsync(): Sql.ModelList<T> {
131
+ const promises: Promise<void>[] = []
132
+ const itens: any[] = []
133
+ const errors: PlataError[] = []
134
+
135
+ return this._handleStream({
136
+ row: async (row) => {
137
+ promises.push(Plata.FastPromise(
138
+ () =>
139
+ this.model.validate(row)
140
+ .then(r => {
141
+ itens.push(r.value)
142
+ errors.push(...(r.errors ?? []))
143
+ })
144
+ )
145
+ )
146
+
147
+ return true
148
+ },
149
+ close: async (): PlataPromise<Sql.ModelList<T> | MaybePlataError> => {
150
+ return Promise.all(promises).then(
151
+ () => {
152
+ return {
153
+ itens,
154
+ errors: errors.length === 0 ? undefined : errors
155
+ }
156
+ },
157
+ err => Plata.BuildPlataError({
158
+ errorID: 'PLSQLQ002',
159
+ msg: 'Unexpected error in select',
160
+ error: err
161
+ })
162
+ )
163
+ }
164
+ })
165
+ }
166
+
167
+ public async eachRowAsync(c: Sql.EachRowCallBack<T>): PlataPromise<boolean> {
168
+ const promises: Promise<void>[] = []
169
+ let shoudContinue = true
170
+ let error: PlataError | undefined = undefined
171
+
172
+ return this._handleStream<MaybePlataError>({
173
+ row: async row => {
174
+ promises.push(Plata.FastPromise(() => this.model.validate(row))
175
+ .then(
176
+ lineResult => {
177
+ c(lineResult).then(r => {
178
+ if (r.errorID !== undefined) {
179
+ shoudContinue = false
180
+ error = r
181
+ return
182
+ }
183
+
184
+ shoudContinue = shoudContinue ? r : shoudContinue
185
+ })
186
+ }
187
+ )
188
+ .catch(err => {
189
+ shoudContinue = false
190
+ error = {
191
+ errorID: 'PLSQLQ003',
192
+ msg: 'Unexpected error in callback',
193
+ error: err
194
+ }
195
+ })
196
+ )
197
+
198
+ return shoudContinue
199
+ },
200
+ close: async (): PlataPromise<boolean> => {
201
+ return Promise.all(promises).then(
202
+ () => error ?? true,
203
+ err => Plata.BuildPlataError({
204
+ errorID: 'PLSQLQ004',
205
+ msg: 'Unexpected Error in select',
206
+ error: err
207
+ })
208
+ )
209
+ }
210
+ })
211
+ }
212
+ }
Binary file
@@ -0,0 +1,38 @@
1
+ CREATE TABLE TB_INSERT (
2
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
3
+ VL_PRECO INTEGER NOT NULL,
4
+ DS_OBS TEXT NULL
5
+ );
6
+
7
+ INSERT INTO TB_INSERT (VL_PRECO,DS_OBS) VALUES (1, 'A');
8
+
9
+ CREATE TABLE TB_UPDATE (
10
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
11
+ VL_PRECO INTEGER NOT NULL,
12
+ DS_OBS TEXT NULL
13
+ );
14
+
15
+ INSERT INTO TB_UPDATE (VL_PRECO,DS_OBS) VALUES (1, 'A');
16
+ INSERT INTO TB_UPDATE (VL_PRECO,DS_OBS) VALUES (2, 'B');
17
+
18
+ CREATE TABLE TB_TRANSACTION_OKAY (
19
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
20
+ VL_PRECO INTEGER NOT NULL,
21
+ DS_OBS TEXT NULL
22
+ );
23
+
24
+ INSERT INTO TB_TRANSACTION_OKAY (VL_PRECO,DS_OBS) VALUES (1, 'A');
25
+
26
+ CREATE TABLE TB_TRANSACTION_NOKAY (
27
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
28
+ VL_PRECO INTEGER NOT NULL,
29
+ DS_OBS TEXT NULL
30
+ );
31
+
32
+ INSERT INTO TB_TRANSACTION_NOKAY (VL_PRECO,DS_OBS) VALUES (1, 'A');
33
+
34
+ CREATE TABLE TB_MULTIBANCO (
35
+ PK_ID INTEGER PRIMARY KEY AUTOINCREMENT,
36
+ VL_PRECO INTEGER NOT NULL,
37
+ DS_OBS TEXT NULL
38
+ );
@@ -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({
@@ -0,0 +1,267 @@
1
+ import { describe, it, after, before } from "node:test"
2
+ import assert from "node:assert"
3
+ import path from "node:path"
4
+ import fs from "node:fs"
5
+ import { PlataModels, PlataSql } from ".."
6
+ import { loadRuntimeLibs } from "../bin/runtime/_setupRuntime"
7
+
8
+ describe('PlataSql', () => {
9
+ const originalDatabasePath = path.join(__dirname, 'assets', 'sql', 'example.db')
10
+ const tmpDatabasePath = path.join(__dirname, 'assets', 'sql', 'example.dummy.db')
11
+ const tmpAuxDatabasePath = path.join(__dirname, 'assets', 'sql', 'aux.dummy.db')
12
+
13
+ let sql: PlataSql.Driver<false>
14
+ let aux: PlataSql.Driver<false>
15
+
16
+ fs.rmSync(tmpDatabasePath, {
17
+ force: true,
18
+ recursive: false,
19
+ })
20
+
21
+ fs.rmSync(tmpAuxDatabasePath, {
22
+ force: true,
23
+ recursive: false,
24
+ })
25
+
26
+ const plataPromise = (async () => {
27
+ const g = global as any
28
+
29
+ g.Plata = await loadRuntimeLibs()
30
+ g.Plata.config = new Object(null)
31
+ })()
32
+
33
+ const modelSql = new PlataModels.ModelTemplate({
34
+ PK_ID: [ PlataModels.Required(), PlataModels.Int() ],
35
+ VL_PRECO: [ PlataModels.Required(), PlataModels.Int() ],
36
+ DS_OBS: [ PlataModels.Required(), PlataModels.VarChar(Infinity) ]
37
+ } as const, {} as const)
38
+
39
+ const getSqlite3 = async () => {
40
+ await plataPromise
41
+ if (!fs.existsSync(tmpDatabasePath)) {
42
+ fs.copyFileSync(originalDatabasePath, tmpDatabasePath)
43
+ }
44
+
45
+ return new PlataSql.Driver({
46
+ client: 'sqlite3',
47
+ connection: {
48
+ filename: tmpDatabasePath
49
+ }
50
+ }, false)
51
+ }
52
+
53
+ const getSqlite3Aux = async () => {
54
+ await plataPromise
55
+ if (!fs.existsSync(tmpAuxDatabasePath)) {
56
+ fs.copyFileSync(originalDatabasePath, tmpAuxDatabasePath)
57
+ }
58
+
59
+ return new PlataSql.Driver({
60
+ client: 'sqlite3',
61
+ connection: {
62
+ filename: tmpAuxDatabasePath
63
+ }
64
+ }, false)
65
+ }
66
+
67
+ before(async () => {
68
+ sql = await getSqlite3()
69
+ aux = await getSqlite3Aux()
70
+ })
71
+
72
+ it('Insert', async () => {
73
+ const tabela = 'TB_INSERT'
74
+
75
+ const antes = await sql.select(tabela, modelSql).build(
76
+ s => s
77
+ ).toListAsync()
78
+
79
+ assert.strictEqual(antes.errorID, undefined)
80
+ assert.strictEqual(antes.errors, undefined)
81
+
82
+ const insert = await sql.insert(tabela, modelSql, [{
83
+ VL_PRECO: 2,
84
+ DS_OBS: 'B'
85
+ }])
86
+
87
+ assert.strictEqual(insert.errorID, undefined)
88
+ assert.strictEqual(insert.length, 1)
89
+
90
+ const depois = await sql.select(tabela, modelSql).build(
91
+ s => s
92
+ ).toListAsync()
93
+
94
+ assert.strictEqual(depois.errorID, undefined)
95
+ assert.strictEqual(depois.errors, undefined)
96
+
97
+ const esperado = [...antes.itens, ...insert]
98
+
99
+ for (let i = 0; i < depois.itens.length; i++) {
100
+ assert.deepStrictEqual(depois.itens[i], esperado[i])
101
+ }
102
+ })
103
+
104
+ it('Update', async () => {
105
+ const tabela = 'TB_UPDATE'
106
+
107
+ const antes = await sql.select(tabela, modelSql).build(
108
+ s => s
109
+ ).toListAsync()
110
+
111
+ assert.strictEqual(antes.errorID, undefined)
112
+ assert.strictEqual(antes.errors, undefined)
113
+
114
+ const update = await sql.update(tabela, modelSql).build(
115
+ s => s.where('PK_ID', 1), {
116
+ VL_PRECO: 3,
117
+ DS_OBS: 'C'
118
+ }
119
+ )
120
+
121
+ assert.strictEqual(update.errorID, undefined)
122
+ assert.strictEqual(update, 1)
123
+
124
+ const depois = await sql.select(tabela, modelSql).build(
125
+ s => s
126
+ ).toListAsync()
127
+
128
+ assert.strictEqual(depois.errorID, undefined)
129
+ assert.strictEqual(depois.errors, undefined)
130
+
131
+ const alterado = depois.itens.filter(d => d.PK_ID === 1)
132
+
133
+ assert.strictEqual(alterado.length, 1)
134
+
135
+ assert.strictEqual(alterado[0].DS_OBS, 'C')
136
+ assert.strictEqual(alterado[0].VL_PRECO, 3)
137
+ })
138
+
139
+ it('Transaction Okay', async () => {
140
+ const tabela = 'TB_TRANSACTION_OKAY'
141
+
142
+ const antes = await sql.select(tabela, modelSql).build(
143
+ s => s
144
+ ).toListAsync()
145
+
146
+ assert.strictEqual(antes.errorID, undefined)
147
+ assert.strictEqual(antes.errors, undefined)
148
+
149
+ const error = await sql.trasation(async trx => {
150
+ const insert = await trx.insert(tabela, modelSql, [{
151
+ DS_OBS: 'B',
152
+ VL_PRECO: 2
153
+ }])
154
+
155
+ assert.strictEqual(insert.errorID, undefined)
156
+ })
157
+
158
+ assert.strictEqual(error, undefined)
159
+
160
+ const depois = await sql.select(tabela, modelSql).build(
161
+ s => s
162
+ ).toListAsync()
163
+
164
+ assert.strictEqual(depois.errorID, undefined)
165
+ assert.strictEqual(depois.errors, undefined)
166
+
167
+ assert.strictEqual(depois.itens.length, antes.itens.length + 1)
168
+ })
169
+
170
+ it('Transaction Não Okay', async () => {
171
+ const tabela = 'TB_TRANSACTION_NOKAY'
172
+
173
+ const antes = await sql.select(tabela, modelSql).build(
174
+ s => s
175
+ ).toListAsync()
176
+
177
+ assert.strictEqual(antes.errorID, undefined)
178
+ assert.strictEqual(antes.errors, undefined)
179
+
180
+ const error = await sql.trasation(async trx => {
181
+ const insert = await trx.insert(tabela, modelSql, [{
182
+ DS_OBS: 'B',
183
+ VL_PRECO: 2
184
+ }])
185
+
186
+ assert.strictEqual(insert.errorID, undefined)
187
+ throw Plata.BuildPlataError({
188
+ errorID: 'PTSQLTRX001',
189
+ msg: 'Erro esperado'
190
+ })
191
+ })
192
+
193
+ assert.notStrictEqual(error, undefined)
194
+
195
+ const depois = await sql.select(tabela, modelSql).build(
196
+ s => s
197
+ ).toListAsync()
198
+
199
+ assert.strictEqual(depois.errorID, undefined)
200
+ assert.strictEqual(depois.errors, undefined)
201
+
202
+ assert.strictEqual(depois.itens.length, antes.itens.length)
203
+ })
204
+
205
+ it('MultiBanco', async () => {
206
+ const tabela = 'TB_MULTIBANCO'
207
+
208
+ const sqlInsertPromise = Plata.FastPromise(() => sql.insert(tabela, modelSql, [
209
+ {
210
+ VL_PRECO: 1,
211
+ DS_OBS: 'A'
212
+ }
213
+ ]))
214
+
215
+ const auxInsertPromise = Plata.FastPromise(() => aux.insert(tabela, modelSql, [
216
+ {
217
+ VL_PRECO: 2,
218
+ DS_OBS: 'B'
219
+ }
220
+ ]))
221
+
222
+ const [ sqlResult, auxResult ] = await Promise.all([ sqlInsertPromise, auxInsertPromise ])
223
+
224
+ assert.strictEqual(sqlResult.errorID, undefined)
225
+ assert.strictEqual(auxResult.errorID, undefined)
226
+
227
+ const sqlSelectPromise = sql.select(tabela, modelSql).build(
228
+ s => s
229
+ ).toListAsync()
230
+
231
+ const auxSelectPromise = aux.select(tabela, modelSql).build(
232
+ s => s
233
+ ).toListAsync()
234
+
235
+ const [ sqlSelect, auxSelect ] = await Promise.all([ sqlSelectPromise , auxSelectPromise ])
236
+
237
+ assert.strictEqual(sqlSelect.errorID, undefined)
238
+ assert.strictEqual(sqlSelect.errors, undefined)
239
+
240
+ assert.strictEqual(auxSelect.errorID, undefined)
241
+ assert.strictEqual(auxSelect.errors, undefined)
242
+
243
+ assert.strictEqual(sqlSelect.itens.length, 1)
244
+ assert.strictEqual(auxSelect.itens.length, 1)
245
+
246
+ assert.strictEqual(sqlSelect.itens[0].VL_PRECO, 1)
247
+ assert.strictEqual(sqlSelect.itens[0].DS_OBS, 'A')
248
+
249
+ assert.strictEqual(auxSelect.itens[0].VL_PRECO, 2)
250
+ assert.strictEqual(auxSelect.itens[0].DS_OBS, 'B')
251
+ })
252
+
253
+ after(async () => { // Requerido para Sqlite3
254
+ const sqlError = await sql.conn.destroy().then(
255
+ () => undefined,
256
+ err => err
257
+ )
258
+
259
+ const auxError = await aux.conn.destroy().then(
260
+ () => undefined,
261
+ err => err
262
+ )
263
+
264
+ assert.strictEqual(sqlError, undefined)
265
+ assert.strictEqual(auxError, undefined)
266
+ })
267
+ })