biome_js_parser 0.5.7

Biome's JavaScript parser
Documentation
JsModule {
    bom_token: missing (optional),
    interpreter_token: missing (optional),
    directives: JsDirectiveList [],
    items: JsModuleItemList [
        JsImport {
            import_token: IMPORT_KW@0..7 "import" [] [Whitespace(" ")],
            import_clause: JsImportBareClause {
                source: JsModuleSource {
                    value_token: JS_STRING_LITERAL@7..11 "\"x\"" [] [Whitespace(" ")],
                },
                assertion: JsImportAssertion {
                    assertion_kind: WITH_KW@11..16 "with" [] [Whitespace(" ")],
                    l_curly_token: L_CURLY@16..18 "{" [] [Whitespace(" ")],
                    assertions: JsImportAssertionEntryList [
                        JsImportAssertionEntry {
                            key: IDENT@18..22 "type" [] [],
                            colon_token: COLON@22..24 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@24..31 "\"json\"" [] [Whitespace(" ")],
                        },
                    ],
                    r_curly_token: R_CURLY@31..32 "}" [] [],
                },
            },
            semicolon_token: missing (optional),
        },
        JsImport {
            import_token: IMPORT_KW@32..40 "import" [Newline("\n")] [Whitespace(" ")],
            import_clause: JsImportBareClause {
                source: JsModuleSource {
                    value_token: JS_STRING_LITERAL@40..46 "\"foo\"" [] [Whitespace(" ")],
                },
                assertion: JsImportAssertion {
                    assertion_kind: WITH_KW@46..51 "with" [] [Whitespace(" ")],
                    l_curly_token: L_CURLY@51..53 "{" [] [Whitespace(" ")],
                    assertions: JsImportAssertionEntryList [
                        JsImportAssertionEntry {
                            key: JS_STRING_LITERAL@53..59 "\"type\"" [] [],
                            colon_token: COLON@59..61 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@61..68 "\"json\"" [] [Whitespace(" ")],
                        },
                    ],
                    r_curly_token: R_CURLY@68..69 "}" [] [],
                },
            },
            semicolon_token: SEMICOLON@69..70 ";" [] [],
        },
        JsImport {
            import_token: IMPORT_KW@70..78 "import" [Newline("\n")] [Whitespace(" ")],
            import_clause: JsImportDefaultClause {
                type_token: missing (optional),
                default_specifier: JsDefaultImportSpecifier {
                    local_name: JsIdentifierBinding {
                        name_token: IDENT@78..82 "foo" [] [Whitespace(" ")],
                    },
                },
                from_token: FROM_KW@82..87 "from" [] [Whitespace(" ")],
                source: JsModuleSource {
                    value_token: JS_STRING_LITERAL@87..98 "\"foo.json\"" [] [Whitespace(" ")],
                },
                assertion: JsImportAssertion {
                    assertion_kind: WITH_KW@98..103 "with" [] [Whitespace(" ")],
                    l_curly_token: L_CURLY@103..105 "{" [] [Whitespace(" ")],
                    assertions: JsImportAssertionEntryList [
                        JsImportAssertionEntry {
                            key: IDENT@105..109 "type" [] [],
                            colon_token: COLON@109..111 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@111..118 "\"json\"" [] [Whitespace(" ")],
                        },
                    ],
                    r_curly_token: R_CURLY@118..119 "}" [] [],
                },
            },
            semicolon_token: SEMICOLON@119..120 ";" [] [],
        },
        JsImport {
            import_token: IMPORT_KW@120..128 "import" [Newline("\n")] [Whitespace(" ")],
            import_clause: JsImportNamedClause {
                type_token: missing (optional),
                named_specifiers: JsNamedImportSpecifiers {
                    l_curly_token: L_CURLY@128..129 "{" [] [],
                    specifiers: JsNamedImportSpecifierList [
                        JsShorthandNamedImportSpecifier {
                            type_token: missing (optional),
                            local_name: JsIdentifierBinding {
                                name_token: IDENT@129..133 "test" [] [],
                            },
                        },
                    ],
                    r_curly_token: R_CURLY@133..135 "}" [] [Whitespace(" ")],
                },
                from_token: FROM_KW@135..140 "from" [] [Whitespace(" ")],
                source: JsModuleSource {
                    value_token: JS_STRING_LITERAL@140..151 "\"foo.json\"" [] [Whitespace(" ")],
                },
                assertion: JsImportAssertion {
                    assertion_kind: WITH_KW@151..156 "with" [] [Whitespace(" ")],
                    l_curly_token: L_CURLY@156..158 "{" [] [Whitespace(" ")],
                    assertions: JsImportAssertionEntryList [
                        JsImportAssertionEntry {
                            key: IDENT@158..161 "for" [] [],
                            colon_token: COLON@161..163 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@163..169 "\"for\"" [] [Whitespace(" ")],
                        },
                    ],
                    r_curly_token: R_CURLY@169..170 "}" [] [],
                },
            },
            semicolon_token: missing (optional),
        },
        JsImport {
            import_token: IMPORT_KW@170..178 "import" [Newline("\n")] [Whitespace(" ")],
            import_clause: JsImportDefaultClause {
                type_token: missing (optional),
                default_specifier: JsDefaultImportSpecifier {
                    local_name: JsIdentifierBinding {
                        name_token: IDENT@178..187 "foo_json" [] [Whitespace(" ")],
                    },
                },
                from_token: FROM_KW@187..192 "from" [] [Whitespace(" ")],
                source: JsModuleSource {
                    value_token: JS_STRING_LITERAL@192..203 "\"foo.json\"" [] [Whitespace(" ")],
                },
                assertion: JsImportAssertion {
                    assertion_kind: WITH_KW@203..208 "with" [] [Whitespace(" ")],
                    l_curly_token: L_CURLY@208..210 "{" [] [Whitespace(" ")],
                    assertions: JsImportAssertionEntryList [
                        JsImportAssertionEntry {
                            key: IDENT@210..214 "type" [] [],
                            colon_token: COLON@214..216 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@216..222 "\"json\"" [] [],
                        },
                        COMMA@222..224 "," [] [Whitespace(" ")],
                        JsImportAssertionEntry {
                            key: IDENT@224..238 "hasOwnProperty" [] [],
                            colon_token: COLON@238..240 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@240..247 "\"true\"" [] [Whitespace(" ")],
                        },
                    ],
                    r_curly_token: R_CURLY@247..248 "}" [] [],
                },
            },
            semicolon_token: SEMICOLON@248..249 ";" [] [],
        },
        JsImport {
            import_token: IMPORT_KW@249..257 "import" [Newline("\n")] [Whitespace(" ")],
            import_clause: JsImportBareClause {
                source: JsModuleSource {
                    value_token: JS_STRING_LITERAL@257..261 "\"x\"" [] [Whitespace(" ")],
                },
                assertion: JsImportAssertion {
                    assertion_kind: WITH_KW@261..265 "with" [] [],
                    l_curly_token: L_CURLY@265..268 "{" [Newline("\n")] [Whitespace(" ")],
                    assertions: JsImportAssertionEntryList [
                        JsImportAssertionEntry {
                            key: IDENT@268..272 "type" [] [],
                            colon_token: COLON@272..274 ":" [] [Whitespace(" ")],
                            value_token: JS_STRING_LITERAL@274..281 "\"json\"" [] [Whitespace(" ")],
                        },
                    ],
                    r_curly_token: R_CURLY@281..282 "}" [] [],
                },
            },
            semicolon_token: missing (optional),
        },
    ],
    eof_token: EOF@282..283 "" [Newline("\n")] [],
}

