@nocobase/plugin-data-source-main 1.2.13-alpha → 1.3.0-alpha.20240710084543
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/package.json +2 -2
- package/dist/client/index.d.ts +0 -13
- package/dist/client/index.js +0 -10
- package/dist/externalVersion.js +0 -21
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -48
- package/dist/locale/en-US.json +0 -4
- package/dist/locale/zh-CN.json +0 -4
- package/dist/server/collections/collectionCategories.d.ts +0 -11
- package/dist/server/collections/collectionCategories.js +0 -61
- package/dist/server/collections/collections.d.ts +0 -11
- package/dist/server/collections/collections.js +0 -101
- package/dist/server/collections/fields.d.ts +0 -11
- package/dist/server/collections/fields.js +0 -103
- package/dist/server/errors/field-is-depended-on-by-other.d.ts +0 -12
- package/dist/server/errors/field-is-depended-on-by-other.js +0 -44
- package/dist/server/errors/field-name-exists-error.d.ts +0 -13
- package/dist/server/errors/field-name-exists-error.js +0 -45
- package/dist/server/hooks/afterCreateForForeignKeyField.d.ts +0 -10
- package/dist/server/hooks/afterCreateForForeignKeyField.js +0 -217
- package/dist/server/hooks/afterCreateForReverseField.d.ts +0 -12
- package/dist/server/hooks/afterCreateForReverseField.js +0 -46
- package/dist/server/hooks/afterDestroyForForeignKeyField.d.ts +0 -10
- package/dist/server/hooks/afterDestroyForForeignKeyField.js +0 -98
- package/dist/server/hooks/beforeCreateForChildrenCollection.d.ts +0 -13
- package/dist/server/hooks/beforeCreateForChildrenCollection.js +0 -67
- package/dist/server/hooks/beforeCreateForReverseField.d.ts +0 -12
- package/dist/server/hooks/beforeCreateForReverseField.js +0 -73
- package/dist/server/hooks/beforeCreateForValidateField.d.ts +0 -15
- package/dist/server/hooks/beforeCreateForValidateField.js +0 -76
- package/dist/server/hooks/beforeCreateForViewCollection.d.ts +0 -13
- package/dist/server/hooks/beforeCreateForViewCollection.js +0 -39
- package/dist/server/hooks/beforeDestoryField.d.ts +0 -2
- package/dist/server/hooks/beforeDestoryField.js +0 -80
- package/dist/server/hooks/beforeDestroyForeignKey.d.ts +0 -10
- package/dist/server/hooks/beforeDestroyForeignKey.js +0 -75
- package/dist/server/hooks/beforeInitOptions.d.ts +0 -23
- package/dist/server/hooks/beforeInitOptions.js +0 -137
- package/dist/server/hooks/index.d.ts +0 -13
- package/dist/server/hooks/index.js +0 -38
- package/dist/server/index.d.ts +0 -12
- package/dist/server/index.js +0 -54
- package/dist/server/migrations/20220613103214-alert-sub-table.d.ts +0 -13
- package/dist/server/migrations/20220613103214-alert-sub-table.js +0 -50
- package/dist/server/migrations/20220704225714-drop-foreign-keys.d.ts +0 -13
- package/dist/server/migrations/20220704225714-drop-foreign-keys.js +0 -79
- package/dist/server/migrations/20221101111110-update-foreign-fields.d.ts +0 -13
- package/dist/server/migrations/20221101111110-update-foreign-fields.js +0 -74
- package/dist/server/migrations/20221104151410-update-collections-hidden.d.ts +0 -13
- package/dist/server/migrations/20221104151410-update-collections-hidden.js +0 -57
- package/dist/server/migrations/20221121111110-update-fk-type.d.ts +0 -13
- package/dist/server/migrations/20221121111110-update-fk-type.js +0 -155
- package/dist/server/migrations/20221121111113-update-id-to-bigint.d.ts +0 -13
- package/dist/server/migrations/20221121111113-update-id-to-bigint.js +0 -189
- package/dist/server/migrations/20221221103220-timestamps.d.ts +0 -13
- package/dist/server/migrations/20221221103220-timestamps.js +0 -55
- package/dist/server/migrations/20230225111112-drop-ui-schema-relation.d.ts +0 -13
- package/dist/server/migrations/20230225111112-drop-ui-schema-relation.js +0 -97
- package/dist/server/migrations/20230509111114-alert-ui-schema.d.ts +0 -13
- package/dist/server/migrations/20230509111114-alert-ui-schema.js +0 -87
- package/dist/server/migrations/20230623145414-number-step.d.ts +0 -13
- package/dist/server/migrations/20230623145414-number-step.js +0 -81
- package/dist/server/migrations/20230704222935-tableoid.d.ts +0 -13
- package/dist/server/migrations/20230704222935-tableoid.js +0 -83
- package/dist/server/migrations/20230918024546-set-collection-schema.d.ts +0 -13
- package/dist/server/migrations/20230918024546-set-collection-schema.js +0 -55
- package/dist/server/migrations/20240220153103-install-main-datasource.d.ts +0 -14
- package/dist/server/migrations/20240220153103-install-main-datasource.js +0 -51
- package/dist/server/migrations/20240419182147-fix-created-by-field-target.d.ts +0 -14
- package/dist/server/migrations/20240419182147-fix-created-by-field-target.js +0 -49
- package/dist/server/migrations/20240420105949-add-sort-field.d.ts +0 -14
- package/dist/server/migrations/20240420105949-add-sort-field.js +0 -81
- package/dist/server/migrations/20240517101001-fix-target-option-in-tree-collection.d.ts +0 -14
- package/dist/server/migrations/20240517101001-fix-target-option-in-tree-collection.js +0 -54
- package/dist/server/models/collection.d.ts +0 -27
- package/dist/server/models/collection.js +0 -197
- package/dist/server/models/field.d.ts +0 -26
- package/dist/server/models/field.js +0 -173
- package/dist/server/models/index.d.ts +0 -10
- package/dist/server/models/index.js +0 -32
- package/dist/server/repositories/collection-repository.d.ts +0 -20
- package/dist/server/repositories/collection-repository.js +0 -169
- package/dist/server/repositories/index.d.ts +0 -9
- package/dist/server/repositories/index.js +0 -30
- package/dist/server/resourcers/collections.d.ts +0 -12
- package/dist/server/resourcers/collections.js +0 -102
- package/dist/server/resourcers/views.d.ts +0 -17
- package/dist/server/resourcers/views.js +0 -116
- package/dist/server/server.d.ts +0 -19
- package/dist/server/server.js +0 -407
- package/dist/swagger/index.d.ts +0 -413
- package/dist/swagger/index.js +0 -440
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __create = Object.create;
|
|
11
|
-
var __defProp = Object.defineProperty;
|
|
12
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
14
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
15
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
16
|
-
var __export = (target, all) => {
|
|
17
|
-
for (var name in all)
|
|
18
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
19
|
-
};
|
|
20
|
-
var __copyProps = (to, from, except, desc) => {
|
|
21
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
22
|
-
for (let key of __getOwnPropNames(from))
|
|
23
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
24
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
25
|
-
}
|
|
26
|
-
return to;
|
|
27
|
-
};
|
|
28
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
29
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
30
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
31
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
32
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
33
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
34
|
-
mod
|
|
35
|
-
));
|
|
36
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
37
|
-
var collection_repository_exports = {};
|
|
38
|
-
__export(collection_repository_exports, {
|
|
39
|
-
CollectionRepository: () => CollectionRepository
|
|
40
|
-
});
|
|
41
|
-
module.exports = __toCommonJS(collection_repository_exports);
|
|
42
|
-
var import_database = require("@nocobase/database");
|
|
43
|
-
var import_utils = require("@nocobase/utils");
|
|
44
|
-
var import_lodash = __toESM(require("lodash"));
|
|
45
|
-
class CollectionRepository extends import_database.Repository {
|
|
46
|
-
app;
|
|
47
|
-
setApp(app) {
|
|
48
|
-
this.app = app;
|
|
49
|
-
}
|
|
50
|
-
async load(options = {}) {
|
|
51
|
-
this.database.logger.debug("loading collections...");
|
|
52
|
-
const { filter, skipExist } = options;
|
|
53
|
-
const instances = await this.find({ filter, appends: ["fields"] });
|
|
54
|
-
const graphlib = import_utils.CollectionsGraph.graphlib();
|
|
55
|
-
const graph = new graphlib.Graph();
|
|
56
|
-
const nameMap = {};
|
|
57
|
-
const viewCollections = [];
|
|
58
|
-
for (const instance of instances) {
|
|
59
|
-
graph.setNode(instance.get("name"));
|
|
60
|
-
if (instance.get("view") || instance.get("sql")) {
|
|
61
|
-
viewCollections.push(instance.get("name"));
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
for (const instance of instances) {
|
|
65
|
-
const collectionName = instance.get("name");
|
|
66
|
-
nameMap[collectionName] = instance;
|
|
67
|
-
if (instance.get("inherits")) {
|
|
68
|
-
for (const parent of instance.get("inherits")) {
|
|
69
|
-
graph.setEdge(parent, collectionName);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
if (graph.nodeCount() === 0)
|
|
74
|
-
return;
|
|
75
|
-
if (!graphlib.alg.isAcyclic(graph)) {
|
|
76
|
-
const cycles = graphlib.alg.findCycles(graph);
|
|
77
|
-
throw new Error(`Cyclic dependencies: ${cycles.map((cycle) => cycle.join(" -> ")).join(", ")}`);
|
|
78
|
-
}
|
|
79
|
-
const sortedNames = graphlib.alg.topsort(graph);
|
|
80
|
-
const lazyCollectionFields = /* @__PURE__ */ new Map();
|
|
81
|
-
for (const instanceName of sortedNames) {
|
|
82
|
-
if (!nameMap[instanceName])
|
|
83
|
-
continue;
|
|
84
|
-
const skipField = (() => {
|
|
85
|
-
if (viewCollections.includes(instanceName)) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
const fields = nameMap[instanceName].get("fields");
|
|
89
|
-
return fields.filter((field) => field["type"] === "belongsTo" || field["type"] === "belongsToMany").map((field) => field.get("name"));
|
|
90
|
-
})();
|
|
91
|
-
if (import_lodash.default.isArray(skipField) && skipField.length) {
|
|
92
|
-
lazyCollectionFields.set(instanceName, skipField);
|
|
93
|
-
}
|
|
94
|
-
this.database.logger.trace(`load ${instanceName} collection`, {
|
|
95
|
-
submodule: "CollectionRepository",
|
|
96
|
-
method: "load"
|
|
97
|
-
});
|
|
98
|
-
this.app.setMaintainingMessage(`load ${instanceName} collection`);
|
|
99
|
-
await nameMap[instanceName].load({ skipField });
|
|
100
|
-
}
|
|
101
|
-
const fieldWithSourceAttributes = /* @__PURE__ */ new Map();
|
|
102
|
-
for (const viewCollectionName of viewCollections) {
|
|
103
|
-
this.database.logger.trace(`load collection fields`, {
|
|
104
|
-
submodule: "CollectionRepository",
|
|
105
|
-
method: "load",
|
|
106
|
-
viewCollectionName
|
|
107
|
-
});
|
|
108
|
-
const skipField = (() => {
|
|
109
|
-
const fields = nameMap[viewCollectionName].get("fields");
|
|
110
|
-
return fields.filter((field) => {
|
|
111
|
-
var _a;
|
|
112
|
-
if (((_a = field.options) == null ? void 0 : _a.source) && (field["type"] === "belongsTo" || field["type"] === "belongsToMany")) {
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
return false;
|
|
116
|
-
}).map((field) => field.get("name"));
|
|
117
|
-
})();
|
|
118
|
-
this.app.setMaintainingMessage(`load ${viewCollectionName} collection fields`);
|
|
119
|
-
if (import_lodash.default.isArray(skipField) && skipField.length) {
|
|
120
|
-
fieldWithSourceAttributes.set(viewCollectionName, skipField);
|
|
121
|
-
}
|
|
122
|
-
await nameMap[viewCollectionName].loadFields({ skipField });
|
|
123
|
-
}
|
|
124
|
-
for (const [collectionName, skipField] of lazyCollectionFields) {
|
|
125
|
-
this.database.logger.trace(`load collection fields`, {
|
|
126
|
-
submodule: "CollectionRepository",
|
|
127
|
-
method: "load",
|
|
128
|
-
collectionName
|
|
129
|
-
});
|
|
130
|
-
this.app.setMaintainingMessage(`load ${collectionName} collection fields`);
|
|
131
|
-
await nameMap[collectionName].loadFields({ includeFields: skipField });
|
|
132
|
-
}
|
|
133
|
-
for (const [collectionName, skipField] of fieldWithSourceAttributes) {
|
|
134
|
-
this.database.logger.trace(`load collection fields`, {
|
|
135
|
-
submodule: "CollectionRepository",
|
|
136
|
-
method: "load",
|
|
137
|
-
collectionName
|
|
138
|
-
});
|
|
139
|
-
this.app.setMaintainingMessage(`load ${collectionName} collection fields`);
|
|
140
|
-
await nameMap[collectionName].loadFields({ includeFields: skipField });
|
|
141
|
-
}
|
|
142
|
-
this.database.logger.debug("collections loaded");
|
|
143
|
-
}
|
|
144
|
-
async db2cm(collectionName) {
|
|
145
|
-
const collection = this.database.getCollection(collectionName);
|
|
146
|
-
if (await this.findOne({ filter: { name: collectionName } })) {
|
|
147
|
-
return;
|
|
148
|
-
}
|
|
149
|
-
const options = collection.options;
|
|
150
|
-
const fields = [];
|
|
151
|
-
for (const [name, field] of collection.fields) {
|
|
152
|
-
fields.push({
|
|
153
|
-
name,
|
|
154
|
-
...field.options
|
|
155
|
-
});
|
|
156
|
-
}
|
|
157
|
-
await this.create({
|
|
158
|
-
values: {
|
|
159
|
-
...options,
|
|
160
|
-
fields,
|
|
161
|
-
from: "db2cm"
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
167
|
-
0 && (module.exports = {
|
|
168
|
-
CollectionRepository
|
|
169
|
-
});
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
export * from './collection-repository';
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __copyProps = (to, from, except, desc) => {
|
|
15
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
-
for (let key of __getOwnPropNames(from))
|
|
17
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
-
}
|
|
20
|
-
return to;
|
|
21
|
-
};
|
|
22
|
-
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
23
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
24
|
-
var repositories_exports = {};
|
|
25
|
-
module.exports = __toCommonJS(repositories_exports);
|
|
26
|
-
__reExport(repositories_exports, require("./collection-repository"), module.exports);
|
|
27
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
-
0 && (module.exports = {
|
|
29
|
-
...require("./collection-repository")
|
|
30
|
-
});
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
"collections:setFields"(ctx: any, next: any): Promise<void>;
|
|
11
|
-
};
|
|
12
|
-
export default _default;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var collections_exports = {};
|
|
28
|
-
__export(collections_exports, {
|
|
29
|
-
default: () => collections_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(collections_exports);
|
|
32
|
-
var collections_default = {
|
|
33
|
-
async ["collections:setFields"](ctx, next) {
|
|
34
|
-
var _a;
|
|
35
|
-
const { filterByTk, values } = ctx.action.params;
|
|
36
|
-
const transaction = await ctx.app.db.sequelize.transaction();
|
|
37
|
-
try {
|
|
38
|
-
const fields = (_a = values.fields) == null ? void 0 : _a.map((f) => {
|
|
39
|
-
delete f.key;
|
|
40
|
-
return f;
|
|
41
|
-
});
|
|
42
|
-
const db = ctx.app.db;
|
|
43
|
-
const collectionModel = await db.getRepository("collections").findOne({
|
|
44
|
-
filter: {
|
|
45
|
-
name: filterByTk
|
|
46
|
-
},
|
|
47
|
-
transaction
|
|
48
|
-
});
|
|
49
|
-
const existFields = await collectionModel.getFields({
|
|
50
|
-
transaction
|
|
51
|
-
});
|
|
52
|
-
const needUpdateFields = fields.filter((f) => {
|
|
53
|
-
return existFields.find((ef) => ef.name === f.name);
|
|
54
|
-
}).map((f) => {
|
|
55
|
-
return {
|
|
56
|
-
...f,
|
|
57
|
-
key: existFields.find((ef) => ef.name === f.name).key
|
|
58
|
-
};
|
|
59
|
-
});
|
|
60
|
-
const needDestroyFields = existFields.filter((ef) => {
|
|
61
|
-
return !fields.find((f) => f.name === ef.name);
|
|
62
|
-
});
|
|
63
|
-
const needCreatedFields = fields.filter((f) => {
|
|
64
|
-
return !existFields.find((ef) => ef.name === f.name);
|
|
65
|
-
});
|
|
66
|
-
if (needDestroyFields.length) {
|
|
67
|
-
await db.getRepository("fields").destroy({
|
|
68
|
-
filterByTk: needDestroyFields.map((f) => f.key),
|
|
69
|
-
transaction
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
if (needUpdateFields.length) {
|
|
73
|
-
await db.getRepository("fields").updateMany({
|
|
74
|
-
records: needUpdateFields,
|
|
75
|
-
transaction
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
if (needCreatedFields.length) {
|
|
79
|
-
await db.getRepository("collections.fields", filterByTk).create({
|
|
80
|
-
values: needCreatedFields,
|
|
81
|
-
transaction
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
await collectionModel.loadFields({
|
|
85
|
-
transaction
|
|
86
|
-
});
|
|
87
|
-
const collection = db.getCollection(filterByTk);
|
|
88
|
-
await collection.sync({
|
|
89
|
-
force: false,
|
|
90
|
-
alter: {
|
|
91
|
-
drop: false
|
|
92
|
-
},
|
|
93
|
-
transaction
|
|
94
|
-
});
|
|
95
|
-
await transaction.commit();
|
|
96
|
-
} catch (e) {
|
|
97
|
-
await transaction.rollback();
|
|
98
|
-
throw e;
|
|
99
|
-
}
|
|
100
|
-
await next();
|
|
101
|
-
}
|
|
102
|
-
};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
declare const _default: {
|
|
10
|
-
name: string;
|
|
11
|
-
actions: {
|
|
12
|
-
get(ctx: any, next: any): Promise<void>;
|
|
13
|
-
list: (ctx: any, next: any) => Promise<void>;
|
|
14
|
-
query(ctx: any, next: any): Promise<void>;
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
export default _default;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
var __defProp = Object.defineProperty;
|
|
11
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
13
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
14
|
-
var __export = (target, all) => {
|
|
15
|
-
for (var name in all)
|
|
16
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
-
};
|
|
18
|
-
var __copyProps = (to, from, except, desc) => {
|
|
19
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
-
for (let key of __getOwnPropNames(from))
|
|
21
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
-
}
|
|
24
|
-
return to;
|
|
25
|
-
};
|
|
26
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
27
|
-
var views_exports = {};
|
|
28
|
-
__export(views_exports, {
|
|
29
|
-
default: () => views_default
|
|
30
|
-
});
|
|
31
|
-
module.exports = __toCommonJS(views_exports);
|
|
32
|
-
var import_database = require("@nocobase/database");
|
|
33
|
-
var views_default = {
|
|
34
|
-
name: "dbViews",
|
|
35
|
-
actions: {
|
|
36
|
-
async get(ctx, next) {
|
|
37
|
-
const { filterByTk, schema } = ctx.action.params;
|
|
38
|
-
const db = ctx.app.db;
|
|
39
|
-
const fields = [];
|
|
40
|
-
const unsupportedFields = [];
|
|
41
|
-
const inferFields = await import_database.ViewFieldInference.inferFields({
|
|
42
|
-
db,
|
|
43
|
-
viewName: filterByTk,
|
|
44
|
-
viewSchema: schema
|
|
45
|
-
});
|
|
46
|
-
for (const [_name, field] of Object.entries(inferFields)) {
|
|
47
|
-
if (!field.type) {
|
|
48
|
-
unsupportedFields.push(field);
|
|
49
|
-
} else {
|
|
50
|
-
fields.push(field);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
ctx.body = {
|
|
54
|
-
fields,
|
|
55
|
-
unsupportedFields,
|
|
56
|
-
sources: [
|
|
57
|
-
...new Set(
|
|
58
|
-
Object.values(fields).map((field) => field.source).filter(Boolean).map((source) => source.split(".")[0])
|
|
59
|
-
)
|
|
60
|
-
]
|
|
61
|
-
};
|
|
62
|
-
await next();
|
|
63
|
-
},
|
|
64
|
-
list: async function(ctx, next) {
|
|
65
|
-
const db = ctx.app.db;
|
|
66
|
-
const dbViews = await db.queryInterface.listViews();
|
|
67
|
-
const viewCollections = Array.from(db.collections.values()).filter((collection) => collection.isView());
|
|
68
|
-
ctx.body = dbViews.map((dbView) => {
|
|
69
|
-
return {
|
|
70
|
-
...dbView
|
|
71
|
-
};
|
|
72
|
-
}).filter((dbView) => {
|
|
73
|
-
return !viewCollections.find((collection) => {
|
|
74
|
-
const viewName = dbView.name;
|
|
75
|
-
const schema = dbView.schema;
|
|
76
|
-
const collectionViewName = collection.options.viewName || collection.options.name;
|
|
77
|
-
return collectionViewName === viewName && collection.options.schema === schema;
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
await next();
|
|
81
|
-
},
|
|
82
|
-
async query(ctx, next) {
|
|
83
|
-
const { filterByTk, fieldTypes, schema = "public", page = 1, pageSize = 10 } = ctx.action.params;
|
|
84
|
-
const offset = (page - 1) * pageSize;
|
|
85
|
-
const limit = 1 * pageSize;
|
|
86
|
-
const sql = `SELECT *
|
|
87
|
-
FROM ${ctx.app.db.utils.quoteTable(ctx.app.db.utils.addSchema(filterByTk, schema))} LIMIT ${limit}
|
|
88
|
-
OFFSET ${offset}`;
|
|
89
|
-
const rawValues = await ctx.app.db.sequelize.query(sql, { type: "SELECT" });
|
|
90
|
-
if (fieldTypes) {
|
|
91
|
-
for (const raw of rawValues) {
|
|
92
|
-
const fakeInstance = {
|
|
93
|
-
dataValues: raw,
|
|
94
|
-
getDataValue: (key) => raw[key]
|
|
95
|
-
};
|
|
96
|
-
for (const fieldName of Object.keys(fieldTypes)) {
|
|
97
|
-
const fieldType = fieldTypes[fieldName];
|
|
98
|
-
const FieldClass = ctx.app.db.fieldTypes.get(fieldType);
|
|
99
|
-
const fieldOptions = new FieldClass(
|
|
100
|
-
{ name: fieldName },
|
|
101
|
-
{
|
|
102
|
-
db: ctx.app.db
|
|
103
|
-
}
|
|
104
|
-
).options;
|
|
105
|
-
if (fieldOptions.get) {
|
|
106
|
-
const newValue = fieldOptions.get.apply(fakeInstance);
|
|
107
|
-
raw[fieldName] = newValue;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
ctx.body = rawValues;
|
|
113
|
-
await next();
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
};
|
package/dist/server/server.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is part of the NocoBase (R) project.
|
|
3
|
-
* Copyright (c) 2020-2024 NocoBase Co., Ltd.
|
|
4
|
-
* Authors: NocoBase Team.
|
|
5
|
-
*
|
|
6
|
-
* This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
|
|
7
|
-
* For more information, please refer to: https://www.nocobase.com/agreement.
|
|
8
|
-
*/
|
|
9
|
-
import { Filter } from '@nocobase/database';
|
|
10
|
-
import { Plugin } from '@nocobase/server';
|
|
11
|
-
export declare class PluginDataSourceMainServer extends Plugin {
|
|
12
|
-
schema: string;
|
|
13
|
-
private loadFilter;
|
|
14
|
-
setLoadFilter(filter: Filter): void;
|
|
15
|
-
beforeLoad(): Promise<void>;
|
|
16
|
-
load(): Promise<void>;
|
|
17
|
-
install(): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
export default PluginDataSourceMainServer;
|