micromark-util-events-to-acorn
micromark utility to try and parse events with acorn.
Contents
Install
This package is ESM only. In Node.js (version 16+), install with npm:
npm install micromark-util-events-to-acorn
In Deno with esm.sh
:
import {eventsToAcorn} from 'https://esm.sh/micromark-util-events-to-acorn@2'
In browsers with esm.sh
:
<script type="module">
import {eventsToAcorn} from 'https://esm.sh/micromark-util-events-to-acorn@2?bundle'
</script>
Use
import {eventsToAcorn} from 'micromark-util-events-to-acorn'
// A factory that uses the utility:
/** @type {Tokenizer} */
function factoryMdxExpression(effects, ok, nok) {
return start
// …
// …
// Gnostic mode: parse w/ acorn.
const result = eventsToAcorn(this.events.slice(eventStart), {
acorn,
acornOptions,
start: pointStart,
expression: true,
allowEmpty,
prefix: spread ? '({' : '',
suffix: spread ? '})' : ''
})
// …
// …
}
API
This module exports the identifier eventsToAcorn
. There is no default export.
The export map supports the development
condition. Run node --conditions development module.js
to get instrumented dev code. Without this condition, production code is loaded.
eventsToAcorn(events, options)
Parameters
events
(Array<Event>
) — eventsoptions
(Options
) — configuration (required)
Returns
Result (Result
).
Options
Configuration (TypeScript type).
Fields
acorn
(Acorn
, required) — typicallyacorn
, object withparse
andparseExpressionAt
fieldstokenTypes
(Array<TokenType>
], required) — names of (void) tokens to consider as data;'lineEnding'
is always includedacornOptions
(AcornOptions
, optional) — configuration foracorn
start
(Point
, optional, required ifallowEmpty
) — place where events startprefix
(string
, default:''
) — text to place before eventssuffix
(string
, default:''
) — text to place after eventsexpression
(boolean
, default:false
) — whether this is a program or expressionallowEmpty
(boolean
, default:false
) — whether an empty expression is allowed (programs are always allowed to be empty)
Result
Result (TypeScript type).
Fields
estree
(Program
orundefined
) — Programerror
(Error
orundefined
) — error if unparseableswallow
(boolean
) — whether the error, if there is one, can be swallowed and more JavaScript could be valid
Types
This package is fully typed with TypeScript. It exports the additional types Acorn
, AcornOptions
, Options
, and Result
.
Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, micromark-util-events-to-acorn@^2
, compatible with Node.js 16.
This package works with micromark
version 3
and later.
Security
This package is safe.
Contribute
See contributing.md
in micromark/.github
for ways to get started. See support.md
for ways to get help.
This project has a code of conduct. By interacting with this repository, organisation, or community you agree to abide by its terms.