0: JS_MODULE@0..283
  0: (empty)
  1: (empty)
  2: JS_DIRECTIVE_LIST@0..0
  3: JS_MODULE_ITEM_LIST@0..282
    0: JS_IMPORT@0..32
      0: IMPORT_KW@0..7 "import" [] [Whitespace(" ")]
      1: JS_IMPORT_BARE_CLAUSE@7..32
        0: JS_MODULE_SOURCE@7..11
          0: JS_STRING_LITERAL@7..11 "\"x\"" [] [Whitespace(" ")]
        1: JS_IMPORT_ASSERTION@11..32
          0: WITH_KW@11..16 "with" [] [Whitespace(" ")]
          1: L_CURLY@16..18 "{" [] [Whitespace(" ")]
          2: JS_IMPORT_ASSERTION_ENTRY_LIST@18..31
            0: JS_IMPORT_ASSERTION_ENTRY@18..31
              0: IDENT@18..22 "type" [] []
              1: COLON@22..24 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@24..31 "\"json\"" [] [Whitespace(" ")]
          3: R_CURLY@31..32 "}" [] []
      2: (empty)
    1: JS_IMPORT@32..70
      0: IMPORT_KW@32..40 "import" [Newline("\n")] [Whitespace(" ")]
      1: JS_IMPORT_BARE_CLAUSE@40..69
        0: JS_MODULE_SOURCE@40..46
          0: JS_STRING_LITERAL@40..46 "\"foo\"" [] [Whitespace(" ")]
        1: JS_IMPORT_ASSERTION@46..69
          0: WITH_KW@46..51 "with" [] [Whitespace(" ")]
          1: L_CURLY@51..53 "{" [] [Whitespace(" ")]
          2: JS_IMPORT_ASSERTION_ENTRY_LIST@53..68
            0: JS_IMPORT_ASSERTION_ENTRY@53..68
              0: JS_STRING_LITERAL@53..59 "\"type\"" [] []
              1: COLON@59..61 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@61..68 "\"json\"" [] [Whitespace(" ")]
          3: R_CURLY@68..69 "}" [] []
      2: SEMICOLON@69..70 ";" [] []
    2: JS_IMPORT@70..120
      0: IMPORT_KW@70..78 "import" [Newline("\n")] [Whitespace(" ")]
      1: JS_IMPORT_DEFAULT_CLAUSE@78..119
        0: (empty)
        1: JS_DEFAULT_IMPORT_SPECIFIER@78..82
          0: JS_IDENTIFIER_BINDING@78..82
            0: IDENT@78..82 "foo" [] [Whitespace(" ")]
        2: FROM_KW@82..87 "from" [] [Whitespace(" ")]
        3: JS_MODULE_SOURCE@87..98
          0: JS_STRING_LITERAL@87..98 "\"foo.json\"" [] [Whitespace(" ")]
        4: JS_IMPORT_ASSERTION@98..119
          0: WITH_KW@98..103 "with" [] [Whitespace(" ")]
          1: L_CURLY@103..105 "{" [] [Whitespace(" ")]
          2: JS_IMPORT_ASSERTION_ENTRY_LIST@105..118
            0: JS_IMPORT_ASSERTION_ENTRY@105..118
              0: IDENT@105..109 "type" [] []
              1: COLON@109..111 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@111..118 "\"json\"" [] [Whitespace(" ")]
          3: R_CURLY@118..119 "}" [] []
      2: SEMICOLON@119..120 ";" [] []
    3: JS_IMPORT@120..170
      0: IMPORT_KW@120..128 "import" [Newline("\n")] [Whitespace(" ")]
      1: JS_IMPORT_NAMED_CLAUSE@128..170
        0: (empty)
        1: JS_NAMED_IMPORT_SPECIFIERS@128..135
          0: L_CURLY@128..129 "{" [] []
          1: JS_NAMED_IMPORT_SPECIFIER_LIST@129..133
            0: JS_SHORTHAND_NAMED_IMPORT_SPECIFIER@129..133
              0: (empty)
              1: JS_IDENTIFIER_BINDING@129..133
                0: IDENT@129..133 "test" [] []
          2: R_CURLY@133..135 "}" [] [Whitespace(" ")]
        2: FROM_KW@135..140 "from" [] [Whitespace(" ")]
        3: JS_MODULE_SOURCE@140..151
          0: JS_STRING_LITERAL@140..151 "\"foo.json\"" [] [Whitespace(" ")]
        4: JS_IMPORT_ASSERTION@151..170
          0: WITH_KW@151..156 "with" [] [Whitespace(" ")]
          1: L_CURLY@156..158 "{" [] [Whitespace(" ")]
          2: JS_IMPORT_ASSERTION_ENTRY_LIST@158..169
            0: JS_IMPORT_ASSERTION_ENTRY@158..169
              0: IDENT@158..161 "for" [] []
              1: COLON@161..163 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@163..169 "\"for\"" [] [Whitespace(" ")]
          3: R_CURLY@169..170 "}" [] []
      2: (empty)
    4: JS_IMPORT@170..249
      0: IMPORT_KW@170..178 "import" [Newline("\n")] [Whitespace(" ")]
      1: JS_IMPORT_DEFAULT_CLAUSE@178..248
        0: (empty)
        1: JS_DEFAULT_IMPORT_SPECIFIER@178..187
          0: JS_IDENTIFIER_BINDING@178..187
            0: IDENT@178..187 "foo_json" [] [Whitespace(" ")]
        2: FROM_KW@187..192 "from" [] [Whitespace(" ")]
        3: JS_MODULE_SOURCE@192..203
          0: JS_STRING_LITERAL@192..203 "\"foo.json\"" [] [Whitespace(" ")]
        4: JS_IMPORT_ASSERTION@203..248
          0: WITH_KW@203..208 "with" [] [Whitespace(" ")]
          1: L_CURLY@208..210 "{" [] [Whitespace(" ")]
          2: JS_IMPORT_ASSERTION_ENTRY_LIST@210..247
            0: JS_IMPORT_ASSERTION_ENTRY@210..222
              0: IDENT@210..214 "type" [] []
              1: COLON@214..216 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@216..222 "\"json\"" [] []
            1: COMMA@222..224 "," [] [Whitespace(" ")]
            2: JS_IMPORT_ASSERTION_ENTRY@224..247
              0: IDENT@224..238 "hasOwnProperty" [] []
              1: COLON@238..240 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@240..247 "\"true\"" [] [Whitespace(" ")]
          3: R_CURLY@247..248 "}" [] []
      2: SEMICOLON@248..249 ";" [] []
    5: JS_IMPORT@249..282
      0: IMPORT_KW@249..257 "import" [Newline("\n")] [Whitespace(" ")]
      1: JS_IMPORT_BARE_CLAUSE@257..282
        0: JS_MODULE_SOURCE@257..261
          0: JS_STRING_LITERAL@257..261 "\"x\"" [] [Whitespace(" ")]
        1: JS_IMPORT_ASSERTION@261..282
          0: WITH_KW@261..265 "with" [] []
          1: L_CURLY@265..268 "{" [Newline("\n")] [Whitespace(" ")]
          2: JS_IMPORT_ASSERTION_ENTRY_LIST@268..281
            0: JS_IMPORT_ASSERTION_ENTRY@268..281
              0: IDENT@268..272 "type" [] []
              1: COLON@272..274 ":" [] [Whitespace(" ")]
              2: JS_STRING_LITERAL@274..281 "\"json\"" [] [Whitespace(" ")]
          3: R_CURLY@281..282 "}" [] []
      2: (empty)
  4: EOF@282..283 "" [Newline("\n")] []