+2296
-1332
lines changedFilter options
+2296
-1332
lines changed Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@ Try it out on the online playground: <https://jsonquerylang.org>
10
10
11
11
## Features
12
12
13
-
- Small: just `2.9 kB` when minified and gzipped! The JSON query engine without parse/stringify is only `1.3 kB`.
13
+
- Small: just `3.0 kB` when minified and gzipped! The JSON query engine without parse/stringify is only `1.4 kB`.
14
14
- Feature rich (40+ powerful functions)
15
15
- Easy to interoperate with thanks to the intermediate JSON format.
16
16
- Expressive
@@ -34,6 +34,7 @@ On this page:
34
34
External pages:
35
35
36
36
- [Function reference](reference/functions.md)
37
+
- [Test Suite](test-suite/README.md)
37
38
38
39
## Installation
39
40
@@ -623,7 +624,9 @@ Another gotcha is that unlike some other query languages, you need to use the `m
623
624
624
625
## Development
625
626
626
-
To develop, check out the repo, install dependencies once, and then use the following scripts:
627
+
### JavaScript
628
+
629
+
To develop, check out the JavaScript repo, install dependencies once, and then use the following scripts:
627
630
628
631
```text
629
632
npm run test
@@ -637,6 +640,12 @@ npm run build-and-test
637
640
638
641
Note that a new package is published on [npm](https://www.npmjs.com/package/@jsonquerylang/jsonquery) and [GitHub](https://github.com/jsonquerylang/jsonquery/releases) on changes pushed to the `main` branch. This is done using [`semantic-release`](https://github.com/semantic-release/semantic-release), and we do not use the `version` number in the `package.json` file. A changelog can be found by looking at the [releases on GitHub](https://github.com/jsonquerylang/jsonquery/releases).
639
642
643
+
### Implement in a new language
644
+
645
+
Support for JSON Query language can be implemented in new programming languages. Implementing the query engine is most straight forward: this boils down to implementing each of the functions (`sort`, `filter`, `groupBy`, etc.), and creating a compiler which can go through a JSON Query like `["sort", ["get", "name"], "desc"]` look up the function `sort`, and pass the arguments to it. Implementing a parser and stringifier is a bit more work, but the parser and stringifier of the JavaScript implementation can be used as a reference.
646
+
647
+
There is a JSON based Test Suite available that can be used to ensure that your implementation matches the behavior of the reference implementation, see: [Test Suite](test-suite/README.md).
648
+
640
649
## Motivation
641
650
642
651
There are many powerful query languages out there, so why the need to develop `jsonquery`? There are a couple of reasons for this.
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@
55
55
"devDependencies": {
56
56
"@biomejs/biome": "1.9.3",
57
57
"@vitest/coverage-v8": "2.1.2",
58
+
"ajv": "8.17.1",
58
59
"npm-run-all": "4.1.5",
59
60
"semantic-release": "24.1.2",
60
61
"typescript": "5.6.3",
You can’t perform that action at this time.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4