remult 0.17.3 → 0.18.0

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.
Files changed (163) hide show
  1. package/SseSubscriptionServer.d.ts +23 -0
  2. package/SseSubscriptionServer.js +143 -0
  3. package/ably.d.ts +13 -0
  4. package/ably.js +59 -0
  5. package/esm/SseSubscriptionServer.d.ts +23 -0
  6. package/esm/SseSubscriptionServer.js +102 -0
  7. package/esm/ably.d.ts +13 -0
  8. package/esm/ably.js +28 -0
  9. package/esm/index.d.ts +7 -4
  10. package/esm/index.js +4 -2
  11. package/esm/live-query/data-provider-live-query-storage.d.ts +23 -0
  12. package/esm/live-query/data-provider-live-query-storage.js +78 -0
  13. package/esm/myLog.d.ts +1 -0
  14. package/esm/myLog.js +5 -0
  15. package/esm/postgres/postgres-data-provider.d.ts +4 -2
  16. package/esm/postgres/postgres-data-provider.js +18 -6
  17. package/esm/postgres/schema-builder.d.ts +2 -1
  18. package/esm/postgres/schema-builder.js +49 -29
  19. package/esm/remult-knex/index.d.ts +10 -32
  20. package/esm/remult-knex/index.js +75 -51
  21. package/esm/remult-mongo.d.ts +9 -2
  22. package/esm/remult-mongo.js +24 -8
  23. package/esm/remult-next.d.ts +11 -0
  24. package/esm/remult-next.js +27 -0
  25. package/esm/server/core.d.ts +2 -0
  26. package/esm/server/core.js +2 -0
  27. package/esm/server/expressBridge.d.ts +19 -7
  28. package/esm/server/expressBridge.js +135 -31
  29. package/esm/server/index.d.ts +2 -1
  30. package/esm/server/index.js +2 -1
  31. package/esm/server/initDataProvider.d.ts +2 -0
  32. package/esm/server/initDataProvider.js +14 -0
  33. package/esm/src/buildRestDataProvider.d.ts +31 -0
  34. package/esm/src/buildRestDataProvider.js +110 -0
  35. package/esm/src/column-interfaces.d.ts +44 -8
  36. package/esm/src/column.d.ts +3 -3
  37. package/esm/src/context.d.ts +39 -36
  38. package/esm/src/context.js +87 -117
  39. package/esm/src/data-api.d.ts +9 -3
  40. package/esm/src/data-api.js +130 -63
  41. package/esm/src/data-interfaces.d.ts +5 -1
  42. package/esm/src/data-providers/array-entity-data-provider.d.ts +1 -1
  43. package/esm/src/data-providers/array-entity-data-provider.js +2 -17
  44. package/esm/src/data-providers/rest-data-provider.d.ts +4 -3
  45. package/esm/src/data-providers/rest-data-provider.js +64 -23
  46. package/esm/src/data-providers/sql-database.d.ts +7 -3
  47. package/esm/src/data-providers/sql-database.js +60 -17
  48. package/esm/src/data-providers/web-sql-data-provider.d.ts +3 -0
  49. package/esm/src/data-providers/web-sql-data-provider.js +23 -9
  50. package/esm/src/entity.d.ts +2 -2
  51. package/esm/src/filter/filter-consumer-bridge-to-sql-request.d.ts +16 -16
  52. package/esm/src/filter/filter-consumer-bridge-to-sql-request.js +29 -21
  53. package/esm/src/filter/filter-interfaces.d.ts +5 -5
  54. package/esm/src/filter/filter-interfaces.js +31 -26
  55. package/esm/src/live-query/LiveQueryClient.d.ts +1 -0
  56. package/esm/src/live-query/LiveQueryClient.js +184 -0
  57. package/esm/src/live-query/SseSubscriptionClient.d.ts +5 -0
  58. package/esm/src/live-query/SseSubscriptionClient.js +86 -0
  59. package/esm/src/live-query/SubscriptionChannel.d.ts +41 -0
  60. package/esm/src/live-query/SubscriptionChannel.js +121 -0
  61. package/esm/src/live-query/SubscriptionServer.d.ts +38 -0
  62. package/esm/src/live-query/SubscriptionServer.js +108 -0
  63. package/esm/src/remult-proxy.d.ts +1 -1
  64. package/esm/src/remult-proxy.js +52 -7
  65. package/esm/src/remult3/RepositoryImplementation.d.ts +14 -5
  66. package/esm/src/remult3/RepositoryImplementation.js +124 -44
  67. package/esm/src/remult3/getId.d.ts +2 -0
  68. package/esm/src/remult3/getId.js +7 -0
  69. package/esm/src/remult3/remult3.d.ts +67 -10
  70. package/esm/src/remult3/remult3.js +1 -0
  71. package/esm/src/server-action.d.ts +5 -1
  72. package/esm/src/server-action.js +11 -12
  73. package/esm/src/shared-tests/db-tests-setup.d.ts +12 -5
  74. package/esm/src/shared-tests/db-tests-setup.js +14 -6
  75. package/esm/src/shared-tests/db-tests.db-tests.js +71 -10
  76. package/esm/src/sort.d.ts +1 -0
  77. package/esm/src/sort.js +18 -0
  78. package/esm/src/sql-command.d.ts +5 -2
  79. package/esm/src/tests/entityForCustomFilter.d.ts +6 -6
  80. package/esm/src/tests/entityForCustomFilter.js +20 -21
  81. package/esm/src/tests/frontend-database-tests-setup.spec.js +3 -4
  82. package/esm/src/tests/testHelper.spec.d.ts +3 -1
  83. package/esm/src/tests/testHelper.spec.js +63 -60
  84. package/esm/src/valueConverters.js +15 -7
  85. package/index.d.ts +7 -4
  86. package/index.js +7 -3
  87. package/live-query/data-provider-live-query-storage.d.ts +23 -0
  88. package/live-query/data-provider-live-query-storage.js +236 -0
  89. package/myLog.d.ts +1 -0
  90. package/myLog.js +20 -0
  91. package/package.json +18 -1
  92. package/postgres/postgres-data-provider.d.ts +4 -2
  93. package/postgres/postgres-data-provider.js +54 -39
  94. package/postgres/schema-builder.d.ts +2 -1
  95. package/postgres/schema-builder.js +118 -70
  96. package/remult-express.js +1 -1
  97. package/remult-knex/index.d.ts +10 -32
  98. package/remult-knex/index.js +134 -87
  99. package/remult-mongo.d.ts +9 -2
  100. package/remult-mongo.js +39 -7
  101. package/remult-next.d.ts +11 -0
  102. package/remult-next.js +73 -0
  103. package/server/JsonEntityFileStorage.js +2 -2
  104. package/server/core.d.ts +2 -0
  105. package/server/core.js +5 -1
  106. package/server/expressBridge.d.ts +19 -7
  107. package/server/expressBridge.js +283 -69
  108. package/server/index.d.ts +2 -1
  109. package/server/index.js +3 -1
  110. package/server/initDataProvider.d.ts +2 -0
  111. package/server/initDataProvider.js +26 -0
  112. package/src/buildRestDataProvider.d.ts +31 -0
  113. package/src/buildRestDataProvider.js +162 -0
  114. package/src/column-interfaces.d.ts +44 -8
  115. package/src/column.d.ts +3 -3
  116. package/src/context.d.ts +39 -36
  117. package/src/context.js +171 -166
  118. package/src/data-api.d.ts +9 -3
  119. package/src/data-api.js +233 -88
  120. package/src/data-interfaces.d.ts +5 -1
  121. package/src/data-providers/array-entity-data-provider.d.ts +1 -1
  122. package/src/data-providers/array-entity-data-provider.js +2 -17
  123. package/src/data-providers/rest-data-provider.d.ts +4 -3
  124. package/src/data-providers/rest-data-provider.js +105 -39
  125. package/src/data-providers/sql-database.d.ts +7 -3
  126. package/src/data-providers/sql-database.js +89 -16
  127. package/src/data-providers/web-sql-data-provider.d.ts +3 -0
  128. package/src/data-providers/web-sql-data-provider.js +56 -11
  129. package/src/entity.d.ts +2 -2
  130. package/src/filter/filter-consumer-bridge-to-sql-request.d.ts +16 -16
  131. package/src/filter/filter-consumer-bridge-to-sql-request.js +59 -50
  132. package/src/filter/filter-interfaces.d.ts +5 -5
  133. package/src/filter/filter-interfaces.js +31 -26
  134. package/src/live-query/LiveQueryClient.d.ts +1 -0
  135. package/src/live-query/LiveQueryClient.js +283 -0
  136. package/src/live-query/SseSubscriptionClient.d.ts +5 -0
  137. package/src/live-query/SseSubscriptionClient.js +150 -0
  138. package/src/live-query/SubscriptionChannel.d.ts +41 -0
  139. package/src/live-query/SubscriptionChannel.js +209 -0
  140. package/src/live-query/SubscriptionServer.d.ts +38 -0
  141. package/src/live-query/SubscriptionServer.js +258 -0
  142. package/src/remult-proxy.d.ts +1 -1
  143. package/src/remult-proxy.js +153 -8
  144. package/src/remult3/RepositoryImplementation.d.ts +14 -5
  145. package/src/remult3/RepositoryImplementation.js +200 -85
  146. package/src/remult3/getId.d.ts +2 -0
  147. package/src/remult3/getId.js +11 -0
  148. package/src/remult3/remult3.d.ts +67 -10
  149. package/src/remult3/remult3.js +1 -0
  150. package/src/server-action.d.ts +5 -1
  151. package/src/server-action.js +11 -11
  152. package/src/shared-tests/db-tests-setup.d.ts +12 -5
  153. package/src/shared-tests/db-tests-setup.js +17 -8
  154. package/src/shared-tests/db-tests.db-tests.js +140 -8
  155. package/src/sort.d.ts +1 -0
  156. package/src/sort.js +18 -0
  157. package/src/sql-command.d.ts +5 -2
  158. package/src/tests/entityForCustomFilter.d.ts +6 -6
  159. package/src/tests/entityForCustomFilter.js +30 -31
  160. package/src/tests/frontend-database-tests-setup.spec.js +5 -6
  161. package/src/tests/testHelper.spec.d.ts +3 -1
  162. package/src/tests/testHelper.spec.js +104 -100
  163. package/src/valueConverters.js +15 -7
