scan/
scan.rs

1use simple_json_parser::{parse, JSONParseError};
2
3fn main() {
4    let base = r#"{
5        "name": "ezno",
6        "version": "0.0.14",
7        "description": "A JavaScript compiler and TypeScript checker written in Rust with a focus on static analysis and runtime performance",
8        "license": "MIT",
9        "repository": "https://github.com/kaleidawave/ezno",
10        "main": "./dist/index.mjs",
11        "module": "./dist/index.mjs",
12        "type": "module",
13        "exports": {
14            ".": {
15                "import": "./dist/index.mjs"
16            },
17            "./initialised": {
18                "import": "./dist/initialised.mjs"
19            }
20        },
21        "scripts": {
22            "clean": "rmdir dist && rmdir build",
23            "build": "cargo build --lib --target wasm32-unknown-unknown && npm run bind && npm run build-js",
24            "build-release": "cargo build --lib --release --target wasm32-unknown-unknown && npm run bind-release && npm run build-js",
25            "bind": "wasm-bindgen --out-dir build --target web ../../target/wasm32-unknown-unknown/debug/ezno_lib.wasm",
26            "bind-release": "wasm-bindgen --out-dir build --target web ../../target/wasm32-unknown-unknown/release/ezno_lib.wasm",
27            "build-js": "unbuild && cp ./build/ezno_lib_bg.wasm dist/shared && cp src/cli_node.cjs dist/cli.cjs",
28            "test": "npm run build && npm run run-tests",
29            "run-tests": "node test.mjs && deno run -A test.mjs"
30        },
31        "keywords": [
32            "typescript",
33            "checker",
34            "type-checker",
35            "compiler"
36        ],
37        "files": [
38            "dist"
39        ],
40        "bin": {
41            "ezno": "./dist/cli.mjs"
42        },
43        "author": {
44            "name": "Ben",
45            "email": "kaleidawave@gmail.com",
46            "url": "https://kaleidawave.github.io/"
47        },
48        "funding": {
49            "type": "individual",
50            /*
51                multiline comment
52             */
53            "url": "https://github.com/sponsors/kaleidawave"
54        },
55        "build": {
56            "failOnWarn": false,
57            "entries": [
58                {
59                    "builder": "rollup",
60                    "input": "./src/index"
61                },
62                {
63                    "builder": "rollup",
64                    "input": "./src/initialised"
65                },
66                {
67                    "builder": "rollup",
68                    "input": "./src/cli"
69                }
70            ],
71            // some comment
72            "rollup": {
73                "commonjs": true,
74                "esbuild": {
75                    "target": "esnext"
76                }
77            }
78        },
79        "devDependencies": {
80            "unbuild": "^1.1.2"
81        }
82    }"#;
83
84    let content = if let Some(path) = std::env::args().nth(1) {
85        std::fs::read_to_string(path).unwrap()
86    } else {
87        base.to_owned()
88    };
89
90    let result = parse(&content, |keys, value| eprintln!("{keys:?} -> {value:?}"));
91
92    if let Err(JSONParseError { at, reason }) = result {
93        eprintln!("{reason:?} @ {at}");
94    }
95}