micromark-factory-mdx-expression
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgeopencollective
!Backersbackers-badgeopencollective
!Chatchat-badgechatmicromark factory to parse MDX expressions (found in JSX attributes, flow, text).
Contents
* [`factoryMdxExpression(…)`](#factorymdxexpression)
Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install micromark-factory-mdx-expression
In Deno with
esm.sh
esmsh:import {factoryMdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@2'
In browsers with
esm.sh
esmsh:<script type="module">
import {factoryMdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@2?bundle'
</script>
Use
import {ok as assert} from 'devlop'
import {factoryMdxExpression} from 'micromark-factory-mdx-expression'
import {codes} from 'micromark-util-symbol'
// A micromark tokenizer that uses the factory:
/** @type {Tokenizer} */
function tokenizeFlowExpression(effects, ok, nok) {
return start
// …
/** @type {State} */
function start(code) {
assert(code === codes.leftCurlyBrace, 'expected `{`')
return factoryMdxExpression.call(
self,
effects,
factorySpace(effects, after, types.whitespace),
'mdxFlowExpression',
'mdxFlowExpressionMarker',
'mdxFlowExpressionChunk',
acorn,
acornOptions,
addResult,
spread,
allowEmpty
)(code)
}
// …
}
API
This module exports the identifierfactoryMdxExpression
api-factory-mdx-expression.
There is no default export.The export map supports the
development
conditiondevelopment.
Run node --conditions development module.js
to get instrumented dev code.
Without this condition, production code is loaded.factoryMdxExpression(…)
Parameters
effects
(Effects
)
— context
ok
(State
)
— state switched to when successful
type
(string
)
— token type for whole (`{}`)
markerType
(string
)
— token type for the markers (`{`, `}`)
chunkType
(string
)
— token type for the value (`1`)
acorn
(Acorn
)
— object with `acorn.parse` and `acorn.parseExpressionAt`
acornOptions
(AcornOptions
acorn-options)
— configuration for acorn
boolean
(addResult
, default:false
)
— add `estree` to token
boolean
(spread
, default:false
)
— support a spread (`{...a}`) only
boolean
(allowEmpty
, default:false
)
— support an empty expression
boolean
(allowLazy
, default:false
)
— support lazy continuation of an expression
Returns
State
.Types
This package is fully typed with TypeScript. It exports the additional typesAcorn
acorn and
AcornOptions
acorn-options.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-factory-mdx-expression@^2
, compatible with Node.js 16.This package works with
micromark
version 3
and later.Security
This package is safe.Contribute
Seecontributing.md
contributing in micromark/.github
health for ways
to get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organisation, or community you agree to abide by its terms.