@saltcorn/data 0.6.3 → 0.6.4-beta.4
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/actions.d.ts.map +1 -1
- package/dist/base-plugin/actions.js +1 -1
- package/dist/base-plugin/actions.js.map +1 -1
- package/dist/base-plugin/index.d.ts +31 -5
- package/dist/base-plugin/index.d.ts.map +1 -1
- package/dist/base-plugin/types.d.ts +114 -85
- package/dist/base-plugin/types.d.ts.map +1 -1
- package/dist/base-plugin/types.js +47 -3
- package/dist/base-plugin/types.js.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/edit.js +35 -3
- package/dist/base-plugin/viewtemplates/edit.js.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/filter.js +13 -0
- package/dist/base-plugin/viewtemplates/filter.js.map +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts +1 -1
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/list.js +64 -1
- package/dist/base-plugin/viewtemplates/list.js.map +1 -1
- package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/show.js +7 -6
- package/dist/base-plugin/viewtemplates/show.js.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +13 -0
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -1
- package/dist/base-plugin/viewtemplates/viewable_fields.js +25 -13
- package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -1
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +10 -2
- package/dist/contracts.js.map +1 -1
- package/dist/db/connect.d.ts.map +1 -1
- package/dist/db/connect.js +7 -1
- package/dist/db/connect.js.map +1 -1
- package/dist/db/reset_schema.d.ts.map +1 -1
- package/dist/db/reset_schema.js +21 -19
- package/dist/db/reset_schema.js.map +1 -1
- package/dist/db/state.d.ts +8 -10
- package/dist/db/state.d.ts.map +1 -1
- package/dist/db/state.js +11 -34
- package/dist/db/state.js.map +1 -1
- package/dist/models/backup.d.ts +1 -1
- package/dist/models/backup.js.map +1 -1
- package/dist/models/config.js +2 -2
- package/dist/models/config.js.map +1 -1
- package/dist/models/crash.d.ts +1 -1
- package/dist/models/crash.d.ts.map +1 -1
- package/dist/models/crash.js.map +1 -1
- package/dist/models/discovery.d.ts +17 -25
- package/dist/models/discovery.d.ts.map +1 -1
- package/dist/models/discovery.js +38 -26
- package/dist/models/discovery.js.map +1 -1
- package/dist/models/email.d.ts +1 -1
- package/dist/models/email.d.ts.map +1 -1
- package/dist/models/email.js +11 -8
- package/dist/models/email.js.map +1 -1
- package/dist/models/eventlog.d.ts +1 -1
- package/dist/models/eventlog.d.ts.map +1 -1
- package/dist/models/eventlog.js.map +1 -1
- package/dist/models/expression.d.ts +11 -9
- package/dist/models/expression.d.ts.map +1 -1
- package/dist/models/expression.js +15 -13
- package/dist/models/expression.js.map +1 -1
- package/dist/models/field.d.ts +10 -45
- package/dist/models/field.d.ts.map +1 -1
- package/dist/models/field.js +5 -4
- package/dist/models/field.js.map +1 -1
- package/dist/models/file.d.ts +1 -1
- package/dist/models/file.d.ts.map +1 -1
- package/dist/models/file.js.map +1 -1
- package/dist/models/library.d.ts +1 -1
- package/dist/models/library.d.ts.map +1 -1
- package/dist/models/pack.d.ts +10 -7
- package/dist/models/pack.d.ts.map +1 -1
- package/dist/models/pack.js +0 -4
- package/dist/models/pack.js.map +1 -1
- package/dist/models/page.d.ts +4 -5
- package/dist/models/page.d.ts.map +1 -1
- package/dist/models/plugin.d.ts +4 -4
- package/dist/models/plugin.d.ts.map +1 -1
- package/dist/models/plugin.js +2 -2
- package/dist/models/plugin.js.map +1 -1
- package/dist/models/random.d.ts +18 -21
- package/dist/models/random.d.ts.map +1 -1
- package/dist/models/random.js +31 -29
- package/dist/models/random.js.map +1 -1
- package/dist/models/scheduler.d.ts +1 -7
- package/dist/models/scheduler.d.ts.map +1 -1
- package/dist/models/scheduler.js +1 -2
- package/dist/models/scheduler.js.map +1 -1
- package/dist/models/table.d.ts +8 -8
- package/dist/models/table.d.ts.map +1 -1
- package/dist/models/table.js +15 -6
- package/dist/models/table.js.map +1 -1
- package/dist/models/table_constraints.d.ts +1 -1
- package/dist/models/table_constraints.d.ts.map +1 -1
- package/dist/models/table_constraints.js +4 -1
- package/dist/models/table_constraints.js.map +1 -1
- package/dist/models/tenant.d.ts +16 -60
- package/dist/models/tenant.d.ts.map +1 -1
- package/dist/models/tenant.js +52 -30
- package/dist/models/tenant.js.map +1 -1
- package/dist/models/trigger.d.ts +1 -1
- package/dist/models/trigger.d.ts.map +1 -1
- package/dist/models/trigger.js +1 -1
- package/dist/models/trigger.js.map +1 -1
- package/dist/models/user.d.ts +3 -1
- package/dist/models/user.d.ts.map +1 -1
- package/dist/models/user.js.map +1 -1
- package/dist/models/view.d.ts +3 -2
- package/dist/models/view.d.ts.map +1 -1
- package/dist/models/view.js +1 -3
- package/dist/models/view.js.map +1 -1
- package/dist/models/workflow.d.ts +4 -4
- package/dist/models/workflow.d.ts.map +1 -1
- package/dist/models/workflow.js.map +1 -1
- package/dist/plugin-helper.d.ts.map +1 -1
- package/dist/plugin-helper.js +57 -26
- package/dist/plugin-helper.js.map +1 -1
- package/dist/tests/actions.test.d.ts.map +1 -1
- package/dist/tests/actions.test.js +102 -82
- package/dist/tests/actions.test.js.map +1 -1
- package/dist/tests/assertions.d.ts +13 -0
- package/dist/tests/assertions.d.ts.map +1 -0
- package/dist/tests/assertions.js +35 -0
- package/dist/tests/assertions.js.map +1 -0
- package/dist/tests/auxtest.test.d.ts.map +1 -1
- package/dist/tests/auxtest.test.js +33 -29
- package/dist/tests/auxtest.test.js.map +1 -1
- package/dist/tests/backup.test.d.ts.map +1 -1
- package/dist/tests/backup.test.js +62 -49
- package/dist/tests/backup.test.js.map +1 -1
- package/dist/tests/calc.test.d.ts.map +1 -1
- package/dist/tests/calc.test.js +106 -88
- package/dist/tests/calc.test.js.map +1 -1
- package/dist/tests/config.test.d.ts.map +1 -1
- package/dist/tests/config.test.js +39 -36
- package/dist/tests/config.test.js.map +1 -1
- package/dist/tests/discover.test.d.ts.map +1 -1
- package/dist/tests/discover.test.js +23 -17
- package/dist/tests/discover.test.js.map +1 -1
- package/dist/tests/email.test.d.ts +2 -0
- package/dist/tests/email.test.d.ts.map +1 -0
- package/dist/tests/email.test.js +38 -0
- package/dist/tests/email.test.js.map +1 -0
- package/dist/tests/exact_views.test.d.ts.map +1 -1
- package/dist/tests/exact_views.test.js +65 -24
- package/dist/tests/exact_views.test.js.map +1 -1
- package/dist/tests/field.test.d.ts.map +1 -1
- package/dist/tests/field.test.js +104 -93
- package/dist/tests/field.test.js.map +1 -1
- package/dist/tests/form.test.d.ts.map +1 -1
- package/dist/tests/form.test.js +71 -63
- package/dist/tests/form.test.js.map +1 -1
- package/dist/tests/mocks.d.ts +101 -105
- package/dist/tests/mocks.d.ts.map +1 -1
- package/dist/tests/mocks.js +19 -14
- package/dist/tests/mocks.js.map +1 -1
- package/dist/tests/models.test.d.ts.map +1 -1
- package/dist/tests/models.test.js +95 -80
- package/dist/tests/models.test.js.map +1 -1
- package/dist/tests/pack.test.d.ts.map +1 -1
- package/dist/tests/pack.test.js +54 -47
- package/dist/tests/pack.test.js.map +1 -1
- package/dist/tests/plugin.test.d.ts.map +1 -1
- package/dist/tests/plugin.test.js +31 -24
- package/dist/tests/plugin.test.js.map +1 -1
- package/dist/tests/random.test.d.ts.map +1 -1
- package/dist/tests/random.test.js +61 -50
- package/dist/tests/random.test.js.map +1 -1
- package/dist/tests/table.test.d.ts.map +1 -1
- package/dist/tests/table.test.js +539 -449
- package/dist/tests/table.test.js.map +1 -1
- package/dist/tests/tenant.test.d.ts.map +1 -1
- package/dist/tests/tenant.test.js +30 -23
- package/dist/tests/tenant.test.js.map +1 -1
- package/dist/tests/user.test.d.ts.map +1 -1
- package/dist/tests/user.test.js +128 -100
- package/dist/tests/user.test.js.map +1 -1
- package/dist/tests/view.test.d.ts.map +1 -1
- package/dist/tests/view.test.js +109 -85
- package/dist/tests/view.test.js.map +1 -1
- package/dist/tests/workflow.test.d.ts.map +1 -1
- package/dist/tests/workflow.test.js +40 -29
- package/dist/tests/workflow.test.js.map +1 -1
- package/dist/tsconfig.ref.tsbuildinfo +1 -1
- package/dist/utils.d.ts +29 -20
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +20 -5
- package/dist/utils.js.map +1 -1
- package/package.json +20 -16
package/dist/models/discovery.js
CHANGED
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
* @module models/discovery
|
|
6
6
|
* @subcategory models
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
const db_1 = __importDefault(require("../db"));
|
|
12
|
+
const state_1 = __importDefault(require("../db/state"));
|
|
13
|
+
const { getState } = state_1.default;
|
|
14
|
+
const table_1 = __importDefault(require("./table"));
|
|
12
15
|
// create table discmetable(id serial primary key, name text, age integer not null); ALTER TABLE discmetable OWNER TO tomn;
|
|
13
16
|
/**
|
|
14
17
|
* List of discoverable tables.
|
|
@@ -18,9 +21,9 @@ const Table = require("./table");
|
|
|
18
21
|
* @returns {Promise<object[]>} all tables that can be imported to Saltcorn from current tenant database schema
|
|
19
22
|
*/
|
|
20
23
|
const discoverable_tables = async (schema0) => {
|
|
21
|
-
const schema = schema0 ||
|
|
22
|
-
const { rows
|
|
23
|
-
const myTables = await
|
|
24
|
+
const schema = schema0 || db_1.default.getTenantSchema();
|
|
25
|
+
const { rows } = await db_1.default.query("select * from information_schema.tables where table_schema=$1 order by table_name", [schema]);
|
|
26
|
+
const myTables = await table_1.default.find({});
|
|
24
27
|
const myTableNames = myTables.map((t) => t.name);
|
|
25
28
|
const discoverable = rows.filter((t) => !(myTableNames.includes(t.table_name) || t.table_name.startsWith("_sc_")));
|
|
26
29
|
return discoverable;
|
|
@@ -31,8 +34,8 @@ const discoverable_tables = async (schema0) => {
|
|
|
31
34
|
* @returns {Promise<object[]>} Return list of views
|
|
32
35
|
*/
|
|
33
36
|
const get_existing_views = async (schema0) => {
|
|
34
|
-
const schema = schema0 ||
|
|
35
|
-
const { rows
|
|
37
|
+
const schema = schema0 || db_1.default.getTenantSchema();
|
|
38
|
+
const { rows } = await db_1.default.query("select * from information_schema.views where table_schema=$1", [schema]);
|
|
36
39
|
return rows;
|
|
37
40
|
};
|
|
38
41
|
/**
|
|
@@ -49,7 +52,7 @@ const findType = (sql_name) => {
|
|
|
49
52
|
character: "String",
|
|
50
53
|
"character varying": "String",
|
|
51
54
|
//varchar: "String",
|
|
52
|
-
date: "Date"
|
|
55
|
+
date: "Date",
|
|
53
56
|
// TBD Implement time type in Saltcorn
|
|
54
57
|
// "time without time zone": "Date",
|
|
55
58
|
// TBD Implement timestamp type in Saltcorn
|
|
@@ -71,10 +74,10 @@ const findType = (sql_name) => {
|
|
|
71
74
|
* @returns {Promise<object>}
|
|
72
75
|
*/
|
|
73
76
|
const discover_tables = async (tableNames, schema0) => {
|
|
74
|
-
const schema = schema0 ||
|
|
75
|
-
const packTables =
|
|
77
|
+
const schema = schema0 || db_1.default.getTenantSchema();
|
|
78
|
+
const packTables = new Array();
|
|
76
79
|
for (const tnm of tableNames) {
|
|
77
|
-
const { rows
|
|
80
|
+
const { rows } = await db_1.default.query("select * from information_schema.columns where table_schema=$1 and table_name=$2", [schema, tnm]);
|
|
78
81
|
// TBD add logic about column length, scale, etc
|
|
79
82
|
const fields = rows
|
|
80
83
|
.map((c) => ({
|
|
@@ -85,7 +88,7 @@ const discover_tables = async (tableNames, schema0) => {
|
|
|
85
88
|
}))
|
|
86
89
|
.filter((f) => f.type);
|
|
87
90
|
// try to find column name for primary key of table
|
|
88
|
-
const pkq = await
|
|
91
|
+
const pkq = await db_1.default.query(`SELECT c.column_name
|
|
89
92
|
FROM information_schema.table_constraints tc
|
|
90
93
|
JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)
|
|
91
94
|
JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema
|
|
@@ -98,7 +101,7 @@ const discover_tables = async (tableNames, schema0) => {
|
|
|
98
101
|
field.is_unique = true;
|
|
99
102
|
});
|
|
100
103
|
// try to find foreign keys
|
|
101
|
-
const fkq = await
|
|
104
|
+
const fkq = await db_1.default.query(`SELECT
|
|
102
105
|
tc.table_schema,
|
|
103
106
|
tc.constraint_name,
|
|
104
107
|
tc.table_name,
|
|
@@ -116,7 +119,7 @@ const discover_tables = async (tableNames, schema0) => {
|
|
|
116
119
|
AND ccu.table_schema = tc.table_schema
|
|
117
120
|
WHERE tc.constraint_type = 'FOREIGN KEY' and tc.table_schema=$1 AND tc.table_name=$2;`, [schema, tnm]);
|
|
118
121
|
// construct foreign key relations
|
|
119
|
-
fkq.rows.forEach(({ column_name, foreign_table_name, foreign_column_name }) => {
|
|
122
|
+
fkq.rows.forEach(({ column_name, foreign_table_name, foreign_column_name, }) => {
|
|
120
123
|
const field = fields.find((f) => f.name === column_name);
|
|
121
124
|
field.type = "Key";
|
|
122
125
|
field.reftable_name = foreign_table_name;
|
|
@@ -125,13 +128,20 @@ const discover_tables = async (tableNames, schema0) => {
|
|
|
125
128
|
packTables.push({ name: tnm, fields, min_role_read: 1, min_role_write: 1 });
|
|
126
129
|
}
|
|
127
130
|
packTables.forEach((t) => {
|
|
128
|
-
t.fields
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
t.fields &&
|
|
132
|
+
t.fields.forEach((f) => {
|
|
133
|
+
if (f.type === "Key") {
|
|
134
|
+
const reftable = packTables.find((reft) => reft.name === f.reftable_name);
|
|
135
|
+
if (!reftable)
|
|
136
|
+
throw new Error(`Unable to find table '${f.reftable_name}'`);
|
|
137
|
+
if (!reftable.fields)
|
|
138
|
+
throw new Error(`The table '${f.reftable_name}' has no fields`);
|
|
139
|
+
const refpk = reftable.fields.find((rtf) => rtf.primary_key);
|
|
140
|
+
if (!refpk)
|
|
141
|
+
throw new Error(`The table '${f.reftable_name}' has no primary key`);
|
|
142
|
+
f.reftype = refpk.type;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
135
145
|
});
|
|
136
146
|
return { tables: packTables };
|
|
137
147
|
};
|
|
@@ -143,12 +153,14 @@ const discover_tables = async (tableNames, schema0) => {
|
|
|
143
153
|
const implement_discovery = async (pack) => {
|
|
144
154
|
for (const table of pack.tables) {
|
|
145
155
|
const { fields, ...tblRow } = table;
|
|
146
|
-
const id = await
|
|
156
|
+
const id = await db_1.default.insert("_sc_tables", tblRow);
|
|
147
157
|
table.id = id;
|
|
148
158
|
}
|
|
149
159
|
for (const table of pack.tables) {
|
|
150
|
-
|
|
151
|
-
|
|
160
|
+
if (table.fields) {
|
|
161
|
+
for (const field of table.fields) {
|
|
162
|
+
await db_1.default.insert("_sc_fields", { ...field, table_id: table.id });
|
|
163
|
+
}
|
|
152
164
|
}
|
|
153
165
|
}
|
|
154
166
|
// refresh Saltcorn table list (in memory)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../models/discovery.
|
|
1
|
+
{"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../models/discovery.ts"],"names":[],"mappings":"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"}
|
package/dist/models/email.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { Transporter } from "nodemailer";
|
|
|
7
7
|
import User from "./user";
|
|
8
8
|
declare const _default: {
|
|
9
9
|
getMailTransport: () => Transporter<any>;
|
|
10
|
-
transformBootstrapEmail: (bsHtml: string) => Promise<
|
|
10
|
+
transformBootstrapEmail: (bsHtml: string, container?: boolean) => Promise<string>;
|
|
11
11
|
send_verification_email: (user: User, req: any) => Promise<any>;
|
|
12
12
|
};
|
|
13
13
|
export = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAC;AAU1D,OAAO,IAAI,MAAM,QAAQ,CAAC;;;;;;
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAC;AAU1D,OAAO,IAAI,MAAM,QAAQ,CAAC;;;;;;AAsF1B,kBAIE"}
|
package/dist/models/email.js
CHANGED
|
@@ -9,15 +9,16 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
9
9
|
*/
|
|
10
10
|
const nodemailer_1 = require("nodemailer");
|
|
11
11
|
const { getState } = require("../db/state");
|
|
12
|
-
const BootstrapEmail = require("bootstrap-
|
|
12
|
+
const BootstrapEmail = require("bootstrap-email_with-node-sass-6"); // no typings available
|
|
13
13
|
const tmp_promise_1 = require("tmp-promise");
|
|
14
14
|
const promises_1 = require("fs/promises");
|
|
15
15
|
const tags_1 = __importDefault(require("@saltcorn/markup/tags"));
|
|
16
16
|
const { div } = tags_1.default;
|
|
17
17
|
const view_1 = __importDefault(require("./view"));
|
|
18
18
|
const uuid_1 = require("uuid");
|
|
19
|
-
const
|
|
20
|
-
const
|
|
19
|
+
const index_1 = __importDefault(require("../db/index"));
|
|
20
|
+
const mocks_1 = __importDefault(require("../tests/mocks"));
|
|
21
|
+
const { mockReqRes } = mocks_1.default;
|
|
21
22
|
/**
|
|
22
23
|
* @returns {Transporter}
|
|
23
24
|
*/
|
|
@@ -35,12 +36,14 @@ const getMailTransport = () => {
|
|
|
35
36
|
});
|
|
36
37
|
};
|
|
37
38
|
/**
|
|
38
|
-
* @param {
|
|
39
|
-
* @
|
|
39
|
+
* @param {string} bsHtml
|
|
40
|
+
* @param {boolean} [container=true] wrap in a container div (used by unit test)
|
|
41
|
+
* @returns {Promise<string>}
|
|
40
42
|
*/
|
|
41
|
-
const transformBootstrapEmail = async (bsHtml) => {
|
|
43
|
+
const transformBootstrapEmail = async (bsHtml, container = true) => {
|
|
42
44
|
const filename = await (0, tmp_promise_1.tmpName)();
|
|
43
|
-
|
|
45
|
+
const html = container ? div({ class: "container" }, bsHtml) : bsHtml;
|
|
46
|
+
await (0, promises_1.writeFile)(filename, html);
|
|
44
47
|
const template = new BootstrapEmail(filename);
|
|
45
48
|
const email = template.compile();
|
|
46
49
|
await (0, promises_1.unlink)(filename);
|
|
@@ -60,7 +63,7 @@ const send_verification_email = async (user, req) => {
|
|
|
60
63
|
if (verification_view) {
|
|
61
64
|
const verification_token = (0, uuid_1.v4)();
|
|
62
65
|
try {
|
|
63
|
-
await
|
|
66
|
+
await index_1.default.update("users", { verification_token }, user.id);
|
|
64
67
|
user.verification_token = verification_token;
|
|
65
68
|
const htmlBs = await verification_view.run({ id: user.id }, mockReqRes);
|
|
66
69
|
const html = await transformBootstrapEmail(htmlBs);
|
package/dist/models/email.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":";;;;AAAA;;;;GAIG;AACH,2CAA0D;AAC1D,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAC5C,MAAM,cAAc,GAAG,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../models/email.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ declare class EventLog {
|
|
|
27
27
|
* @param {object} selopts
|
|
28
28
|
* @returns {Promise<EventLog[]>}
|
|
29
29
|
*/
|
|
30
|
-
static find(where: Where, selopts
|
|
30
|
+
static find(where: Where, selopts?: SelectOptions): Promise<EventLog[]>;
|
|
31
31
|
/**
|
|
32
32
|
* @param {object} where
|
|
33
33
|
* @returns {Promise<EventLog>}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventlog.d.ts","sourceRoot":"","sources":["../../models/eventlog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGzE;;;GAGG;AACH,cAAM,QAAQ;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;gBACS,CAAC,EAAE,WAAW;IAY1B;;;;OAIG;WACU,IAAI,
|
|
1
|
+
{"version":3,"file":"eventlog.d.ts","sourceRoot":"","sources":["../../models/eventlog.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGzE;;;GAGG;AACH,cAAM,QAAQ;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;gBACS,CAAC,EAAE,WAAW;IAY1B;;;;OAIG;WACU,IAAI,CACf,KAAK,EAAE,KAAK,EACZ,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,QAAQ,EAAE,CAAC;IAKtB;;;OAGG;WACU,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;IAKrD;;;OAGG;WACU,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAW3D;;;OAGG;WACU,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;IAIjD;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED;;;OAGG;WACU,MAAM,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAqB7D;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAK3C;AAED,kBAAU,QAAQ,CAAC;IACjB,KAAY,WAAW,GAAG;QACxB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,QAAQ,EAAE,IAAI,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AACD,aAAK,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;AAExC,SAAS,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eventlog.js","sourceRoot":"","sources":["../../models/eventlog.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;AAEH,+CAAuB;AAEvB,oDAA4B;AAE5B;;;GAGG;AACH,MAAM,QAAQ;IASZ;;;OAGG;IACH,YAAY,CAAc;QACxB,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;YAC9D,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;YACtB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;QACzB,IAAI,CAAC,OAAO;YACV,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"eventlog.js","sourceRoot":"","sources":["../../models/eventlog.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,24 @@
|
|
|
1
1
|
import Table from "./table";
|
|
2
|
-
import { Row } from "@saltcorn/db-common/internal";
|
|
2
|
+
import { Row, Where } from "@saltcorn/db-common/internal";
|
|
3
3
|
import Field from "./field";
|
|
4
|
+
import { PluginFunction } from "@saltcorn/types/base_types";
|
|
4
5
|
/**
|
|
5
6
|
* @param {string} s
|
|
6
7
|
* @returns {boolean|void}
|
|
7
8
|
*/
|
|
8
9
|
declare function expressionValidator(s: string): true | string;
|
|
9
|
-
/**
|
|
10
|
-
* @param {string} expression
|
|
11
|
-
* @returns {string}
|
|
12
|
-
*/
|
|
13
|
-
declare function jsexprToSQL(expression: string): string;
|
|
14
10
|
/**
|
|
15
11
|
* @param {string} expression
|
|
16
12
|
* @throws {Error}
|
|
17
13
|
* @returns {object}
|
|
18
14
|
*/
|
|
19
|
-
declare function jsexprToWhere(expression: string, extraCtx?: any):
|
|
15
|
+
declare function jsexprToWhere(expression: string, extraCtx?: any): Where;
|
|
20
16
|
/**
|
|
21
17
|
* @param {string} expression
|
|
22
18
|
* @param {object[]} statefuns
|
|
23
19
|
* @returns {object}
|
|
24
20
|
*/
|
|
25
|
-
declare function transform_for_async(expression: string, statefuns: Record<string,
|
|
21
|
+
declare function transform_for_async(expression: string, statefuns: Record<string, PluginFunction>): {
|
|
26
22
|
isAsync: boolean;
|
|
27
23
|
expr_string: string;
|
|
28
24
|
};
|
|
@@ -32,6 +28,12 @@ declare function transform_for_async(expression: string, statefuns: Record<strin
|
|
|
32
28
|
* @returns {any}
|
|
33
29
|
*/
|
|
34
30
|
declare function get_expression_function(expression: string, fields: Array<Field>): Function;
|
|
31
|
+
/**
|
|
32
|
+
* @param {string} expression
|
|
33
|
+
* @param {object[]} fields
|
|
34
|
+
* @returns {any}
|
|
35
|
+
*/
|
|
36
|
+
declare function eval_expression(expression: string, row: any, user?: any): any;
|
|
35
37
|
/**
|
|
36
38
|
* @param {string} expression
|
|
37
39
|
* @param {object[]} fields
|
|
@@ -50,10 +52,10 @@ declare const _default: {
|
|
|
50
52
|
apply_calculated_fields: typeof apply_calculated_fields;
|
|
51
53
|
get_async_expression_function: typeof get_async_expression_function;
|
|
52
54
|
get_expression_function: typeof get_expression_function;
|
|
55
|
+
eval_expression: typeof eval_expression;
|
|
53
56
|
recalculate_for_stored: (table: Table) => Promise<void>;
|
|
54
57
|
transform_for_async: typeof transform_for_async;
|
|
55
58
|
apply_calculated_fields_stored: (row: Row, fields: Field[]) => Promise<Row>;
|
|
56
|
-
jsexprToSQL: typeof jsexprToSQL;
|
|
57
59
|
jsexprToWhere: typeof jsexprToWhere;
|
|
58
60
|
};
|
|
59
61
|
export = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"expression.d.ts","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D;;;GAGG;AACH,iBAAS,mBAAmB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQrD;AASD;;;;GAIG;AACH,iBAAS,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,GAAE,GAAQ,GAAG,KAAK,CAqFpE;AAMD;;;;GAIG;AACH,iBAAS,mBAAmB,CAC1B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;;;EAuB1C;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAC9B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GACnB,QAAQ,CAUV;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAUtE;AAED;;;;;GAKG;AACH,iBAAS,6BAA6B,CACpC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,EACpB,YAAY,KAAK,GAChB,GAAG,CAYL;AAED;;;;GAIG;AACH,iBAAS,uBAAuB,CAC9B,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,EAChB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,GACnB,KAAK,CAAC,GAAG,CAAC,CA4BZ;;;;;;;;;;;;AA8DD,kBAUE"}
|
|
@@ -23,15 +23,6 @@ function expressionValidator(s) {
|
|
|
23
23
|
return e.message;
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
/**
|
|
27
|
-
* @param {string} expression
|
|
28
|
-
* @returns {string}
|
|
29
|
-
*/
|
|
30
|
-
function jsexprToSQL(expression) {
|
|
31
|
-
if (!expression)
|
|
32
|
-
return expression;
|
|
33
|
-
return expression.replace(/===/g, "=").replace(/==/g, "=").replace(/"/g, "'");
|
|
34
|
-
}
|
|
35
26
|
/**
|
|
36
27
|
* @param {string} expression
|
|
37
28
|
* @throws {Error}
|
|
@@ -128,9 +119,7 @@ function isIdentifierWithName(node) {
|
|
|
128
119
|
* @param {object[]} statefuns
|
|
129
120
|
* @returns {object}
|
|
130
121
|
*/
|
|
131
|
-
function transform_for_async(expression,
|
|
132
|
-
// TODO ch replace any as soon as the unit tests are migrated
|
|
133
|
-
statefuns) {
|
|
122
|
+
function transform_for_async(expression, statefuns) {
|
|
134
123
|
var isAsync = false;
|
|
135
124
|
const ast = (0, acorn_1.parseExpressionAt)(expression, 0, {
|
|
136
125
|
ecmaVersion: 2020,
|
|
@@ -165,6 +154,19 @@ function get_expression_function(expression, fields) {
|
|
|
165
154
|
const { getState } = require("../db/state");
|
|
166
155
|
return (0, vm_1.runInNewContext)(`(${args})=>(${expression})`, getState().function_context);
|
|
167
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* @param {string} expression
|
|
159
|
+
* @param {object[]} fields
|
|
160
|
+
* @returns {any}
|
|
161
|
+
*/
|
|
162
|
+
function eval_expression(expression, row, user) {
|
|
163
|
+
const field_names = Object.keys(row);
|
|
164
|
+
const args = field_names.includes("user")
|
|
165
|
+
? `{${field_names.join()}}`
|
|
166
|
+
: `{${field_names.join()}}, user`;
|
|
167
|
+
const { getState } = require("../db/state");
|
|
168
|
+
return (0, vm_1.runInNewContext)(`(${args})=>(${expression})`, getState().function_context)(row, user);
|
|
169
|
+
}
|
|
168
170
|
/**
|
|
169
171
|
* @param {string} expression
|
|
170
172
|
* @param {object[]} fields
|
|
@@ -289,10 +291,10 @@ module.exports = {
|
|
|
289
291
|
apply_calculated_fields,
|
|
290
292
|
get_async_expression_function,
|
|
291
293
|
get_expression_function,
|
|
294
|
+
eval_expression,
|
|
292
295
|
recalculate_for_stored,
|
|
293
296
|
transform_for_async,
|
|
294
297
|
apply_calculated_fields_stored,
|
|
295
|
-
jsexprToSQL,
|
|
296
298
|
jsexprToWhere,
|
|
297
299
|
};
|
|
298
300
|
//# sourceMappingURL=expression.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":";AAAA;;;;GAIG;AACH,2BAA6C;AAC7C,iCAAgD;AAChD,2CAAqC;AAErC,qCAAmC;AAMnC;;;GAGG;AACH,SAAS,mBAAmB,CAAC,CAAS;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAClD,IAAI;QACF,MAAM,CAAC,GAAG,IAAI,WAAM,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAM,EAAE;QACf,OAAO,CAAC,CAAC,OAAO,CAAC;KAClB;AACH,CAAC;
|
|
1
|
+
{"version":3,"file":"expression.js","sourceRoot":"","sources":["../../models/expression.ts"],"names":[],"mappings":"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"}
|
package/dist/models/field.d.ts
CHANGED
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
* @subcategory models
|
|
6
6
|
*/
|
|
7
7
|
import type { Where, SelectOptions, Row } from "@saltcorn/db-common/internal";
|
|
8
|
-
import type { ResultMessage, Type } from "@saltcorn/types/common_types";
|
|
8
|
+
import type { GenObj, ResultMessage, Type } from "@saltcorn/types/common_types";
|
|
9
9
|
import type Table from "./table";
|
|
10
|
-
import type { AbstractField, InputType } from "@saltcorn/types/model-abstracts/abstract_field";
|
|
10
|
+
import type { FieldCfg, AbstractField, InputType } from "@saltcorn/types/model-abstracts/abstract_field";
|
|
11
|
+
import { AbstractTable } from "@saltcorn/types/model-abstracts/abstract_table";
|
|
11
12
|
/**
|
|
12
13
|
* Field Class
|
|
13
14
|
* @category saltcorn-data
|
|
@@ -16,7 +17,7 @@ declare class Field implements AbstractField {
|
|
|
16
17
|
label: string;
|
|
17
18
|
name: string;
|
|
18
19
|
fieldview?: string;
|
|
19
|
-
validator:
|
|
20
|
+
validator: (arg0: any) => boolean | string | undefined;
|
|
20
21
|
showIf?: any;
|
|
21
22
|
parent_field?: string;
|
|
22
23
|
postText?: string;
|
|
@@ -40,12 +41,12 @@ declare class Field implements AbstractField {
|
|
|
40
41
|
is_fkey: boolean;
|
|
41
42
|
input_type: InputType;
|
|
42
43
|
reftable_name?: string;
|
|
43
|
-
reftype?: string;
|
|
44
|
+
reftype?: string | Type;
|
|
44
45
|
refname: string;
|
|
45
|
-
reftable?:
|
|
46
|
-
attributes:
|
|
46
|
+
reftable?: AbstractTable;
|
|
47
|
+
attributes: GenObj;
|
|
47
48
|
table_id?: number;
|
|
48
|
-
table?:
|
|
49
|
+
table?: AbstractTable | null;
|
|
49
50
|
[key: string]: any;
|
|
50
51
|
/**
|
|
51
52
|
* Constructor
|
|
@@ -62,7 +63,7 @@ declare class Field implements AbstractField {
|
|
|
62
63
|
* @param {string} label
|
|
63
64
|
* @returns {string}
|
|
64
65
|
*/
|
|
65
|
-
static labelToName(label: string): string
|
|
66
|
+
static labelToName(label: string): string;
|
|
66
67
|
/**
|
|
67
68
|
* ???
|
|
68
69
|
* @returns {string}
|
|
@@ -80,7 +81,7 @@ declare class Field implements AbstractField {
|
|
|
80
81
|
* @param {object} [req]
|
|
81
82
|
* @returns {Promise<void>}
|
|
82
83
|
*/
|
|
83
|
-
distinct_values(req
|
|
84
|
+
distinct_values(req?: any, where?: Where): Promise<{
|
|
84
85
|
label: string;
|
|
85
86
|
value: string;
|
|
86
87
|
jsvalue?: boolean;
|
|
@@ -181,41 +182,5 @@ declare class Field implements AbstractField {
|
|
|
181
182
|
*/
|
|
182
183
|
static getTypeAttributes(typeattribs: Function | any, table_id?: number): any;
|
|
183
184
|
}
|
|
184
|
-
declare namespace Field {
|
|
185
|
-
type FieldCfg = {
|
|
186
|
-
label?: string;
|
|
187
|
-
name?: string;
|
|
188
|
-
fieldview?: string;
|
|
189
|
-
validator?: (arg0: any) => boolean;
|
|
190
|
-
showIf?: any;
|
|
191
|
-
parent_field?: string;
|
|
192
|
-
postText?: string;
|
|
193
|
-
class?: string;
|
|
194
|
-
id?: number;
|
|
195
|
-
default?: string;
|
|
196
|
-
sublabel?: string;
|
|
197
|
-
description?: string;
|
|
198
|
-
type?: string | Type;
|
|
199
|
-
options?: any;
|
|
200
|
-
required?: boolean;
|
|
201
|
-
is_unique?: boolean;
|
|
202
|
-
hidden?: boolean;
|
|
203
|
-
disabled?: boolean;
|
|
204
|
-
calculated?: boolean;
|
|
205
|
-
primary_key?: boolean;
|
|
206
|
-
stored?: boolean;
|
|
207
|
-
expression?: string;
|
|
208
|
-
sourceURL?: string;
|
|
209
|
-
input_type?: InputType;
|
|
210
|
-
reftable_name?: string;
|
|
211
|
-
reftable?: Table;
|
|
212
|
-
attributes?: string;
|
|
213
|
-
table_id?: number;
|
|
214
|
-
reftype?: string;
|
|
215
|
-
refname?: string;
|
|
216
|
-
table?: Table;
|
|
217
|
-
};
|
|
218
|
-
}
|
|
219
|
-
declare type FieldCfg = Field.FieldCfg;
|
|
220
185
|
export = Field;
|
|
221
186
|
//# sourceMappingURL=field.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../models/field.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,KAAK,EAEV,aAAa,EACb,IAAI,EACL,MAAM,8BAA8B,CAAC;AAEtC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACV,MAAM,gDAAgD,CAAC;
|
|
1
|
+
{"version":3,"file":"field.d.ts","sourceRoot":"","sources":["../../models/field.ts"],"names":[],"mappings":"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"}
|
package/dist/models/field.js
CHANGED
|
@@ -21,7 +21,7 @@ const readKey = (v, field) => {
|
|
|
21
21
|
const { getState } = require("../db/state");
|
|
22
22
|
if (!field.reftype)
|
|
23
23
|
throw new Error("Unable to find the type, 'reftype' is undefined.");
|
|
24
|
-
const type = getState().types[field.reftype];
|
|
24
|
+
const type = getState().types[typeof field.reftype === "string" ? field.reftype : field.reftype.name];
|
|
25
25
|
const parsed = type.read(v);
|
|
26
26
|
return parsed || (v ? { error: "Unable to read key" } : null);
|
|
27
27
|
};
|
|
@@ -231,7 +231,7 @@ class Field {
|
|
|
231
231
|
}
|
|
232
232
|
const schema = db_1.default.getTenantSchemaPrefix();
|
|
233
233
|
const { getState } = require("../db/state");
|
|
234
|
-
return `${getState().types[this.reftype].sql_name} references ${schema}"${(0, internal_1.sqlsanitize)(this.reftable_name)}" ("${this.refname}")`;
|
|
234
|
+
return `${getState().types[typeof this.reftype === "string" ? this.reftype : this.reftype.name].sql_name} references ${schema}"${(0, internal_1.sqlsanitize)(this.reftable_name)}" ("${this.refname}")`;
|
|
235
235
|
}
|
|
236
236
|
else if (this.type && (0, common_types_1.instanceOfType)(this.type) && this.type.sql_name) {
|
|
237
237
|
return this.type.sql_name;
|
|
@@ -258,7 +258,7 @@ class Field {
|
|
|
258
258
|
throw new Error("'reftype' and 'reftable_name' must be set if 'is_fkey' is true.");
|
|
259
259
|
}
|
|
260
260
|
const { getState } = require("../db/state");
|
|
261
|
-
return getState().types[this.reftype].sql_name;
|
|
261
|
+
return getState().types[typeof this.reftype === "string" ? this.reftype : this.reftype.name].sql_name;
|
|
262
262
|
}
|
|
263
263
|
else if (this.type && (0, common_types_1.instanceOfType)(this.type) && this.type.sql_name) {
|
|
264
264
|
return this.type.sql_name;
|
|
@@ -354,8 +354,9 @@ class Field {
|
|
|
354
354
|
* @returns {Promise<void>}
|
|
355
355
|
*/
|
|
356
356
|
async toggle_not_null(not_null) {
|
|
357
|
+
await this.fill_table();
|
|
357
358
|
if (!this.table) {
|
|
358
|
-
throw new Error("To
|
|
359
|
+
throw new Error("To toggle a not null constraint, 'table' must be set.");
|
|
359
360
|
}
|
|
360
361
|
const schema = db_1.default.getTenantSchemaPrefix();
|
|
361
362
|
await this.fill_table();
|