@@ -4,6 +4,7 @@ exports.PostgresSchemaBuilder = exports.verifyStructureOfAllEntities = exports.p
4
4
  var tslib_1 = require("tslib");
5
5
  var context_1 = require("../src/context");
6
6
  var filter_consumer_bridge_to_sql_request_1 = require("../src/filter/filter-consumer-bridge-to-sql-request");
7
+ var remult_proxy_1 = require("../src/remult-proxy");
7
8
  var remult3_1 = require("../src/remult3");
8
9
  var valueConverters_1 = require("../src/valueConverters");
9
10
  function postgresColumnSyntax(x, dbName) {
@@ -57,58 +58,103 @@ var PostgresSchemaBuilder = /** @class */ (function () {
57
58
  }
58
59
  PostgresSchemaBuilder.prototype.verifyStructureOfAllEntities = function (remult) {
59
60
  return tslib_1.__awaiter(this, void 0, void 0, function () {
60
- var allEntities_1, allEntities_1_1, entityClass, entity, e, err_1, e_1_1;
61
- var e_1, _a;
61
+ var completed, entities, _a, _b, entityClass, entity, e, e_1_1;
62
+ var e_1, _c;
63
+ return tslib_1.__generator(this, function (_d) {
64
+ switch (_d.label) {
65
+ case 0:
66
+ if (!remult) {
67
+ remult = remult_proxy_1.RemultProxy.defaultRemult;
68
+ }
69
+ completed = new Set();
70
+ entities = [];
71
+ _d.label = 1;
72
+ case 1:
73
+ _d.trys.push([1, 6, 7, 8]);
74
+ _a = tslib_1.__values(tslib_1.__spread(context_1.allEntities).reverse()), _b = _a.next();
75
+ _d.label = 2;
76
+ case 2:
77
+ if (!!_b.done) return [3 /*break*/, 5];
78
+ entityClass = _b.value;
79
+ entity = remult.repo(entityClass).metadata;
80
+ return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.dbNamesOf(entity)];
81
+ case 3:
82
+ e = _d.sent();
83
+ if (completed.has(e.$entityName))
84
+ return [3 /*break*/, 4];
85
+ completed.add(e.$entityName);
86
+ entities.push(entity);
87
+ _d.label = 4;
88
+ case 4:
89
+ _b = _a.next();
90
+ return [3 /*break*/, 2];
91
+ case 5: return [3 /*break*/, 8];
92
+ case 6:
93
+ e_1_1 = _d.sent();
94
+ e_1 = { error: e_1_1 };
95
+ return [3 /*break*/, 8];
96
+ case 7:
97
+ try {
98
+ if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
99
+ }
100
+ finally { if (e_1) throw e_1.error; }
101
+ return [7 /*endfinally*/];
102
+ case 8: return [4 /*yield*/, this.ensureSchema(entities)];
103
+ case 9:
104
+ _d.sent();
105
+ return [2 /*return*/];
106
+ }
107
+ });
108
+ });
109
+ };
110
+ PostgresSchemaBuilder.prototype.ensureSchema = function (entities) {
111
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
112
+ var entities_1, entities_1_1, entity, e, err_1, e_2_1;
113
+ var e_2, _a;
62
114
  return tslib_1.__generator(this, function (_b) {
63
115
  switch (_b.label) {
64
116
  case 0:
65
- console.log("start verify structure");
117
+ _b.trys.push([0, 10, 11, 12]);
118
+ entities_1 = tslib_1.__values(entities), entities_1_1 = entities_1.next();
66
119
  _b.label = 1;
67
120
  case 1:
68
- _b.trys.push([1, 12, 13, 14]);
69
- allEntities_1 = tslib_1.__values(context_1.allEntities), allEntities_1_1 = allEntities_1.next();
70
- _b.label = 2;
121
+ if (!!entities_1_1.done) return [3 /*break*/, 9];
122
+ entity = entities_1_1.value;
123
+ return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.dbNamesOf(entity)];
71
124
  case 2:
72
- if (!!allEntities_1_1.done) return [3 /*break*/, 11];
73
- entityClass = allEntities_1_1.value;
74
- entity = remult.repo(entityClass).metadata;
75
- return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
76
- case 3:
77
125
  e = _b.sent();
78
- _b.label = 4;
79
- case 4:
80
- _b.trys.push([4, 9, , 10]);
81
- if (!!entity.options.sqlExpression) return [3 /*break*/, 8];
82
- return [4 /*yield*/, e.entityName];
83
- case 5:
84
- if (!((_b.sent()).toLowerCase().indexOf('from ') < 0)) return [3 /*break*/, 8];
126
+ _b.label = 3;
127
+ case 3:
128
+ _b.trys.push([3, 7, , 8]);
129
+ if (!!entity.options.sqlExpression) return [3 /*break*/, 6];
130
+ if (!(e.$entityName.toLowerCase().indexOf('from ') < 0)) return [3 /*break*/, 6];
85
131
  return [4 /*yield*/, this.createIfNotExist(entity)];
86
- case 6:
132
+ case 4:
87
133
  _b.sent();
88
134
  return [4 /*yield*/, this.verifyAllColumns(entity)];
89
- case 7:
135
+ case 5:
90
136
  _b.sent();
91
- _b.label = 8;
92
- case 8: return [3 /*break*/, 10];
93
- case 9:
137
+ _b.label = 6;
138
+ case 6: return [3 /*break*/, 8];
139
+ case 7:
94
140
  err_1 = _b.sent();
95
- console.log("failed verify structure of " + e.entityName + " ", err_1);
96
- return [3 /*break*/, 10];
141
+ console.error("failed verify structure of " + e.$entityName + " ", err_1);
142
+ return [3 /*break*/, 8];
143
+ case 8:
144
+ entities_1_1 = entities_1.next();
145
+ return [3 /*break*/, 1];
146
+ case 9: return [3 /*break*/, 12];
97
147
  case 10:
98
- allEntities_1_1 = allEntities_1.next();
99
- return [3 /*break*/, 2];
100
- case 11: return [3 /*break*/, 14];
101
- case 12:
102
- e_1_1 = _b.sent();
103
- e_1 = { error: e_1_1 };
104
- return [3 /*break*/, 14];
105
- case 13:
148
+ e_2_1 = _b.sent();
149
+ e_2 = { error: e_2_1 };
150
+ return [3 /*break*/, 12];
151
+ case 11:
106
152
  try {
107
- if (allEntities_1_1 && !allEntities_1_1.done && (_a = allEntities_1.return)) _a.call(allEntities_1);
153
+ if (entities_1_1 && !entities_1_1.done && (_a = entities_1.return)) _a.call(entities_1);
108
154
  }
109
- finally { if (e_1) throw e_1.error; }
155
+ finally { if (e_2) throw e_2.error; }
110
156
  return [7 /*endfinally*/];
111
- case 14: return [2 /*return*/];
157
+ case 12: return [2 /*return*/];
112
158
  }
113
159
  });
114
160
  });
