remult 0.11.2 → 0.12.2
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.
- package/index.d.ts +1 -1
- package/index.js +2 -1
- package/package.json +1 -1
- package/remult-knex/index.js +8 -3
- package/src/remult3/RepositoryImplementation.d.ts +4 -0
- package/src/remult3/RepositoryImplementation.js +15 -1
- package/src/shared-tests/db-tests.db-tests.js +61 -0
- package/src/shared-tests/test-custom-id-column.spec.js +4 -3
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { Field, UuidField, FieldsMetadata, Entity, EntityBase, ControllerBase, FieldRef, IdFieldRef, Fields, EntityMetadata, EntityOrderBy, EntityFilter, FindOptions, QueryResult, QueryOptions, Repository, FieldType, FindFirstOptions, ComparisonValueFilter, ValueFilter, IdFilter, ContainsStringValueFilter, getFields, EntityRef, getEntityRef, SortSegments, ValueListFieldType, DateOnlyField, JsonField, IntegerField, OmitEB, Paginator, CaptionTransformer } from './src/remult3';
|
|
1
|
+
export { Field, UuidField, FieldsMetadata, Entity, BuildEntity, EntityBase, ControllerBase, FieldRef, IdFieldRef, Fields, EntityMetadata, EntityOrderBy, EntityFilter, FindOptions, QueryResult, QueryOptions, Repository, FieldType, FindFirstOptions, ComparisonValueFilter, ValueFilter, IdFilter, ContainsStringValueFilter, getFields, EntityRef, getEntityRef, SortSegments, ValueListFieldType, DateOnlyField, JsonField, IntegerField, OmitEB, Paginator, CaptionTransformer } from './src/remult3';
|
|
2
2
|
export { EntityOptions } from './src/entity';
|
|
3
3
|
export { DataProvider, EntityDataProvider, EntityDataProviderFindOptions, ErrorInfo, RestDataProviderHttpProvider } from './src/data-interfaces';
|
|
4
4
|
export { SqlCommand, SqlImplementation, SqlResult } from './src/sql-command';
|
package/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Validators = exports.UrlBuilder = exports.FilterConsumerBridgeToSqlRequest = exports.Filter = exports.CompoundIdField = exports.OneToMany = exports.Sort = exports.IdEntity = exports.EventSource = exports.isBackend = exports.Remult = exports.Allow = exports.ProgressListener = exports.BackendMethod = exports.Controller = exports.JsonDataProvider = exports.SqlDatabase = exports.WebSqlDataProvider = exports.ArrayEntityDataProvider = exports.InMemoryDataProvider = exports.RestDataProvider = exports.CaptionTransformer = exports.IntegerField = exports.JsonField = exports.DateOnlyField = exports.ValueListFieldType = exports.getEntityRef = exports.getFields = exports.FieldType = exports.ControllerBase = exports.EntityBase = exports.Entity = exports.UuidField = exports.Field = void 0;
|
|
3
|
+
exports.Validators = exports.UrlBuilder = exports.FilterConsumerBridgeToSqlRequest = exports.Filter = exports.CompoundIdField = exports.OneToMany = exports.Sort = exports.IdEntity = exports.EventSource = exports.isBackend = exports.Remult = exports.Allow = exports.ProgressListener = exports.BackendMethod = exports.Controller = exports.JsonDataProvider = exports.SqlDatabase = exports.WebSqlDataProvider = exports.ArrayEntityDataProvider = exports.InMemoryDataProvider = exports.RestDataProvider = exports.CaptionTransformer = exports.IntegerField = exports.JsonField = exports.DateOnlyField = exports.ValueListFieldType = exports.getEntityRef = exports.getFields = exports.FieldType = exports.ControllerBase = exports.EntityBase = exports.BuildEntity = exports.Entity = exports.UuidField = exports.Field = void 0;
|
|
4
4
|
/*
|
|
5
5
|
* Public API Surface of remult
|
|
6
6
|
*/
|
|
@@ -8,6 +8,7 @@ var remult3_1 = require("./src/remult3");
|
|
|
8
8
|
Object.defineProperty(exports, "Field", { enumerable: true, get: function () { return remult3_1.Field; } });
|
|
9
9
|
Object.defineProperty(exports, "UuidField", { enumerable: true, get: function () { return remult3_1.UuidField; } });
|
|
10
10
|
Object.defineProperty(exports, "Entity", { enumerable: true, get: function () { return remult3_1.Entity; } });
|
|
11
|
+
Object.defineProperty(exports, "BuildEntity", { enumerable: true, get: function () { return remult3_1.BuildEntity; } });
|
|
11
12
|
Object.defineProperty(exports, "EntityBase", { enumerable: true, get: function () { return remult3_1.EntityBase; } });
|
|
12
13
|
Object.defineProperty(exports, "ControllerBase", { enumerable: true, get: function () { return remult3_1.ControllerBase; } });
|
|
13
14
|
Object.defineProperty(exports, "FieldType", { enumerable: true, get: function () { return remult3_1.FieldType; } });
|
package/package.json
CHANGED
package/remult-knex/index.js
CHANGED
|
@@ -366,11 +366,12 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
366
366
|
var _this = this;
|
|
367
367
|
var statement = '';
|
|
368
368
|
this.promises.push((function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
369
|
-
var _loop_1, this_1, orElements_1, orElements_1_1, element, e_5_1;
|
|
369
|
+
var result, _loop_1, this_1, orElements_1, orElements_1_1, element, e_5_1;
|
|
370
370
|
var e_5, _a;
|
|
371
371
|
return tslib_1.__generator(this, function (_b) {
|
|
372
372
|
switch (_b.label) {
|
|
373
373
|
case 0:
|
|
374
|
+
result = [];
|
|
374
375
|
_loop_1 = function (element) {
|
|
375
376
|
var f, where;
|
|
376
377
|
return tslib_1.__generator(this, function (_a) {
|
|
@@ -383,7 +384,7 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
383
384
|
case 1:
|
|
384
385
|
where = _a.sent();
|
|
385
386
|
if (where.length > 0) {
|
|
386
|
-
|
|
387
|
+
result.push(function (b) {
|
|
387
388
|
b.orWhere(function (b) {
|
|
388
389
|
where.forEach(function (x) { return x(b); });
|
|
389
390
|
});
|
|
@@ -420,7 +421,11 @@ var FilterConsumerBridgeToKnexRequest = /** @class */ (function () {
|
|
|
420
421
|
}
|
|
421
422
|
finally { if (e_5) throw e_5.error; }
|
|
422
423
|
return [7 /*endfinally*/];
|
|
423
|
-
case 8:
|
|
424
|
+
case 8:
|
|
425
|
+
if (result.length > 0) {
|
|
426
|
+
this.result.push(function (b) { return b.where(function (x) { return result.find(function (y) { return y(x); }); }); });
|
|
427
|
+
}
|
|
428
|
+
return [2 /*return*/];
|
|
424
429
|
}
|
|
425
430
|
});
|
|
426
431
|
}); })());
|
|
@@ -218,6 +218,10 @@ interface columnInfo {
|
|
|
218
218
|
key: string;
|
|
219
219
|
settings: (remult: Remult) => FieldOptions;
|
|
220
220
|
}
|
|
221
|
+
export declare type BuildEntityFields<entityType> = {
|
|
222
|
+
[Properties in keyof Partial<OmitEB<entityType>>]: any;
|
|
223
|
+
};
|
|
224
|
+
export declare function BuildEntity<entityType>(c: ClassType<entityType>, key: string, fields: BuildEntityFields<entityType>, ...options: (EntityOptions<entityType> | ((options: EntityOptions<entityType>, remult: Remult) => void))[]): void;
|
|
221
225
|
export declare function Entity<entityType>(key: string, ...options: (EntityOptions<entityType> | ((options: EntityOptions<entityType>, remult: Remult) => void))[]): (target: any) => any;
|
|
222
226
|
export declare class EntityBase {
|
|
223
227
|
get _(): EntityRef<this>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ControllerBase = exports.EntityBase = exports.Entity = exports.decorateColumnSettings = exports.Field = exports.UuidField = exports.ValueListFieldType = exports.IntegerField = exports.DateOnlyField = exports.JsonField = exports.FieldType = exports.columnDefsImpl = exports.buildCaption = exports.CaptionTransformer = exports.getEntityRef = exports.FieldRefImplementation = exports.controllerRefImpl = exports.getControllerRef = exports.getFields = exports.rowHelperImplementation = exports.createOldEntity = exports.columnsOfType = exports.getEntityKey = exports.getEntitySettings = exports.entityInfo_key = exports.entityInfo = exports.__updateEntityBasedOnWhere = exports.RepositoryImplementation = void 0;
|
|
3
|
+
exports.ControllerBase = exports.EntityBase = exports.Entity = exports.BuildEntity = exports.decorateColumnSettings = exports.Field = exports.UuidField = exports.ValueListFieldType = exports.IntegerField = exports.DateOnlyField = exports.JsonField = exports.FieldType = exports.columnDefsImpl = exports.buildCaption = exports.CaptionTransformer = exports.getEntityRef = exports.FieldRefImplementation = exports.controllerRefImpl = exports.getControllerRef = exports.getFields = exports.rowHelperImplementation = exports.createOldEntity = exports.columnsOfType = exports.getEntityKey = exports.getEntitySettings = exports.entityInfo_key = exports.entityInfo = exports.__updateEntityBasedOnWhere = exports.RepositoryImplementation = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var column_1 = require("../column");
|
|
6
6
|
var context_1 = require("../context");
|
|
@@ -2337,6 +2337,20 @@ function decorateColumnSettings(settings, remult) {
|
|
|
2337
2337
|
return settings;
|
|
2338
2338
|
}
|
|
2339
2339
|
exports.decorateColumnSettings = decorateColumnSettings;
|
|
2340
|
+
function BuildEntity(c, key, fields) {
|
|
2341
|
+
var options = [];
|
|
2342
|
+
for (var _i = 3; _i < arguments.length; _i++) {
|
|
2343
|
+
options[_i - 3] = arguments[_i];
|
|
2344
|
+
}
|
|
2345
|
+
Entity.apply(void 0, tslib_1.__spread([key], options))(c);
|
|
2346
|
+
for (var fieldKey in fields) {
|
|
2347
|
+
if (Object.prototype.hasOwnProperty.call(fields, fieldKey)) {
|
|
2348
|
+
var element = fields[fieldKey];
|
|
2349
|
+
element(c.prototype, fieldKey);
|
|
2350
|
+
}
|
|
2351
|
+
}
|
|
2352
|
+
}
|
|
2353
|
+
exports.BuildEntity = BuildEntity;
|
|
2340
2354
|
function Entity(key) {
|
|
2341
2355
|
var options = [];
|
|
2342
2356
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
@@ -1210,6 +1210,67 @@ db_tests_setup_1.testAll("Paging", function (_a) {
|
|
|
1210
1210
|
});
|
|
1211
1211
|
});
|
|
1212
1212
|
}, false);
|
|
1213
|
+
db_tests_setup_1.testAll("filter", function (_a) {
|
|
1214
|
+
var createEntity = _a.createEntity;
|
|
1215
|
+
return tslib_1.__awaiter(void 0, void 0, void 0, function () {
|
|
1216
|
+
var s, _b;
|
|
1217
|
+
return tslib_1.__generator(this, function (_c) {
|
|
1218
|
+
switch (_c.label) {
|
|
1219
|
+
case 0: return [4 /*yield*/, createEntity(testFilter)];
|
|
1220
|
+
case 1:
|
|
1221
|
+
s = _c.sent();
|
|
1222
|
+
return [4 /*yield*/, s.insert({ id: 1, a: 'a', b: 'b', c: 'c' })];
|
|
1223
|
+
case 2:
|
|
1224
|
+
_c.sent();
|
|
1225
|
+
_b = expect;
|
|
1226
|
+
return [4 /*yield*/, s.count({
|
|
1227
|
+
a: 'z',
|
|
1228
|
+
$and: [testFilter.search('')]
|
|
1229
|
+
})];
|
|
1230
|
+
case 3:
|
|
1231
|
+
_b.apply(void 0, [_c.sent()]).toBe(0);
|
|
1232
|
+
return [2 /*return*/];
|
|
1233
|
+
}
|
|
1234
|
+
});
|
|
1235
|
+
});
|
|
1236
|
+
}, false);
|
|
1237
|
+
var testFilter = /** @class */ (function () {
|
|
1238
|
+
function testFilter() {
|
|
1239
|
+
this.id = 0;
|
|
1240
|
+
this.a = '';
|
|
1241
|
+
this.b = '';
|
|
1242
|
+
this.c = '';
|
|
1243
|
+
}
|
|
1244
|
+
testFilter.search = filter_interfaces_1.Filter.createCustom(function (remult, str) { return ({
|
|
1245
|
+
$and: [{
|
|
1246
|
+
$or: [
|
|
1247
|
+
{ a: 'a' },
|
|
1248
|
+
{ b: 'a' },
|
|
1249
|
+
{ c: 'a' }
|
|
1250
|
+
]
|
|
1251
|
+
}]
|
|
1252
|
+
}); });
|
|
1253
|
+
tslib_1.__decorate([
|
|
1254
|
+
remult3_1.Field(),
|
|
1255
|
+
tslib_1.__metadata("design:type", Number)
|
|
1256
|
+
], testFilter.prototype, "id", void 0);
|
|
1257
|
+
tslib_1.__decorate([
|
|
1258
|
+
remult3_1.Field(),
|
|
1259
|
+
tslib_1.__metadata("design:type", String)
|
|
1260
|
+
], testFilter.prototype, "a", void 0);
|
|
1261
|
+
tslib_1.__decorate([
|
|
1262
|
+
remult3_1.Field(),
|
|
1263
|
+
tslib_1.__metadata("design:type", String)
|
|
1264
|
+
], testFilter.prototype, "b", void 0);
|
|
1265
|
+
tslib_1.__decorate([
|
|
1266
|
+
remult3_1.Field(),
|
|
1267
|
+
tslib_1.__metadata("design:type", String)
|
|
1268
|
+
], testFilter.prototype, "c", void 0);
|
|
1269
|
+
testFilter = tslib_1.__decorate([
|
|
1270
|
+
remult3_1.Entity("testfilter", { allowApiCrud: true })
|
|
1271
|
+
], testFilter);
|
|
1272
|
+
return testFilter;
|
|
1273
|
+
}());
|
|
1213
1274
|
var testStringWithNull = /** @class */ (function (_super) {
|
|
1214
1275
|
tslib_1.__extends(testStringWithNull, _super);
|
|
1215
1276
|
function testStringWithNull() {
|
|
@@ -18,9 +18,10 @@ describe("custom id column", function () {
|
|
|
18
18
|
}
|
|
19
19
|
return class_1;
|
|
20
20
|
}(remult3_1.EntityBase));
|
|
21
|
-
remult3_1.
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
remult3_1.BuildEntity(type, 'custom', {
|
|
22
|
+
a: remult3_1.Field(),
|
|
23
|
+
b: remult3_1.Field()
|
|
24
|
+
}, { allowApiCrud: true });
|
|
24
25
|
return [4 /*yield*/, createEntity(type)];
|
|
25
26
|
case 1:
|
|
26
27
|
c = _b.sent();
|