@forestadmin/agent 1.0.0-beta.7 → 1.0.0-beta.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/CHANGELOG.md +15 -0
- package/dist/agent/forestadmin-http-driver.js +2 -3
- package/dist/agent/routes/system/logger.js +4 -5
- package/dist/agent/utils/http-driver-options.js +14 -7
- package/dist/builder/agent.d.ts +5 -4
- package/dist/builder/agent.js +19 -9
- package/dist/types.d.ts +2 -8
- package/dist/types.js +1 -9
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
# @forestadmin/agent [1.0.0-beta.8](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.0.0-beta.7...@forestadmin/agent@1.0.0-beta.8) (2022-04-21)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* harmonize datasource creation and pass logger to it ([#257](https://github.com/ForestAdmin/agent-nodejs/issues/257)) ([82cb4ea](https://github.com/ForestAdmin/agent-nodejs/commit/82cb4ea37ac0a9fe83423d917226dfd8fad7d0a6))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Dependencies
|
|
13
|
+
|
|
14
|
+
* **@forestadmin/datasource-toolkit:** upgraded to 1.0.0-beta.6
|
|
15
|
+
|
|
1
16
|
# @forestadmin/agent [1.0.0-beta.7](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent@1.0.0-beta.6...@forestadmin/agent@1.0.0-beta.7) (2022-04-21)
|
|
2
17
|
|
|
3
18
|
|
|
@@ -8,7 +8,6 @@ const router_1 = __importDefault(require("@koa/router"));
|
|
|
8
8
|
const koa_bodyparser_1 = __importDefault(require("koa-bodyparser"));
|
|
9
9
|
const cors_1 = __importDefault(require("@koa/cors"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
|
-
const types_1 = require("../types");
|
|
12
11
|
const forest_http_api_1 = __importDefault(require("./utils/forest-http-api"));
|
|
13
12
|
const http_driver_options_1 = __importDefault(require("./utils/http-driver-options"));
|
|
14
13
|
const emitter_1 = __importDefault(require("./utils/forest-schema/emitter"));
|
|
@@ -56,7 +55,7 @@ class ForestAdminHttpDriver {
|
|
|
56
55
|
if (!schemaIsKnown) {
|
|
57
56
|
await forest_http_api_1.default.uploadSchema(this.options, schema);
|
|
58
57
|
}
|
|
59
|
-
this.options?.logger(
|
|
58
|
+
this.options?.logger('Info', 'Started');
|
|
60
59
|
}
|
|
61
60
|
/**
|
|
62
61
|
* Tear down all routes (close open sockets, ...)
|
|
@@ -70,4 +69,4 @@ class ForestAdminHttpDriver {
|
|
|
70
69
|
}
|
|
71
70
|
}
|
|
72
71
|
exports.default = ForestAdminHttpDriver;
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZXN0YWRtaW4taHR0cC1kcml2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWdlbnQvZm9yZXN0YWRtaW4taHR0cC1kcml2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSw4Q0FBc0I7QUFDdEIseURBQWlDO0FBQ2pDLG9FQUF3QztBQUN4QyxxREFBNkI7QUFDN0IsZ0RBQXdCO0FBS3hCLDhFQUFvRDtBQUNwRCxzRkFBdUQ7QUFDdkQsNEVBQTBEO0FBQzFELHNEQUFrQztBQUNsQywwREFBeUU7QUFLekUsTUFBcUIscUJBQXFCO0lBa0J4QyxZQUFZLFVBQXNCLEVBQUUsT0FBcUI7UUFkbEQsV0FBTSxHQUFnQixFQUFFLENBQUM7UUFFZixRQUFHLEdBQUcsSUFBSSxhQUFHLEVBQUUsQ0FBQztRQUN6QixXQUFNLEdBQW1DLFNBQVMsQ0FBQztRQVl6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLDZCQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBQSxrQkFBWSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUzQyw2QkFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQWZEOzs7O09BSUc7SUFDSCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQVVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxLQUFLO1FBQ1QsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7U0FDL0M7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUV4Qix5QkFBeUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsSUFBSSxnQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBQSxnQkFBVSxFQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUUvRCxJQUFJLENBQUMsR0FBRzthQUNMLEdBQUcsQ0FBQyxJQUFBLGNBQUksRUFBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMvRSxHQUFHLENBQUMsSUFBQSx3QkFBVSxFQUFDLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDdEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRXhCLG1EQUFtRDtRQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLGlCQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEYsTUFBTSxhQUFhLEdBQUcsTUFBTSx5QkFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFOUYsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixNQUFNLHlCQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNGO0FBdEVELHdDQXNFQyJ9
|
|
@@ -4,7 +4,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const types_1 = require("../../types");
|
|
7
|
-
const types_2 = require("../../../types");
|
|
8
7
|
const base_route_1 = __importDefault(require("../base-route"));
|
|
9
8
|
class Logger extends base_route_1.default {
|
|
10
9
|
constructor() {
|
|
@@ -20,11 +19,11 @@ class Logger extends base_route_1.default {
|
|
|
20
19
|
await next();
|
|
21
20
|
}
|
|
22
21
|
finally {
|
|
23
|
-
let logLevel =
|
|
22
|
+
let logLevel = 'Info';
|
|
24
23
|
if (context.response.status >= types_1.HttpCode.BadRequest)
|
|
25
|
-
logLevel =
|
|
24
|
+
logLevel = 'Warn';
|
|
26
25
|
if (context.response.status >= types_1.HttpCode.InternalServerError)
|
|
27
|
-
logLevel =
|
|
26
|
+
logLevel = 'Error';
|
|
28
27
|
let message = `[${context.response.status}]`;
|
|
29
28
|
message += ` ${context.request.method} ${context.request.path}`;
|
|
30
29
|
message += ` - ${Date.now() - timer}ms`;
|
|
@@ -33,4 +32,4 @@ class Logger extends base_route_1.default {
|
|
|
33
32
|
}
|
|
34
33
|
}
|
|
35
34
|
exports.default = Logger;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FnZW50L3JvdXRlcy9zeXN0ZW0vbG9nZ2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBS0EsdUNBQWtEO0FBQ2xELCtEQUFzQztBQUV0QyxNQUFxQixNQUFPLFNBQVEsb0JBQVM7SUFBN0M7O1FBQ0UsU0FBSSxHQUFHLGlCQUFTLENBQUMsTUFBTSxDQUFDO0lBdUIxQixDQUFDO0lBckJDLFdBQVcsQ0FBQyxNQUFjO1FBQ3hCLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFnQixFQUFFLElBQVU7UUFDL0MsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXpCLElBQUk7WUFDRixNQUFNLElBQUksRUFBRSxDQUFDO1NBQ2Q7Z0JBQVM7WUFDUixJQUFJLFFBQVEsR0FBZ0IsTUFBTSxDQUFDO1lBQ25DLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLElBQUksZ0JBQVEsQ0FBQyxVQUFVO2dCQUFFLFFBQVEsR0FBRyxNQUFNLENBQUM7WUFDdEUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxnQkFBUSxDQUFDLG1CQUFtQjtnQkFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDO1lBRWhGLElBQUksT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUM3QyxPQUFPLElBQUksSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxNQUFNLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLElBQUksQ0FBQztZQUV4QyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDekM7SUFDSCxDQUFDO0NBQ0Y7QUF4QkQseUJBd0JDIn0=
|
|
@@ -2,13 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const fs_1 = require("fs");
|
|
4
4
|
const path_1 = require("path");
|
|
5
|
-
const types_1 = require("../../types");
|
|
6
5
|
class OptionsUtils {
|
|
7
6
|
static withDefaults(options) {
|
|
8
7
|
return Object.freeze({
|
|
9
8
|
clientId: null,
|
|
10
9
|
forestServerUrl: 'https://api.forestadmin.com',
|
|
11
|
-
logger: (level, data) =>
|
|
10
|
+
logger: (level, data) => {
|
|
11
|
+
const loggerLevel = options.loggerLevel ?? 'Info';
|
|
12
|
+
const levels = Object.keys(this.loggerPrefix);
|
|
13
|
+
if (levels.indexOf(level) >= levels.indexOf(loggerLevel)) {
|
|
14
|
+
console.error(OptionsUtils.loggerPrefix[level], data);
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
loggerLevel: 'Info',
|
|
12
18
|
prefix: '/forest',
|
|
13
19
|
schemaPath: '.forestadmin-schema.json',
|
|
14
20
|
permissionsCacheDurationInSeconds: 15 * 60,
|
|
@@ -44,7 +50,7 @@ class OptionsUtils {
|
|
|
44
50
|
'(i.e. "OfpssLrbgF3P4vHJTTpb"');
|
|
45
51
|
}
|
|
46
52
|
if (options.clientId === null) {
|
|
47
|
-
options.logger?.(
|
|
53
|
+
options.logger?.('Warn', 'options.clientId was not provided. Using NodeJS cluster mode, ' +
|
|
48
54
|
'or multiple instances of the agent will break authentication');
|
|
49
55
|
}
|
|
50
56
|
else if (typeof options.clientId !== 'string') {
|
|
@@ -79,8 +85,9 @@ class OptionsUtils {
|
|
|
79
85
|
}
|
|
80
86
|
exports.default = OptionsUtils;
|
|
81
87
|
OptionsUtils.loggerPrefix = {
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
88
|
+
Debug: '\x1b[34mdebug:\x1b[0m',
|
|
89
|
+
Info: '\x1b[32minfo:\x1b[0m',
|
|
90
|
+
Warn: '\x1b[33mwarning:\x1b[0m',
|
|
91
|
+
Error: '\x1b[31merror:\x1b[0m',
|
|
85
92
|
};
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1kcml2ZXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZ2VudC91dGlscy9odHRwLWRyaXZlci1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQWdDO0FBQ2hDLCtCQUEwQztBQUsxQyxNQUFxQixZQUFZO0lBUS9CLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBcUI7UUFDdkMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ25CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsZUFBZSxFQUFFLDZCQUE2QjtZQUM5QyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0JBQ3RCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO2dCQUNsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFFOUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7b0JBQ3hELE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDdkQ7WUFDSCxDQUFDO1lBQ0QsV0FBVyxFQUFFLE1BQU07WUFDbkIsTUFBTSxFQUFFLFNBQVM7WUFDakIsVUFBVSxFQUFFLDBCQUEwQjtZQUN0QyxpQ0FBaUMsRUFBRSxFQUFFLEdBQUcsRUFBRTtZQUMxQyxHQUFHLE9BQU87U0FDWCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFpQztRQUMvQyxZQUFZLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLE9BQWlDO1FBQ3ZFLElBQUksT0FBTyxPQUFPLENBQUMsU0FBUyxLQUFLLFFBQVEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDdEYsTUFBTSxJQUFJLEtBQUssQ0FDYixnRUFBZ0U7Z0JBQzlELDZCQUE2QixDQUNoQyxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrREFBK0Q7Z0JBQzdELHNDQUFzQyxDQUN6QyxDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDcEQsTUFBTSxJQUFJLEtBQUssQ0FDYix1RUFBdUU7Z0JBQ3JFLCtFQUErRSxDQUNsRixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQWlDO1FBQy9ELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN6QyxNQUFNLElBQUksS0FBSyxDQUNiLHNGQUFzRjtnQkFDcEYsZ0RBQWdELENBQ25ELENBQUM7U0FDSDtRQUVELElBQUksT0FBTyxPQUFPLENBQUMsVUFBVSxLQUFLLFFBQVEsRUFBRTtZQUMxQyxNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRTtnQkFDbEUsOEJBQThCLENBQ2pDLENBQUM7U0FDSDtRQUVELElBQUksT0FBTyxDQUFDLFFBQVEsS0FBSyxJQUFJLEVBQUU7WUFDN0IsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUNkLE1BQU0sRUFDTixnRUFBZ0U7Z0JBQzlELCtEQUErRCxDQUNsRSxDQUFDO1NBQ0g7YUFBTSxJQUFJLE9BQU8sT0FBTyxDQUFDLFFBQVEsS0FBSyxRQUFRLEVBQUU7WUFDL0MsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFpQztRQUNoRSxJQUFJLE9BQU8sT0FBTyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMxRSxNQUFNLElBQUksS0FBSyxDQUNiLG1FQUFtRTtnQkFDakUsd0RBQXdELENBQzNELENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWU7UUFDM0MsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sTUFBTSxHQUFHLElBQUEsWUFBUyxFQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWpDLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUEsZUFBVSxFQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNELENBQUM7SUFFTyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQWU7UUFDbEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDOUIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELElBQUk7WUFDRixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUU1QixPQUFPLEdBQUcsQ0FBQyxRQUFRLEtBQUssT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDO1NBQzlEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7QUFsSEgsK0JBbUhDO0FBbEhnQix5QkFBWSxHQUFHO0lBQzVCLEtBQUssRUFBRSx1QkFBdUI7SUFDOUIsSUFBSSxFQUFFLHNCQUFzQjtJQUM1QixJQUFJLEVBQUUseUJBQXlCO0lBQy9CLEtBQUssRUFBRSx1QkFBdUI7Q0FDL0IsQ0FBQyJ9
|
package/dist/builder/agent.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ActionCollectionDecorator, BaseDataSource, Collection, ComputedCollectionDecorator,
|
|
1
|
+
import { ActionCollectionDecorator, BaseDataSource, Collection, ComputedCollectionDecorator, DataSourceDecorator, DataSourceFactory, OperatorsEmulateCollectionDecorator, OperatorsReplaceCollectionDecorator, PublicationCollectionDecorator, RelationCollectionDecorator, RenameCollectionDecorator, SearchCollectionDecorator, SegmentCollectionDecorator, SortEmulateCollectionDecorator, WriteCollectionDecorator } from '@forestadmin/datasource-toolkit';
|
|
2
2
|
import { AgentOptions } from '../types';
|
|
3
3
|
import CollectionBuilder from './collection';
|
|
4
4
|
import ForestAdminHttpDriver, { HttpCallback } from '../agent/forestadmin-http-driver';
|
|
@@ -29,6 +29,7 @@ export default class AgentBuilder {
|
|
|
29
29
|
segment: DataSourceDecorator<SegmentCollectionDecorator>;
|
|
30
30
|
sortEmulate: DataSourceDecorator<SortEmulateCollectionDecorator>;
|
|
31
31
|
write: DataSourceDecorator<WriteCollectionDecorator>;
|
|
32
|
+
private tasks;
|
|
32
33
|
/**
|
|
33
34
|
* Native nodejs HttpCallback object
|
|
34
35
|
* @example
|
|
@@ -43,7 +44,7 @@ export default class AgentBuilder {
|
|
|
43
44
|
* ```
|
|
44
45
|
* clientId: null,
|
|
45
46
|
* forestServerUrl: 'https://api.forestadmin.com',
|
|
46
|
-
* logger: (level, data) => console.error(
|
|
47
|
+
* logger: (level, data) => console.error(level, data),
|
|
47
48
|
* prefix: '/forest',
|
|
48
49
|
* schemaPath: '.forestadmin-schema.json',
|
|
49
50
|
* permissionsCacheDurationInSeconds: 15 * 60,
|
|
@@ -57,9 +58,9 @@ export default class AgentBuilder {
|
|
|
57
58
|
constructor(options: AgentOptions);
|
|
58
59
|
/**
|
|
59
60
|
* Add a datasource
|
|
60
|
-
* @param {
|
|
61
|
+
* @param {DataSourceFactory} factory the datasource to add
|
|
61
62
|
*/
|
|
62
|
-
addDatasource(
|
|
63
|
+
addDatasource(factory: DataSourceFactory): this;
|
|
63
64
|
/**
|
|
64
65
|
* Allow to interact with a decorated collection
|
|
65
66
|
* @param {string} name the name of the collection to manipulate
|
package/dist/builder/agent.js
CHANGED
|
@@ -23,7 +23,7 @@ class AgentBuilder {
|
|
|
23
23
|
* ```
|
|
24
24
|
* clientId: null,
|
|
25
25
|
* forestServerUrl: 'https://api.forestadmin.com',
|
|
26
|
-
* logger: (level, data) => console.error(
|
|
26
|
+
* logger: (level, data) => console.error(level, data),
|
|
27
27
|
* prefix: '/forest',
|
|
28
28
|
* schemaPath: '.forestadmin-schema.json',
|
|
29
29
|
* permissionsCacheDurationInSeconds: 15 * 60,
|
|
@@ -35,6 +35,7 @@ class AgentBuilder {
|
|
|
35
35
|
* .start();
|
|
36
36
|
*/
|
|
37
37
|
constructor(options) {
|
|
38
|
+
this.tasks = [];
|
|
38
39
|
let last;
|
|
39
40
|
/* eslint-disable no-multi-assign */
|
|
40
41
|
last = this.compositeDatasource = new datasource_toolkit_1.BaseDataSource();
|
|
@@ -74,11 +75,14 @@ class AgentBuilder {
|
|
|
74
75
|
}
|
|
75
76
|
/**
|
|
76
77
|
* Add a datasource
|
|
77
|
-
* @param {
|
|
78
|
+
* @param {DataSourceFactory} factory the datasource to add
|
|
78
79
|
*/
|
|
79
|
-
addDatasource(
|
|
80
|
-
|
|
81
|
-
this.
|
|
80
|
+
addDatasource(factory) {
|
|
81
|
+
this.tasks.push(async () => {
|
|
82
|
+
const datasource = await factory(this.forestAdminHttpDriver.options.logger);
|
|
83
|
+
datasource.collections.forEach(collection => {
|
|
84
|
+
this.compositeDatasource.addCollection(collection);
|
|
85
|
+
});
|
|
82
86
|
});
|
|
83
87
|
return this;
|
|
84
88
|
}
|
|
@@ -91,15 +95,21 @@ class AgentBuilder {
|
|
|
91
95
|
* .customizeCollection('books', books => books.renameField('xx', 'yy'))
|
|
92
96
|
*/
|
|
93
97
|
customizeCollection(name, handle) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
98
|
+
this.tasks.push(async () => {
|
|
99
|
+
if (this.publication.getCollection(name)) {
|
|
100
|
+
handle(new collection_1.default(this, name));
|
|
101
|
+
}
|
|
102
|
+
});
|
|
97
103
|
return this;
|
|
98
104
|
}
|
|
99
105
|
/**
|
|
100
106
|
* Start the agent.
|
|
101
107
|
*/
|
|
102
108
|
async start() {
|
|
109
|
+
for (const task of this.tasks) {
|
|
110
|
+
// eslint-disable-next-line no-await-in-loop
|
|
111
|
+
await task();
|
|
112
|
+
}
|
|
103
113
|
return this.forestAdminHttpDriver.start();
|
|
104
114
|
}
|
|
105
115
|
/**
|
|
@@ -110,4 +120,4 @@ class AgentBuilder {
|
|
|
110
120
|
}
|
|
111
121
|
}
|
|
112
122
|
exports.default = AgentBuilder;
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYnVpbGRlci9hZ2VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHdFQWlCeUM7QUFHekMsOERBQTZDO0FBQzdDLCtGQUF1RjtBQUV2Rjs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFxQixZQUFZO0lBb0MvQjs7Ozs7Ozs7Ozs7Ozs7OztPQWdCRztJQUNILFlBQVksT0FBcUI7UUE5QnpCLFVBQUssR0FBNEIsRUFBRSxDQUFDO1FBK0IxQyxJQUFJLElBQWdCLENBQUM7UUFFckIsb0NBQW9DO1FBQ3BDLElBQUksR0FBRyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxtQ0FBYyxFQUFjLENBQUM7UUFFbkUsNkZBQTZGO1FBQzdGLHNFQUFzRTtRQUN0RSwyRkFBMkY7UUFDM0YsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSx3Q0FBbUIsQ0FBQyxJQUFJLEVBQUUsZ0RBQTJCLENBQUMsQ0FBQztRQUN2RixJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLHdDQUFtQixDQUFDLElBQUksRUFBRSx3REFBbUMsQ0FBQyxDQUFDO1FBQ2hHLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksd0NBQW1CLENBQUMsSUFBSSxFQUFFLHdEQUFtQyxDQUFDLENBQUM7UUFDaEcsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx3Q0FBbUIsQ0FBQyxJQUFJLEVBQUUsZ0RBQTJCLENBQUMsQ0FBQztRQUNsRixJQUFJLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHdDQUFtQixDQUFDLElBQUksRUFBRSxnREFBMkIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksd0NBQW1CLENBQUMsSUFBSSxFQUFFLHdEQUFtQyxDQUFDLENBQUM7UUFDL0YsSUFBSSxHQUFHLElBQUksQ0FB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
|
package/dist/types.d.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export declare enum LoggerLevel {
|
|
3
|
-
Info = "info",
|
|
4
|
-
Warn = "warn",
|
|
5
|
-
Error = "error"
|
|
6
|
-
}
|
|
7
|
-
/** Logger */
|
|
8
|
-
export declare type Logger = (level: LoggerLevel, message: unknown) => void;
|
|
1
|
+
import { Logger, LoggerLevel } from '@forestadmin/datasource-toolkit';
|
|
9
2
|
/** Options to configure behavior of an agent's forestadmin driver */
|
|
10
3
|
export declare type AgentOptions = {
|
|
11
4
|
agentUrl: string;
|
|
@@ -14,6 +7,7 @@ export declare type AgentOptions = {
|
|
|
14
7
|
envSecret: string;
|
|
15
8
|
forestServerUrl?: string;
|
|
16
9
|
logger?: Logger;
|
|
10
|
+
loggerLevel?: LoggerLevel;
|
|
17
11
|
prefix?: string;
|
|
18
12
|
isProduction: boolean;
|
|
19
13
|
schemaPath?: string;
|
package/dist/types.js
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
4
|
-
/** Logger Level */
|
|
5
|
-
var LoggerLevel;
|
|
6
|
-
(function (LoggerLevel) {
|
|
7
|
-
LoggerLevel["Info"] = "info";
|
|
8
|
-
LoggerLevel["Warn"] = "warn";
|
|
9
|
-
LoggerLevel["Error"] = "error";
|
|
10
|
-
})(LoggerLevel = exports.LoggerLevel || (exports.LoggerLevel = {}));
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUJBQW1CO0FBQ25CLElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQiw0QkFBYSxDQUFBO0lBQ2IsNEJBQWEsQ0FBQTtJQUNiLDhCQUFlLENBQUE7QUFDakIsQ0FBQyxFQUpXLFdBQVcsR0FBWCxtQkFBVyxLQUFYLG1CQUFXLFFBSXRCIn0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@forestadmin/agent",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.8",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"publishConfig": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
15
|
"@fast-csv/format": "^4.3.5",
|
|
16
|
-
"@forestadmin/datasource-toolkit": "1.0.0-beta.
|
|
16
|
+
"@forestadmin/datasource-toolkit": "1.0.0-beta.6",
|
|
17
17
|
"@koa/cors": "^3.3.0",
|
|
18
18
|
"@koa/router": "^10.1.1",
|
|
19
19
|
"forest-ip-utils": "^1.0.1",
|