@saltcorn/data 1.3.1 → 1.4.0-beta.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.
- package/dist/base-plugin/index.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.js +15 -4
- package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.js +3 -1
- package/dist/base-plugin/viewtemplates/list.js.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.js +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
- package/dist/models/internal/query.d.ts +1 -0
- package/dist/models/internal/query.d.ts.map +1 -1
- package/dist/models/internal/query.js +70 -2
- package/dist/models/internal/query.js.map +1 -1
- package/dist/models/table.d.ts +2 -1
- package/dist/models/table.d.ts.map +1 -1
- package/dist/models/table.js +26 -70
- package/dist/models/table.js.map +1 -1
- package/dist/plugin-helper.d.ts.map +1 -1
- package/dist/plugin-helper.js +59 -5
- package/dist/plugin-helper.js.map +1 -1
- package/dist/tests/composite_pk.test.d.ts +2 -0
- package/dist/tests/composite_pk.test.d.ts.map +1 -0
- package/dist/tests/composite_pk.test.js +98 -0
- package/dist/tests/composite_pk.test.js.map +1 -0
- package/package.json +8 -8
|
@@ -0,0 +1,98 @@
|
|
|
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
|
+
const table_1 = __importDefault(require("../models/table"));
|
|
7
|
+
const db_1 = __importDefault(require("../db"));
|
|
8
|
+
const { getState } = require("../db/state");
|
|
9
|
+
getState().registerPlugin("base", require("../base-plugin"));
|
|
10
|
+
const discovery_1 = __importDefault(require("../models/discovery"));
|
|
11
|
+
const { discoverable_tables, discover_tables, implement_discovery } = discovery_1.default;
|
|
12
|
+
const mocks_1 = __importDefault(require("./mocks"));
|
|
13
|
+
const { rick_file, plugin_with_routes, mockReqRes, createDefaultView } = mocks_1.default;
|
|
14
|
+
const assertions_1 = require("./assertions");
|
|
15
|
+
const globals_1 = require("@jest/globals");
|
|
16
|
+
const expression_1 = __importDefault(require("../models/expression"));
|
|
17
|
+
const { freeVariables, jsexprToWhere, add_free_variables_to_aggregations } = expression_1.default;
|
|
18
|
+
(0, globals_1.afterAll)(db_1.default.close);
|
|
19
|
+
(0, globals_1.beforeAll)(async () => {
|
|
20
|
+
await require("../db/reset_schema")();
|
|
21
|
+
await require("../db/fixtures")();
|
|
22
|
+
if (!db_1.default.isSQLite) {
|
|
23
|
+
await db_1.default.query(`create table tstcomppk ( name text, age int, address text, primary key(name,age));`);
|
|
24
|
+
const pack = await discover_tables(["tstcomppk"]);
|
|
25
|
+
await implement_discovery(pack);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
jest.setTimeout(30000);
|
|
29
|
+
(0, globals_1.describe)("Composite PK table properties", () => {
|
|
30
|
+
if (!db_1.default.isSQLite) {
|
|
31
|
+
(0, globals_1.it)("should store attributes", async () => {
|
|
32
|
+
const tc = table_1.default.findOne("tstcomppk");
|
|
33
|
+
(0, assertions_1.assertIsSet)(tc);
|
|
34
|
+
(0, globals_1.expect)(tc.composite_pk_names?.length).toBe(2);
|
|
35
|
+
(0, globals_1.expect)(tc.composite_pk_names).toContain("name");
|
|
36
|
+
(0, globals_1.expect)(tc.composite_pk_names).toContain("age");
|
|
37
|
+
(0, globals_1.expect)(tc.pk_name).toBe("age");
|
|
38
|
+
});
|
|
39
|
+
(0, globals_1.it)("should insert", async () => {
|
|
40
|
+
const tc = table_1.default.findOne("tstcomppk");
|
|
41
|
+
(0, assertions_1.assertIsSet)(tc);
|
|
42
|
+
await tc.insertRow({ name: "Sam", age: 38 });
|
|
43
|
+
const count = await tc.countRows({});
|
|
44
|
+
(0, globals_1.expect)(count).toBe(1);
|
|
45
|
+
const rows = await tc.getRows({ name: "Sam", age: 38 });
|
|
46
|
+
(0, globals_1.expect)(rows.length).toBe(1);
|
|
47
|
+
(0, globals_1.expect)(rows[0].age).toBe(38);
|
|
48
|
+
});
|
|
49
|
+
(0, globals_1.it)("should update", async () => {
|
|
50
|
+
const tc = table_1.default.findOne("tstcomppk");
|
|
51
|
+
(0, assertions_1.assertIsSet)(tc);
|
|
52
|
+
await tc.insertRow({ name: "Alex", age: 38 });
|
|
53
|
+
await tc.updateRow({ name: "Sammy" }, {
|
|
54
|
+
name: "Sam",
|
|
55
|
+
age: 38,
|
|
56
|
+
});
|
|
57
|
+
const rows = await tc.getRows({ age: 38 });
|
|
58
|
+
(0, globals_1.expect)(rows.length).toBe(2);
|
|
59
|
+
const names = rows.map((r) => r.name);
|
|
60
|
+
(0, globals_1.expect)(names).toContain("Alex");
|
|
61
|
+
(0, globals_1.expect)(names).toContain("Sammy");
|
|
62
|
+
});
|
|
63
|
+
(0, globals_1.it)("should delete", async () => {
|
|
64
|
+
const tc = table_1.default.findOne("tstcomppk");
|
|
65
|
+
(0, assertions_1.assertIsSet)(tc);
|
|
66
|
+
await tc.deleteRows({ name: "Sammy", age: 38 });
|
|
67
|
+
const rows = await tc.getRows({ age: 38 });
|
|
68
|
+
(0, globals_1.expect)(rows.length).toBe(1);
|
|
69
|
+
(0, globals_1.expect)(rows[0].name).toBe("Alex");
|
|
70
|
+
});
|
|
71
|
+
(0, globals_1.it)("should create Edit view", async () => {
|
|
72
|
+
const tc = table_1.default.findOne("tstcomppk");
|
|
73
|
+
(0, assertions_1.assertIsSet)(tc);
|
|
74
|
+
const view = await createDefaultView(tc, "Edit", 1);
|
|
75
|
+
(0, globals_1.expect)(view.configuration.columns.length).toBe(3);
|
|
76
|
+
await view.runPost({}, { name: "Fred", age: 10, address: "29 Park Road" }, mockReqRes);
|
|
77
|
+
await view.runPost({}, { name: "Peter", age: 10, address: "4 Beach Road" }, mockReqRes);
|
|
78
|
+
const rows0 = await tc.getRows({ name: "Peter" });
|
|
79
|
+
(0, globals_1.expect)(rows0.length).toBe(1);
|
|
80
|
+
(0, globals_1.expect)(rows0[0].address).toBe("4 Beach Road");
|
|
81
|
+
const rows = await tc.getRows({ name: "Fred" });
|
|
82
|
+
(0, globals_1.expect)(rows.length).toBe(1);
|
|
83
|
+
(0, globals_1.expect)(rows[0].address).toBe("29 Park Road");
|
|
84
|
+
await view.runPost({}, { name: "Fred", age: 10, address: "25 Park Road" }, mockReqRes);
|
|
85
|
+
const rows1 = await tc.getRows({ name: "Fred" });
|
|
86
|
+
(0, globals_1.expect)(rows1.length).toBe(1);
|
|
87
|
+
(0, globals_1.expect)(rows1[0].address).toBe("25 Park Road");
|
|
88
|
+
const rows2 = await tc.getRows({ name: "Peter" });
|
|
89
|
+
(0, globals_1.expect)(rows2.length).toBe(1);
|
|
90
|
+
(0, globals_1.expect)(rows2[0].address).toBe("4 Beach Road");
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
else
|
|
94
|
+
(0, globals_1.it)("should add 2 and 2", async () => {
|
|
95
|
+
(0, globals_1.expect)(2 + 2).toBe(4);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=composite_pk.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"composite_pk.test.js","sourceRoot":"","sources":["../../tests/composite_pk.test.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAIpC,+CAAuB;AACvB,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5C,QAAQ,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAC7D,oEAA4C;AAC5C,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,mBAAS,CAAC;AAEhF,oDAA4B;AAC5B,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,iBAAiB,EAAE,GAAG,eAAK,CAAC;AAC/E,6CAKsB;AACtB,2CAA0E;AAM1E,sEAAoD;AASpD,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,kCAAkC,EAAE,GACxE,oBAAgB,CAAC;AAEnB,IAAA,kBAAQ,EAAC,YAAE,CAAC,KAAK,CAAC,CAAC;AACnB,IAAA,mBAAS,EAAC,KAAK,IAAI,EAAE;IACnB,MAAM,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;IACtC,MAAM,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAClC,IAAI,CAAC,YAAE,CAAC,QAAQ,EAAE,CAAC;QACjB,MAAM,YAAE,CAAC,KAAK,CACZ,oFAAoF,CACrF,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QAClD,MAAM,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;AACH,CAAC,CAAC,CAAC;AACH,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AAEvB,IAAA,kBAAQ,EAAC,+BAA+B,EAAE,GAAG,EAAE;IAC7C,IAAI,CAAC,YAAE,CAAC,QAAQ,EAAE,CAAC;QACjB,IAAA,YAAE,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,IAAA,wBAAW,EAAC,EAAE,CAAC,CAAC;YAChB,IAAA,gBAAM,EAAC,EAAE,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAA,gBAAM,EAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChD,IAAA,gBAAM,EAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC/C,IAAA,gBAAM,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,IAAA,YAAE,EAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,IAAA,wBAAW,EAAC,EAAE,CAAC,CAAC;YAChB,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACrC,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YACxD,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QACH,IAAA,YAAE,EAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,IAAA,wBAAW,EAAC,EAAE,CAAC,CAAC;YAChB,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC9C,MAAM,EAAE,CAAC,SAAS,CAChB,EAAE,IAAI,EAAE,OAAO,EAAE,EACjB;gBACE,IAAI,EAAE,KAAK;gBACX,GAAG,EAAE,EAAE;aACR,CACF,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACtC,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAChC,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,IAAA,YAAE,EAAC,eAAe,EAAE,KAAK,IAAI,EAAE;YAC7B,MAAM,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,IAAA,wBAAW,EAAC,EAAE,CAAC,CAAC;YAChB,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAEhD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,IAAA,YAAE,EAAC,yBAAyB,EAAE,KAAK,IAAI,EAAE;YACvC,MAAM,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YACtC,IAAA,wBAAW,EAAC,EAAE,CAAC,CAAC;YAChB,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YACpD,IAAA,gBAAM,EAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,OAAO,CAChB,EAAE,EACF,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAClD,UAAU,CACX,CAAC;YACF,MAAM,IAAI,CAAC,OAAO,CAChB,EAAE,EACF,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EACnD,UAAU,CACX,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAClD,IAAA,gBAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE9C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YAChD,IAAA,gBAAM,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAA,gBAAM,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7C,MAAM,IAAI,CAAC,OAAO,CAChB,EAAE,EACF,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAClD,UAAU,CACX,CAAC;YACF,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACjD,IAAA,gBAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAClD,IAAA,gBAAM,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAA,gBAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC;;QACC,IAAA,YAAE,EAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAClC,IAAA,gBAAM,EAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@saltcorn/data",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0-beta.0",
|
|
4
4
|
"description": "Data models for Saltcorn, open-source no-code platform",
|
|
5
5
|
"homepage": "https://saltcorn.com",
|
|
6
6
|
"scripts": {
|
|
@@ -37,15 +37,15 @@
|
|
|
37
37
|
"!dist/tsconfig.ref.tsbuildinfo"
|
|
38
38
|
],
|
|
39
39
|
"optionalDependencies": {
|
|
40
|
-
"@saltcorn/postgres": "1.
|
|
41
|
-
"@saltcorn/sqlite": "1.
|
|
40
|
+
"@saltcorn/postgres": "1.4.0-beta.0",
|
|
41
|
+
"@saltcorn/sqlite": "1.4.0-beta.0"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@saltcorn/types": "1.
|
|
45
|
-
"@saltcorn/markup": "1.
|
|
46
|
-
"@saltcorn/common-code": "1.
|
|
47
|
-
"@saltcorn/db-common": "1.
|
|
48
|
-
"@saltcorn/sqlite-mobile": "1.
|
|
44
|
+
"@saltcorn/types": "1.4.0-beta.0",
|
|
45
|
+
"@saltcorn/markup": "1.4.0-beta.0",
|
|
46
|
+
"@saltcorn/common-code": "1.4.0-beta.0",
|
|
47
|
+
"@saltcorn/db-common": "1.4.0-beta.0",
|
|
48
|
+
"@saltcorn/sqlite-mobile": "1.4.0-beta.0",
|
|
49
49
|
"@saltcorn/plain-date": "0.2.0",
|
|
50
50
|
"acorn": "^8.14.0",
|
|
51
51
|
"assert": "^2.1.0",
|