dbgate-api 4.8.7 → 4.8.8
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 +4 -4
- package/src/controllers/files.js +29 -0
- package/src/currentVersion.js +2 -2
- package/src/main.js +2 -2
- package/src/utility/socket.js +15 -5
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbgate-api",
|
|
3
3
|
"main": "src/index.js",
|
|
4
|
-
"version": "4.8.
|
|
4
|
+
"version": "4.8.8",
|
|
5
5
|
"homepage": "https://dbgate.org/",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"cors": "^2.8.5",
|
|
27
27
|
"cross-env": "^6.0.3",
|
|
28
28
|
"dbgate-query-splitter": "^4.9.0",
|
|
29
|
-
"dbgate-sqltree": "^4.8.
|
|
30
|
-
"dbgate-tools": "^4.8.
|
|
29
|
+
"dbgate-sqltree": "^4.8.8",
|
|
30
|
+
"dbgate-tools": "^4.8.8",
|
|
31
31
|
"diff": "^5.0.0",
|
|
32
32
|
"diff2html": "^3.4.13",
|
|
33
33
|
"eslint": "^6.8.0",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"devDependencies": {
|
|
64
64
|
"@types/fs-extra": "^9.0.11",
|
|
65
65
|
"@types/lodash": "^4.14.149",
|
|
66
|
-
"dbgate-types": "^4.8.
|
|
66
|
+
"dbgate-types": "^4.8.8",
|
|
67
67
|
"env-cmd": "^10.1.0",
|
|
68
68
|
"node-loader": "^1.0.2",
|
|
69
69
|
"nodemon": "^2.0.2",
|
package/src/controllers/files.js
CHANGED
|
@@ -62,6 +62,15 @@ module.exports = {
|
|
|
62
62
|
return true;
|
|
63
63
|
},
|
|
64
64
|
|
|
65
|
+
refresh_meta: true,
|
|
66
|
+
async refresh({ folders }, req) {
|
|
67
|
+
for (const folder of folders) {
|
|
68
|
+
socket.emitChanged(`files-changed-${folder}`);
|
|
69
|
+
socket.emitChanged(`all-files-changed`);
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
|
|
65
74
|
copy_meta: true,
|
|
66
75
|
async copy({ folder, file, newFile }, req) {
|
|
67
76
|
if (!hasPermission(`files/${folder}/write`, req)) return false;
|
|
@@ -177,4 +186,24 @@ module.exports = {
|
|
|
177
186
|
await fs.writeFile(filePath, getDiagramExport(html, css, themeType, themeClassName));
|
|
178
187
|
return true;
|
|
179
188
|
},
|
|
189
|
+
|
|
190
|
+
getFileRealPath_meta: true,
|
|
191
|
+
async getFileRealPath({ folder, file }, req) {
|
|
192
|
+
if (folder.startsWith('archive:')) {
|
|
193
|
+
if (!hasPermission(`archive/write`, req)) return false;
|
|
194
|
+
const dir = resolveArchiveFolder(folder.substring('archive:'.length));
|
|
195
|
+
return path.join(dir, file);
|
|
196
|
+
} else if (folder.startsWith('app:')) {
|
|
197
|
+
if (!hasPermission(`apps/write`, req)) return false;
|
|
198
|
+
const app = folder.substring('app:'.length);
|
|
199
|
+
return path.join(appdir(), app, file);
|
|
200
|
+
} else {
|
|
201
|
+
if (!hasPermission(`files/${folder}/write`, req)) return false;
|
|
202
|
+
const dir = path.join(filesdir(), folder);
|
|
203
|
+
if (!(await fs.exists(dir))) {
|
|
204
|
+
await fs.mkdir(dir);
|
|
205
|
+
}
|
|
206
|
+
return path.join(dir, file);
|
|
207
|
+
}
|
|
208
|
+
},
|
|
180
209
|
};
|
package/src/currentVersion.js
CHANGED
package/src/main.js
CHANGED
|
@@ -155,8 +155,8 @@ function useAllControllers(app, electron) {
|
|
|
155
155
|
useController(app, electron, '/apps', apps);
|
|
156
156
|
}
|
|
157
157
|
|
|
158
|
-
function
|
|
158
|
+
function setElectronSender(electronSender) {
|
|
159
159
|
socket.setElectronSender(electronSender);
|
|
160
160
|
}
|
|
161
161
|
|
|
162
|
-
module.exports = { start, useAllControllers,
|
|
162
|
+
module.exports = { start, useAllControllers, setElectronSender, configController: config };
|
package/src/utility/socket.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
let sseResponse = null;
|
|
2
2
|
let electronSender = null;
|
|
3
|
-
let init =
|
|
3
|
+
let init = [];
|
|
4
4
|
|
|
5
5
|
module.exports = {
|
|
6
6
|
setSseResponse(value) {
|
|
@@ -12,15 +12,25 @@ module.exports = {
|
|
|
12
12
|
},
|
|
13
13
|
emit(message, data) {
|
|
14
14
|
if (electronSender) {
|
|
15
|
+
if (init.length > 0) {
|
|
16
|
+
for (const item of init) {
|
|
17
|
+
electronSender.send(item.message, item.data == null ? null : item.data);
|
|
18
|
+
}
|
|
19
|
+
init = [];
|
|
20
|
+
}
|
|
15
21
|
electronSender.send(message, data == null ? null : data);
|
|
16
22
|
} else if (sseResponse) {
|
|
17
|
-
if (init) {
|
|
18
|
-
|
|
19
|
-
|
|
23
|
+
if (init.length > 0) {
|
|
24
|
+
for (const item of init) {
|
|
25
|
+
sseResponse.write(
|
|
26
|
+
`event: ${item.message}\ndata: ${JSON.stringify(item.data == null ? null : item.data)}\n\n`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
init = [];
|
|
20
30
|
}
|
|
21
31
|
sseResponse.write(`event: ${message}\ndata: ${JSON.stringify(data == null ? null : data)}\n\n`);
|
|
22
32
|
} else {
|
|
23
|
-
init
|
|
33
|
+
init.push([{ message, data }]);
|
|
24
34
|
}
|
|
25
35
|
},
|
|
26
36
|
emitChanged(key) {
|