Skip to content
This repository was archived by the owner on Jul 9, 2024. It is now read-only.

Commit e9a2d9e

Browse files
authored
Point to moved repo in README.md (#200)
1 parent 5c7f5d6 commit e9a2d9e

File tree

1 file changed

+3
-82
lines changed

1 file changed

+3
-82
lines changed

README.md

+3-82
Original file line numberDiff line numberDiff line change
@@ -1,84 +1,5 @@
11
# ejson-shell-parser
22

3-
Parses valid MongoDB EJSON Shell queries.
4-
This library does not validate that these queries are correct. It's focus is on parsing untrusted input. You may wish to use something like https://github.com/mongodb-js/mongodb-language-model to achieve this.
5-
6-
This library creates an AST from the proposed input, and then traverses this AST to check if it looks like a valid MongoDB query. If it does, the library will then evaluate the code to produce the parsed query.
7-
8-
This library currently supports three different modes for parsing queries:
9-
10-
**strict**: [default] Disallows comments and calling methods
11-
12-
```javascript
13-
import parse from 'ejson-shell-parser';
14-
15-
const query = parse(
16-
`{
17-
_id: ObjectID("132323"),
18-
simpleCalc: 6,
19-
date: new Date(1578974885017)
20-
}`,
21-
{ mode: 'strict' }
22-
);
23-
24-
/*
25-
query = { _id: ObjectID("132323"), simpleCalc: 6, date: Date('1578974885017') }
26-
*/
27-
```
28-
29-
**weak**: Disallows comments, allows calling methods
30-
31-
```javascript
32-
import parse from 'ejson-shell-parser';
33-
34-
const query = parse(
35-
`{
36-
_id: ObjectID("132323"),
37-
simpleCalc: Math.max(1,2,3) * Math.min(4,3,2)
38-
}`,
39-
{ mode: 'weak' }
40-
);
41-
42-
/*
43-
query = { _id: ObjectID("132323"), simpleCalc: 6 }
44-
*/
45-
```
46-
47-
**loose**: Supports calling methods on Math, Date and ISODate, allows comments
48-
49-
```javascript
50-
import parse from 'ejson-shell-parser';
51-
52-
const query = parse(
53-
`{
54-
_id: ObjectID("132323"), // a helpful comment
55-
simpleCalc: Math.max(1,2,3) * Math.min(4,3,2)
56-
}`,
57-
{ mode: 'loose' }
58-
);
59-
60-
/*
61-
query = { _id: ObjectID("132323"), simpleCalc: 6 }
62-
*/
63-
```
64-
65-
The options object passed into parse has the following parameters:
66-
67-
```javascript
68-
{
69-
mode: ('loose' || 'weak' || 'strict') // Will assign (allowMethods & allowComments) for you
70-
allowMethods: true, // Allow function calls, ie Date.now(), Math.Max(), (new Date()).getFullYear()
71-
allowComments: true, // Allow comments (// and /* */)
72-
}
73-
```
74-
75-
The flags can be set to override the default value from a given mode, ie:
76-
77-
```javascript
78-
{
79-
mode: 'strict',
80-
allowComments: true
81-
}
82-
```
83-
84-
This options object will disallow method calls, but will allow comments
3+
> [!IMPORTANT]
4+
> This package has been moved to https://github.com/mongodb-js/devtools-shared/tree/main/packages/shell-bson-parser
5+
> and renamed to `@mongodb-js/shell-bson-parser`.

0 commit comments

Comments
 (0)