micromark-factory-mdx-expression

micromark factory to parse MDX expressions (found in JSX attributes, flow, text)

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
micromark-factory-mdx-expression
2.0.18 months ago3 years agoMinified + gzip package size for micromark-factory-mdx-expression in KB

Readme

micromark-factory-mdx-expression
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgeopencollective !Backersbackers-badgeopencollective !Chatchat-badgechat
micromark 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.shesmsh:
import {factoryMdxExpression} from 'https://esm.sh/micromark-factory-mdx-expression@2'

In browsers with esm.shesmsh:
<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 identifier factoryMdxExpressionapi-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`
— 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 types Acornacorn and AcornOptionsacorn-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

See contributing.mdcontributing in micromark/.githubhealth for ways to get started. See support.mdsupport 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.

License

MITlicense © Titus Wormerauthor