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}