@mongosh/shell-evaluator 2.0.2 → 2.1.1
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/AUTHORS +1 -0
- package/lib/shell-evaluator.d.ts +3 -1
- package/lib/shell-evaluator.js +12 -2
- package/lib/shell-evaluator.js.map +1 -1
- package/package.json +6 -5
package/AUTHORS
CHANGED
package/lib/shell-evaluator.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { ShellInstanceState } from '@mongosh/shell-api';
|
|
2
2
|
import { ShellResult, EvaluationListener } from '@mongosh/shell-api';
|
|
3
3
|
type EvaluationFunction = (input: string, context: object, filename: string) => Promise<any>;
|
|
4
|
+
import { type TimingCategory } from '@mongosh/types';
|
|
4
5
|
type ResultHandler<EvaluationResultType> = (value: any) => EvaluationResultType | Promise<EvaluationResultType>;
|
|
5
6
|
declare class ShellEvaluator<EvaluationResultType = ShellResult> {
|
|
6
7
|
private instanceState;
|
|
7
8
|
private resultHandler;
|
|
8
9
|
private hasAppliedAsyncWriterRuntimeSupport;
|
|
9
10
|
private asyncWriter;
|
|
10
|
-
|
|
11
|
+
private markTime?;
|
|
12
|
+
constructor(instanceState: ShellInstanceState, resultHandler?: ResultHandler<EvaluationResultType>, markTime?: (category: TimingCategory, label: string) => void);
|
|
11
13
|
private innerEval;
|
|
12
14
|
customEval(originalEval: EvaluationFunction, input: string, context: object, filename: string): Promise<EvaluationResultType>;
|
|
13
15
|
}
|
package/lib/shell-evaluator.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.ShellEvaluator = void 0;
|
|
|
8
8
|
const shell_api_1 = require("@mongosh/shell-api");
|
|
9
9
|
const async_rewriter2_1 = __importDefault(require("@mongosh/async-rewriter2"));
|
|
10
10
|
const history_1 = require("@mongosh/history");
|
|
11
|
+
const types_1 = require("@mongosh/types");
|
|
11
12
|
let hasAlreadyRunGlobalRuntimeSupportEval = false;
|
|
12
13
|
let v8;
|
|
13
14
|
try {
|
|
@@ -22,15 +23,16 @@ if ((_b = (_a = v8 === null || v8 === void 0 ? void 0 : v8.startupSnapshot) ===
|
|
|
22
23
|
});
|
|
23
24
|
}
|
|
24
25
|
class ShellEvaluator {
|
|
25
|
-
constructor(instanceState, resultHandler = shell_api_1.toShellResult) {
|
|
26
|
+
constructor(instanceState, resultHandler = shell_api_1.toShellResult, markTime) {
|
|
26
27
|
this.hasAppliedAsyncWriterRuntimeSupport = true;
|
|
27
28
|
this.instanceState = instanceState;
|
|
28
29
|
this.resultHandler = resultHandler;
|
|
29
30
|
this.asyncWriter = new async_rewriter2_1.default();
|
|
30
31
|
this.hasAppliedAsyncWriterRuntimeSupport = false;
|
|
32
|
+
this.markTime = markTime;
|
|
31
33
|
}
|
|
32
34
|
async innerEval(originalEval, input, context, filename) {
|
|
33
|
-
var _a, _b, _c, _d, _e;
|
|
35
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
34
36
|
const { shellApi } = this.instanceState;
|
|
35
37
|
const trimmedInput = input.trim();
|
|
36
38
|
const argv = trimmedInput.replace(/;$/, '').split(/\s+/g);
|
|
@@ -45,7 +47,9 @@ class ShellEvaluator {
|
|
|
45
47
|
!((_e = argv[0]) !== null && _e !== void 0 ? _e : '').startsWith('(')) {
|
|
46
48
|
return shellApi[cmd](...argv);
|
|
47
49
|
}
|
|
50
|
+
(_f = this.markTime) === null || _f === void 0 ? void 0 : _f.call(this, types_1.TimingCategories.AsyncRewrite, 'start async rewrite');
|
|
48
51
|
let rewrittenInput = this.asyncWriter.process(input);
|
|
52
|
+
(_g = this.markTime) === null || _g === void 0 ? void 0 : _g.call(this, types_1.TimingCategories.AsyncRewrite, 'done async rewrite');
|
|
49
53
|
const hiddenCommands = RegExp(history_1.HIDDEN_COMMANDS, 'g');
|
|
50
54
|
if (!hiddenCommands.test(input) && !hiddenCommands.test(rewrittenInput)) {
|
|
51
55
|
this.instanceState.messageBus.emit('mongosh:evaluate-input', {
|
|
@@ -54,18 +58,24 @@ class ShellEvaluator {
|
|
|
54
58
|
}
|
|
55
59
|
if (!this.hasAppliedAsyncWriterRuntimeSupport) {
|
|
56
60
|
this.hasAppliedAsyncWriterRuntimeSupport = true;
|
|
61
|
+
(_h = this.markTime) === null || _h === void 0 ? void 0 : _h.call(this, types_1.TimingCategories.AsyncRewrite, 'start runtimeSupportCode processing');
|
|
57
62
|
const supportCode = this.asyncWriter.runtimeSupportCode();
|
|
58
63
|
if (!hasAlreadyRunGlobalRuntimeSupportEval) {
|
|
59
64
|
eval(supportCode);
|
|
60
65
|
}
|
|
66
|
+
(_j = this.markTime) === null || _j === void 0 ? void 0 : _j.call(this, types_1.TimingCategories.AsyncRewrite, 'done global runtimeSupportCode processing');
|
|
61
67
|
rewrittenInput = supportCode + ';\n' + rewrittenInput;
|
|
62
68
|
}
|
|
63
69
|
try {
|
|
70
|
+
(_k = this.markTime) === null || _k === void 0 ? void 0 : _k.call(this, types_1.TimingCategories.Eval, 'started evaluating processed code');
|
|
64
71
|
return await originalEval(rewrittenInput, context, filename);
|
|
65
72
|
}
|
|
66
73
|
catch (err) {
|
|
67
74
|
throw this.instanceState.transformError(err);
|
|
68
75
|
}
|
|
76
|
+
finally {
|
|
77
|
+
(_l = this.markTime) === null || _l === void 0 ? void 0 : _l.call(this, types_1.TimingCategories.Eval, 'finished evaluating processed code');
|
|
78
|
+
}
|
|
69
79
|
}
|
|
70
80
|
async customEval(originalEval, input, context, filename) {
|
|
71
81
|
const evaluationResult = await this.innerEval(originalEval, input, context, filename);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell-evaluator.js","sourceRoot":"","sources":["../src/shell-evaluator.ts"],"names":[],"mappings":";;;;;;;AACA,kDAI4B;AAC5B,+EAAmD;AAQnD,8CAAwE;
|
|
1
|
+
{"version":3,"file":"shell-evaluator.js","sourceRoot":"","sources":["../src/shell-evaluator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongosh/shell-evaluator",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.1.1",
|
|
4
4
|
"description": "MongoDB Top Level API Package",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -38,15 +38,16 @@
|
|
|
38
38
|
"@mongodb-js/eslint-config-mongosh": "^1.0.0",
|
|
39
39
|
"@mongodb-js/prettier-config-devtools": "^1.0.1",
|
|
40
40
|
"@mongodb-js/tsconfig-mongosh": "^1.0.0",
|
|
41
|
+
"@mongosh/types": "2.1.1",
|
|
41
42
|
"@types/sinon-chai": "^3.2.4",
|
|
42
43
|
"depcheck": "^1.4.3",
|
|
43
44
|
"eslint": "^7.25.0",
|
|
44
45
|
"prettier": "^2.8.8"
|
|
45
46
|
},
|
|
46
47
|
"dependencies": {
|
|
47
|
-
"@mongosh/async-rewriter2": "2.
|
|
48
|
-
"@mongosh/history": "2.
|
|
49
|
-
"@mongosh/shell-api": "2.
|
|
48
|
+
"@mongosh/async-rewriter2": "2.1.1",
|
|
49
|
+
"@mongosh/history": "2.1.1",
|
|
50
|
+
"@mongosh/shell-api": "2.1.1"
|
|
50
51
|
},
|
|
51
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "c7e70b65988d21c9020abf2bbd253a94b1d3316c"
|
|
52
53
|
}
|