@mongosh/autocomplete 1.6.0 → 1.6.2
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/lib/index.d.ts +3912 -2
- package/lib/index.js +10 -11
- package/lib/index.js.map +1 -1
- package/package.json +4 -4
- package/src/index.spec.ts +1 -1
- package/src/index.ts +29 -10
package/lib/index.js
CHANGED
|
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.MATCH_COMPLETIONS = exports.BASE_COMPLETIONS = void 0;
|
|
7
7
|
const shell_api_1 = require("@mongosh/shell-api");
|
|
8
8
|
const semver_1 = __importDefault(require("semver"));
|
|
9
|
-
const
|
|
10
|
-
exports.BASE_COMPLETIONS =
|
|
11
|
-
exports.MATCH_COMPLETIONS =
|
|
9
|
+
const mongodb_constants_1 = require("@mongodb-js/mongodb-constants");
|
|
10
|
+
exports.BASE_COMPLETIONS = [].concat(mongodb_constants_1.EXPRESSION_OPERATORS, mongodb_constants_1.CONVERSION_OPERATORS, mongodb_constants_1.BSON_TYPES, mongodb_constants_1.STAGE_OPERATORS);
|
|
11
|
+
exports.MATCH_COMPLETIONS = [].concat(mongodb_constants_1.QUERY_OPERATORS, mongodb_constants_1.BSON_TYPES);
|
|
12
12
|
const PROJECT = '$project';
|
|
13
13
|
const GROUP = '$group';
|
|
14
14
|
async function completer(params, line) {
|
|
@@ -69,7 +69,7 @@ async function completer(params, line) {
|
|
|
69
69
|
if (splitLine[2].includes('([') || splitLine[2].includes('({')) {
|
|
70
70
|
let expressions;
|
|
71
71
|
if (splitLine[2].match(/\baggregate\b/)) {
|
|
72
|
-
expressions = exports.BASE_COMPLETIONS
|
|
72
|
+
expressions = [].concat(exports.BASE_COMPLETIONS, getStageAccumulators(params, elToComplete));
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
75
|
expressions = exports.MATCH_COMPLETIONS;
|
|
@@ -112,22 +112,21 @@ function isAcceptable(params, entry, versionKey) {
|
|
|
112
112
|
}
|
|
113
113
|
const isAcceptableEnvironment = !entry.env ||
|
|
114
114
|
!connectionInfo ||
|
|
115
|
-
(connectionInfo.is_data_federation ? entry.env.includes(
|
|
116
|
-
connectionInfo.is_atlas ? entry.env.includes(
|
|
117
|
-
entry.env.includes(
|
|
115
|
+
(connectionInfo.is_data_federation ? entry.env.includes(mongodb_constants_1.ADL) :
|
|
116
|
+
connectionInfo.is_atlas ? entry.env.includes(mongodb_constants_1.ATLAS) :
|
|
117
|
+
entry.env.includes(mongodb_constants_1.ON_PREM));
|
|
118
118
|
return isAcceptableVersion && isAcceptableEnvironment;
|
|
119
119
|
}
|
|
120
120
|
function getStageAccumulators(params, stage) {
|
|
121
|
-
if (stage !== '')
|
|
122
|
-
return [];
|
|
123
121
|
if (stage.includes(PROJECT)) {
|
|
124
|
-
return
|
|
122
|
+
return mongodb_constants_1.ACCUMULATORS.filter((acc) => {
|
|
125
123
|
return isAcceptable(params, acc, 'projectVersion');
|
|
126
124
|
});
|
|
127
125
|
}
|
|
128
126
|
else if (stage.includes(GROUP)) {
|
|
129
|
-
return
|
|
127
|
+
return mongodb_constants_1.ACCUMULATORS;
|
|
130
128
|
}
|
|
129
|
+
return [];
|
|
131
130
|
}
|
|
132
131
|
function filterQueries(params, completions, prefix, split) {
|
|
133
132
|
const hits = completions.filter((e) => {
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,kDAA8F;AAC9F,oDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mongosh/autocomplete",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.2",
|
|
4
4
|
"description": "MongoDB Shell Autocomplete Package",
|
|
5
5
|
"homepage": "https://github.com/mongodb-js/mongosh",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"mocha": "^7.1.2"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@
|
|
35
|
-
"
|
|
34
|
+
"@mongodb-js/mongodb-constants": "^0.1.0",
|
|
35
|
+
"@mongosh/shell-api": "1.6.2",
|
|
36
36
|
"semver": "^7.3.2"
|
|
37
37
|
},
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "a825d141aa5f25d90d915c9048e9c5277027ae9e"
|
|
39
39
|
}
|
package/src/index.spec.ts
CHANGED
|
@@ -165,7 +165,7 @@ describe('completer.completer', () => {
|
|
|
165
165
|
// Undo https://github.com/mongodb-js/ace-autocompleter/pull/65 for testing
|
|
166
166
|
// because it's the only DataLake-only feature.
|
|
167
167
|
origBaseCompletions = [...BASE_COMPLETIONS];
|
|
168
|
-
BASE_COMPLETIONS.push({
|
|
168
|
+
(BASE_COMPLETIONS as any).push({
|
|
169
169
|
name: '$sql',
|
|
170
170
|
value: '$sql',
|
|
171
171
|
label: '$sql',
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
ATLAS,
|
|
13
13
|
ADL,
|
|
14
14
|
ON_PREM
|
|
15
|
-
} from 'mongodb-
|
|
15
|
+
} from '@mongodb-js/mongodb-constants';
|
|
16
16
|
|
|
17
17
|
type TypeSignatureAttributes = { [key: string]: TypeSignature };
|
|
18
18
|
|
|
@@ -28,11 +28,26 @@ export interface AutocompleteParameters {
|
|
|
28
28
|
getDatabaseCompletions: (dbName: string) => string[] | Promise<string[]>;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
CONVERSION_OPERATORS
|
|
31
|
+
type AnyCompletions = readonly (
|
|
32
|
+
| typeof CONVERSION_OPERATORS[number]
|
|
33
|
+
| typeof EXPRESSION_OPERATORS[number]
|
|
34
|
+
| typeof STAGE_OPERATORS[number]
|
|
35
|
+
| typeof QUERY_OPERATORS[number]
|
|
36
|
+
| typeof ACCUMULATORS[number]
|
|
37
|
+
| typeof BSON_TYPES[number]
|
|
38
|
+
)[];
|
|
39
|
+
|
|
40
|
+
export const BASE_COMPLETIONS = ([] as AnyCompletions).concat(
|
|
41
|
+
EXPRESSION_OPERATORS,
|
|
42
|
+
CONVERSION_OPERATORS,
|
|
43
|
+
BSON_TYPES,
|
|
44
|
+
STAGE_OPERATORS
|
|
33
45
|
);
|
|
34
46
|
|
|
35
|
-
export const MATCH_COMPLETIONS =
|
|
47
|
+
export const MATCH_COMPLETIONS = ([] as AnyCompletions).concat(
|
|
48
|
+
QUERY_OPERATORS,
|
|
49
|
+
BSON_TYPES
|
|
50
|
+
);
|
|
36
51
|
|
|
37
52
|
/**
|
|
38
53
|
* The project stage operator.
|
|
@@ -139,8 +154,10 @@ async function completer(params: AutocompleteParameters, line: string): Promise<
|
|
|
139
154
|
let expressions;
|
|
140
155
|
if (splitLine[2].match(/\baggregate\b/)) {
|
|
141
156
|
// aggregation needs extra accumulators to autocomplete properly
|
|
142
|
-
expressions =
|
|
143
|
-
|
|
157
|
+
expressions = ([] as AnyCompletions).concat(
|
|
158
|
+
BASE_COMPLETIONS,
|
|
159
|
+
getStageAccumulators(params, elToComplete)
|
|
160
|
+
);
|
|
144
161
|
} else {
|
|
145
162
|
// collection querying just needs MATCH COMPLETIONS
|
|
146
163
|
expressions = MATCH_COMPLETIONS;
|
|
@@ -199,16 +216,18 @@ function isAcceptable(
|
|
|
199
216
|
}
|
|
200
217
|
|
|
201
218
|
// stage completions based on current stage string.
|
|
202
|
-
function getStageAccumulators(
|
|
203
|
-
|
|
204
|
-
|
|
219
|
+
function getStageAccumulators(
|
|
220
|
+
params: AutocompleteParameters,
|
|
221
|
+
stage: string
|
|
222
|
+
): readonly typeof ACCUMULATORS[number][] {
|
|
205
223
|
if (stage.includes(PROJECT)) {
|
|
206
|
-
return ACCUMULATORS.filter((acc
|
|
224
|
+
return ACCUMULATORS.filter((acc) => {
|
|
207
225
|
return isAcceptable(params, acc, 'projectVersion');
|
|
208
226
|
});
|
|
209
227
|
} else if (stage.includes(GROUP)) {
|
|
210
228
|
return ACCUMULATORS;
|
|
211
229
|
}
|
|
230
|
+
return [];
|
|
212
231
|
}
|
|
213
232
|
|
|
214
233
|
function filterQueries(params: AutocompleteParameters, completions: any, prefix: string, split: string): string[] {
|