@@ -121,12 +167,12 @@ var PostgresSchemaBuilder = /** @class */ (function () {
121
167
  switch (_a.label) {
122
168
  case 0:
123
169
  c = this.pool.createCommand();
124
- return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
170
+ return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.dbNamesOf(entity)];
125
171
  case 1:
126
172
  e = _a.sent();
127
- return [4 /*yield*/, c.execute("select 1 from information_Schema.tables where table_name=" + c.addParameterAndReturnSqlToken((e.entityName).toLowerCase()) + this.additionalWhere).then(function (r) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
173
+ return [4 /*yield*/, c.execute("select 1 from information_Schema.tables where table_name=" + c.addParameterAndReturnSqlToken((e.$entityName).toLowerCase()) + this.additionalWhere).then(function (r) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
128
174
  var result, _a, _b, x, sql;
129
- var e_2, _c;
175
+ var e_3, _c;
130
176
  return tslib_1.__generator(this, function (_d) {
131
177
  switch (_d.label) {
132
178
  case 0:
@@ -135,32 +181,32 @@ var PostgresSchemaBuilder = /** @class */ (function () {
135
181
  try {
136
182
  for (_a = tslib_1.__values(entity.fields), _b = _a.next(); !_b.done; _b = _a.next()) {
137
183
  x = _b.value;
138
- if (!e.isDbReadonly(x) || remult3_1.isAutoIncrement(x)) {
184
+ if (!filter_consumer_bridge_to_sql_request_1.isDbReadonly(x, e) || remult3_1.isAutoIncrement(x)) {
139
185
  if (result.length != 0)
140
186
  result += ',';
141
187
  result += '\r\n ';
142
188
  if (remult3_1.isAutoIncrement(x))
143
- result += e.nameOf(x) + ' serial';
189
+ result += e.$dbNameOf(x) + ' serial';
144
190
  else {
145
- result += postgresColumnSyntax(x, e.nameOf(x));
146
- if (x == entity.idMetadata.field)
147
- result += ' primary key';
191
+ result += postgresColumnSyntax(x, e.$dbNameOf(x));
148
192
  }
193
+ if (x == entity.idMetadata.field)
194
+ result += ' primary key';
149
195
  }
150
196
  }
151
197
  }
152
- catch (e_2_1) { e_2 = { error: e_2_1 }; }
198
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
153
199
  finally {
154
200
  try {
155
201
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
156
202
  }
157
- finally { if (e_2) throw e_2.error; }
203
+ finally { if (e_3) throw e_3.error; }
158
204
  }
159
- sql = 'create table ' + e.entityName + ' (' + result + '\r\n)';
160
- //console.log(sql);
205
+ sql = 'create table ' + e.$entityName + ' (' + result + '\r\n)';
206
+ if (PostgresSchemaBuilder.logToConsole)
207
+ console.info(sql);
161
208
  return [4 /*yield*/, this.pool.execute(sql)];
162
209
  case 1:
163
- //console.log(sql);
164
210
  _d.sent();
165
211
  _d.label = 2;
166
212
  case 2: return [2 /*return*/];
@@ -179,30 +225,30 @@ var PostgresSchemaBuilder = /** @class */ (function () {
179
225
  var e, cmd, colName, sql, err_2;
180
226
  return tslib_1.__generator(this, function (_a) {
181
227
  switch (_a.label) {
182
- case 0: return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
228
+ case 0: return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.dbNamesOf(entity)];
183
229
  case 1:
184
230
  e = _a.sent();
185
- if (e.isDbReadonly(c(entity)))
231
+ if (filter_consumer_bridge_to_sql_request_1.isDbReadonly(c(entity), e))
186
232
  return [2 /*return*/];
187
233
  _a.label = 2;
188
234
  case 2:
189
235
  _a.trys.push([2, 6, , 7]);
190
236
  cmd = this.pool.createCommand();
191
- colName = e.nameOf(c(entity));
192
- return [4 /*yield*/, cmd.execute("select 1 \n FROM information_schema.columns \n WHERE table_name=" + cmd.addParameterAndReturnSqlToken((e.entityName).toLocaleLowerCase()) + " and column_name=" + cmd.addParameterAndReturnSqlToken((colName).toLocaleLowerCase()) + this.additionalWhere)];
237
+ colName = e.$dbNameOf(c(entity));
238
+ return [4 /*yield*/, cmd.execute("select 1 \n FROM information_schema.columns \n WHERE table_name=" + cmd.addParameterAndReturnSqlToken((e.$entityName).toLocaleLowerCase()) + " and column_name=" + cmd.addParameterAndReturnSqlToken((colName).toLocaleLowerCase()) + this.additionalWhere)];
193
239
  case 3:
194
240
  if (!((_a.sent()).rows.length == 0)) return [3 /*break*/, 5];
195
- sql = "alter table " + e.entityName + " add column " + postgresColumnSyntax(c(entity), colName);
196
- //console.log(sql);
241
+ sql = "alter table " + e.$entityName + " add column " + postgresColumnSyntax(c(entity), colName);
242
+ if (PostgresSchemaBuilder.logToConsole)
243
+ console.info(sql);
197
244
  return [4 /*yield*/, this.pool.execute(sql)];
198
245
  case 4:
199
- //console.log(sql);
200
246
  _a.sent();
201
247
  _a.label = 5;
202
248
  case 5: return [3 /*break*/, 7];
203
249
  case 6:
204
250
  err_2 = _a.sent();
205
- console.log(err_2);
251
+ console.error(err_2);
206
252
  return [3 /*break*/, 7];
207
253
  case 7: return [2 /*return*/];
208
254
  }
@@ -211,17 +257,17 @@ var PostgresSchemaBuilder = /** @class */ (function () {
211
257
  };
212
258
  PostgresSchemaBuilder.prototype.verifyAllColumns = function (entity) {
213
259
  return tslib_1.__awaiter(this, void 0, void 0, function () {
214
- var cmd, e, cols, _a, _b, col, sql, e_3_1, err_3;
215
- var e_3, _c;
260
+ var cmd, e, cols, _a, _b, col, sql, e_4_1, err_3;
261
+ var e_4, _c;
216
262
  return tslib_1.__generator(this, function (_d) {
217
263
  switch (_d.label) {
218
264
  case 0:
219
265
  _d.trys.push([0, 11, , 12]);
220
266
  cmd = this.pool.createCommand();
221
- return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.getDbNameProvider(entity)];
267
+ return [4 /*yield*/, filter_consumer_bridge_to_sql_request_1.dbNamesOf(entity)];
222
268
  case 1:
223
269
  e = _d.sent();
224
- return [4 /*yield*/, cmd.execute("select column_name \n FROM information_schema.columns \n WHERE table_name=" + cmd.addParameterAndReturnSqlToken((e.entityName).toLocaleLowerCase()) + " " + this.additionalWhere)];
270
+ return [4 /*yield*/, cmd.execute("select column_name \n FROM information_schema.columns \n WHERE table_name=" + cmd.addParameterAndReturnSqlToken((e.$entityName).toLocaleLowerCase()) + " " + this.additionalWhere)];
225
271
  case 2:
226
272
  cols = (_d.sent()).rows.map(function (x) { return x.column_name; });
227
273
  _d.label = 3;
@@ -232,13 +278,13 @@ var PostgresSchemaBuilder = /** @class */ (function () {
232
278
  case 4:
233
279
  if (!!_b.done) return [3 /*break*/, 7];
234
280
  col = _b.value;
235
- if (!!e.isDbReadonly(col)) return [3 /*break*/, 6];
236
- if (!!cols.includes(e.nameOf(col).toLocaleLowerCase())) return [3 /*break*/, 6];
237
- sql = "alter table " + e.entityName + " add column " + postgresColumnSyntax(col, e.nameOf(col));
238
- //console.log(sql);
281
+ if (!!filter_consumer_bridge_to_sql_request_1.isDbReadonly(col, e)) return [3 /*break*/, 6];
282
+ if (!!cols.includes(e.$dbNameOf(col).toLocaleLowerCase())) return [3 /*break*/, 6];
283
+ sql = "alter table " + e.$entityName + " add column " + postgresColumnSyntax(col, e.$dbNameOf(col));
284
+ if (PostgresSchemaBuilder.logToConsole)
285
+ console.info(sql);
239
286
  return [4 /*yield*/, this.pool.execute(sql)];
240
287
  case 5:
241
- //console.log(sql);
242
288
  _d.sent();
243
289
  _d.label = 6;
244
290
  case 6:
@@ -246,25 +292,27 @@ var PostgresSchemaBuilder = /** @class */ (function () {
246
292
  return [3 /*break*/, 4];
247
293
  case 7: return [3 /*break*/, 10];
248
294
  case 8:
249
- e_3_1 = _d.sent();
250
- e_3 = { error: e_3_1 };
295
+ e_4_1 = _d.sent();
296
+ e_4 = { error: e_4_1 };
251
297
  return [3 /*break*/, 10];
252
298
  case 9:
253
299
  try {
254
300
  if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
255
301
  }
256
- finally { if (e_3) throw e_3.error; }
302
+ finally { if (e_4) throw e_4.error; }
257
303
  return [7 /*endfinally*/];
258
304
  case 10: return [3 /*break*/, 12];
259
305
  case 11:
260
306
  err_3 = _d.sent();
261
- console.log(err_3);
307
+ console.error(err_3);
262
308
  return [3 /*break*/, 12];
263
309
  case 12: return [2 /*return*/];
264
310
  }
265
311
  });
266
312
  });
267
313
  };
314
+ //@internal
315
+ PostgresSchemaBuilder.logToConsole = true;
268
316
  return PostgresSchemaBuilder;
269
317
  }());
270
318
  exports.PostgresSchemaBuilder = PostgresSchemaBuilder;
package/remult-express.js CHANGED
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.remultExpress = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var express = require("express");
5
+ var express = tslib_1.__importStar(require("express"));
6
6
  var index_1 = require("./server/index");
7
7
  function remultExpress(options) {
8
8
  var app = express.Router();
@@ -1,46 +1,24 @@
1
- import { Knex } from 'knex';
2
- import { Filter, FilterConsumer } from "../src/filter/filter-interfaces";
3
- import { dbNameProvider } from "../src/filter/filter-consumer-bridge-to-sql-request";
1
+ import type { Knex } from 'knex';
4
2
  import { Remult } from "../src/context";
5
- import { EntityFilter, EntityMetadata } from "../src/remult3";
3
+ import { EntityFilter, EntityMetadata, RepositoryOverloads } from "../src/remult3";
6
4
  import { DataProvider, EntityDataProvider } from '../src/data-interfaces';
7
5
  import { FieldMetadata } from '../src/column-interfaces';
8
6
  export declare class KnexDataProvider implements DataProvider {
9
7
  knex: Knex;
10
8
  constructor(knex: Knex);
9
+ static getDb(remult?: Remult): Knex<any, any[]>;
11
10
  getEntityDataProvider(entity: EntityMetadata<any>): EntityDataProvider;
12
11
  transaction(action: (dataProvider: DataProvider) => Promise<void>): Promise<void>;
13
- static customFilter(build: CustomKnexFilterBuilderFunction): EntityFilter<any>;
14
- supportsCustomFilter?: boolean;
12
+ static rawFilter(build: CustomKnexFilterBuilderFunction): EntityFilter<any>;
13
+ static filterToRaw<entityType>(entity: RepositoryOverloads<entityType>, condition: EntityFilter<entityType>): Promise<(knex: any) => void>;
14
+ supportsRawFilter?: boolean;
15
+ ensureSchema(entities: EntityMetadata<any>[]): Promise<void>;
15
16
  }
16
17
  export declare type CustomKnexFilterBuilderFunction = () => Promise<(builder: Knex.QueryBuilder) => void>;
17
- export declare class FilterConsumerBridgeToKnexRequest implements FilterConsumer {
18
- private nameProvider;
19
- _addWhere: boolean;
20
- promises: Promise<void>[];
21
- result: ((builder: Knex.QueryBuilder) => void)[];
22
- resolveWhere(): Promise<((builder: Knex.QueryBuilder<any, any>) => void)[]>;
23
- constructor(nameProvider: dbNameProvider);
24
- custom(key: string, customItem: any): void;
25
- or(orElements: Filter[]): void;
26
- isNull(col: FieldMetadata): void;
27
- isNotNull(col: FieldMetadata): void;
28
- isIn(col: FieldMetadata, val: any[]): void;
29
- isEqualTo(col: FieldMetadata, val: any): void;
30
- isDifferentFrom(col: FieldMetadata, val: any): void;
31
- isGreaterOrEqualTo(col: FieldMetadata, val: any): void;
32
- isGreaterThan(col: FieldMetadata, val: any): void;
33
- isLessOrEqualTo(col: FieldMetadata, val: any): void;
34
- isLessThan(col: FieldMetadata, val: any): void;
35
- containsCaseInsensitive(col: FieldMetadata, val: any): void;
36
- private add;
37
- databaseCustom(databaseCustom: {
38
- buildKnex: CustomKnexFilterBuilderFunction;
39
- }): void;
40
- }
41
18
  export declare class KnexSchemaBuilder {
42
19
  private knex;
43
- verifyStructureOfAllEntities(remult: Remult): Promise<void>;
20
+ verifyStructureOfAllEntities(remult?: Remult): Promise<void>;
21
+ ensureSchema(entities: EntityMetadata<any>[]): Promise<void>;
44
22
  createIfNotExist(entity: EntityMetadata): Promise<void>;
45
23
  addColumnIfNotExist<T extends EntityMetadata>(entity: T, c: ((e: T) => FieldMetadata)): Promise<void>;
46
24
  verifyAllColumns<T extends EntityMetadata>(entity: T): Promise<void>;
@@ -48,4 +26,4 @@ export declare class KnexSchemaBuilder {
48
26
  constructor(knex: Knex);
49
27
  }
50
28
  export declare function buildColumn(x: FieldMetadata, dbName: string, b: Knex.CreateTableBuilder): void;
51
- export declare function createKnexDataProvider(config: Knex.Config, autoCreateTables?: boolean): Promise<KnexDataProvider>;
29
+ export declare function createKnexDataProvider(config: Knex.Config): Promise<KnexDataProvider>;