diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_utils/hast.rs | 7 | ||||
| -rw-r--r-- | tests/test_utils/hast_util_to_swc.rs (renamed from tests/test_utils/to_swc.rs) | 33 | ||||
| -rw-r--r-- | tests/test_utils/mdast_util_to_hast.rs (renamed from tests/test_utils/to_hast.rs) | 30 | ||||
| -rw-r--r-- | tests/test_utils/mdx_plugin_recma_document.rs (renamed from tests/test_utils/to_document.rs) | 11 | ||||
| -rw-r--r-- | tests/test_utils/mdx_plugin_recma_jsx_rewrite.rs (renamed from tests/test_utils/jsx_rewrite.rs) | 11 | ||||
| -rw-r--r-- | tests/test_utils/micromark_swc_utils.rs | 134 | ||||
| -rw-r--r-- | tests/test_utils/mod.rs | 9 | ||||
| -rw-r--r-- | tests/test_utils/swc.rs | 5 | ||||
| -rw-r--r-- | tests/test_utils/swc_utils.rs | 138 | ||||
| -rw-r--r-- | tests/xxx_hast_util_to_swc.rs (renamed from tests/xxx_swc.rs) | 48 | ||||
| -rw-r--r-- | tests/xxx_mdast_util_to_hast.rs (renamed from tests/xxx_hast.rs) | 86 | ||||
| -rw-r--r-- | tests/xxx_mdx_plugin_recma_document.rs (renamed from tests/xxx_document.rs) | 14 | ||||
| -rw-r--r-- | tests/xxx_mdx_plugin_recma_jsx_rewrite.rs (renamed from tests/xxx_jsx_rewrite.rs) | 18 | 
13 files changed, 304 insertions, 240 deletions
| diff --git a/tests/test_utils/hast.rs b/tests/test_utils/hast.rs index db5326c..bc8f472 100644 --- a/tests/test_utils/hast.rs +++ b/tests/test_utils/hast.rs @@ -1,6 +1,9 @@ -#![allow(dead_code)] +//! HTML syntax tree: [hast][]. +//! +//! [hast]: https://github.com/syntax-tree/hast -// ^-- To do: fix later +#![allow(dead_code)] +// ^-- To do: externalize.  extern crate alloc;  extern crate micromark; diff --git a/tests/test_utils/to_swc.rs b/tests/test_utils/hast_util_to_swc.rs index 02de514..a4bb9b9 100644 --- a/tests/test_utils/to_swc.rs +++ b/tests/test_utils/hast_util_to_swc.rs @@ -1,10 +1,37 @@ +//! Turn an HTML AST into a JavaScript AST. +//! +//! Port of <https://github.com/syntax-tree/hast-util-to-estree>, by the same +//! author: +//! +//! (The MIT License) +//! +//! Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com> +//! +//! Permission is hereby granted, free of charge, to any person obtaining +//! a copy of this software and associated documentation files (the +//! 'Software'), to deal in the Software without restriction, including +//! without limitation the rights to use, copy, modify, merge, publish, +//! distribute, sublicense, and/or sell copies of the Software, and to +//! permit persons to whom the Software is furnished to do so, subject to +//! the following conditions: +//! +//! The above copyright notice and this permission notice shall be +//! included in all copies or substantial portions of the Software. +//! +//! THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +//! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +//! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +//! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +//! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +  extern crate swc_common;  extern crate swc_ecma_ast;  use crate::test_utils::{      hast, -    micromark_swc_utils::position_to_span,      swc::{parse_esm_to_tree, parse_expression_to_tree}, -    swc_utils::create_ident, +    swc_utils::{create_ident, position_to_span},  };  use core::str;  use micromark::{Location, MdxExpressionKind}; @@ -41,7 +68,7 @@ struct Context<'a> {  }  #[allow(dead_code)] -pub fn to_swc( +pub fn hast_util_to_swc(      tree: &hast::Node,      path: Option<String>,      location: Option<&Location>, diff --git a/tests/test_utils/to_hast.rs b/tests/test_utils/mdast_util_to_hast.rs index 1ba8d35..c07d15b 100644 --- a/tests/test_utils/to_hast.rs +++ b/tests/test_utils/mdast_util_to_hast.rs @@ -1,3 +1,31 @@ +//! Turn a markdown AST into an HTML AST. +//! +//! Port of <https://github.com/syntax-tree/mdast-util-to-hast>, by the same +//! author: +//! +//! (The MIT License) +//! +//! Copyright (c) 2016 Titus Wormer <tituswormer@gmail.com> +//! +//! Permission is hereby granted, free of charge, to any person obtaining +//! a copy of this software and associated documentation files (the +//! 'Software'), to deal in the Software without restriction, including +//! without limitation the rights to use, copy, modify, merge, publish, +//! distribute, sublicense, and/or sell copies of the Software, and to +//! permit persons to whom the Software is furnished to do so, subject to +//! the following conditions: +//! +//! The above copyright notice and this permission notice shall be +//! included in all copies or substantial portions of the Software. +//! +//! THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +//! EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +//! MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +//! IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +//! CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +//! TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +//! SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +  use crate::test_utils::hast;  use micromark::{mdast, sanitize, unist::Position}; @@ -34,7 +62,7 @@ enum Result {  }  #[allow(dead_code)] -pub fn to_hast(mdast: &mdast::Node) -> hast::Node { +pub fn mdast_util_to_hast(mdast: &mdast::Node) -> hast::Node {      let mut definitions = vec![];      // Collect definitions. diff --git a/tests/test_utils/to_document.rs b/tests/test_utils/mdx_plugin_recma_document.rs index 938df1b..a62862c 100644 --- a/tests/test_utils/to_document.rs +++ b/tests/test_utils/mdx_plugin_recma_document.rs @@ -1,7 +1,12 @@ +//! Turn a JavaScript AST, coming from MD(X), into a component. +//! +//! Port of <https://github.com/mdx-js/mdx/blob/main/packages/mdx/lib/plugin/recma-document.js>, +//! by the same author. +  extern crate swc_ecma_ast;  use crate::test_utils::{ -    micromark_swc_utils::{bytepos_to_point, prefix_error_with_point, span_to_position}, -    to_swc::Program, +    hast_util_to_swc::Program, +    swc_utils::{bytepos_to_point, prefix_error_with_point, span_to_position},  };  use micromark::{      unist::{Point, Position}, @@ -66,7 +71,7 @@ impl Default for Options {  }  #[allow(dead_code)] -pub fn to_document( +pub fn mdx_plugin_recma_document(      mut program: Program,      options: &Options,      location: Option<&Location>, diff --git a/tests/test_utils/jsx_rewrite.rs b/tests/test_utils/mdx_plugin_recma_jsx_rewrite.rs index 33879b0..6a4d451 100644 --- a/tests/test_utils/jsx_rewrite.rs +++ b/tests/test_utils/mdx_plugin_recma_jsx_rewrite.rs @@ -1,11 +1,16 @@ +//! Rewrite JSX tags to accept them from props and an optional provider. +//! +//! Port of <https://github.com/mdx-js/mdx/blob/main/packages/mdx/lib/plugin/recma-jsx-rewrite.js>, +//! by the same author. +  extern crate swc_common;  extern crate swc_ecma_ast;  use crate::test_utils::{ -    micromark_swc_utils::{position_to_string, span_to_position}, +    hast_util_to_swc::Program,      swc_utils::{          create_binary_expression, create_ident, create_ident_expression, create_member_expression, +        position_to_string, span_to_position,      }, -    to_swc::Program,  };  use micromark::{id_cont, id_start, unist::Position, Location};  use swc_ecma_visit::{noop_visit_mut_type, VisitMut, VisitMutWith}; @@ -25,7 +30,7 @@ pub struct Options {  /// Rewrite JSX in an MDX file so that components can be passed in and provided.  #[allow(dead_code)] -pub fn jsx_rewrite( +pub fn mdx_plugin_recma_jsx_rewrite(      mut program: Program,      options: &Options,      location: Option<&Location>, diff --git a/tests/test_utils/micromark_swc_utils.rs b/tests/test_utils/micromark_swc_utils.rs deleted file mode 100644 index 13678d5..0000000 --- a/tests/test_utils/micromark_swc_utils.rs +++ /dev/null @@ -1,134 +0,0 @@ -extern crate swc_common; -use micromark::{ -    mdast::Stop, -    unist::{Point, Position}, -    Location, -}; -use swc_common::{BytePos, Span, SyntaxContext, DUMMY_SP}; -use swc_ecma_visit::{noop_visit_mut_type, VisitMut}; - -/// Turn a unist position, into an SWC span, of two byte positions. -/// -/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they -/// > are missing or incremented by `1` when valid. -pub fn position_to_span(position: Option<&Position>) -> Span { -    position.map_or(DUMMY_SP, |d| Span { -        lo: point_to_bytepos(&d.start), -        hi: point_to_bytepos(&d.end), -        ctxt: SyntaxContext::empty(), -    }) -} - -/// Turn an SWC span, of two byte positions, into a unist position. -/// -/// This assumes the span comes from a fixed tree, or is a dummy. -/// -/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they -/// > are missing or incremented by `1` when valid. -pub fn span_to_position(span: &Span, location: Option<&Location>) -> Option<Position> { -    let lo = span.lo.0 as usize; -    let hi = span.hi.0 as usize; - -    if lo > 0 && hi > 0 { -        if let Some(location) = location { -            if let Some(start) = location.to_point(lo - 1) { -                if let Some(end) = location.to_point(hi - 1) { -                    return Some(Position { start, end }); -                } -            } -        } -    } - -    None -} - -/// Turn a unist point into an SWC byte position. -/// -/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they -/// > are missing or incremented by `1` when valid. -pub fn point_to_bytepos(point: &Point) -> BytePos { -    BytePos(point.offset as u32 + 1) -} - -/// Turn an SWC byte position into a unist point. -/// -/// This assumes the byte position comes from a fixed tree, or is a dummy. -/// -/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they -/// > are missing or incremented by `1` when valid. -pub fn bytepos_to_point(bytepos: &BytePos, location: Option<&Location>) -> Option<Point> { -    let pos = bytepos.0 as usize; - -    if pos > 0 { -        if let Some(location) = location { -            return location.to_point(pos - 1); -        } -    } - -    None -} - -/// Prefix an error message with an optional point. -pub fn prefix_error_with_point(reason: String, point: Option<&Point>) -> String { -    if let Some(point) = point { -        format!("{}: {}", point_to_string(point), reason) -    } else { -        reason -    } -} - -/// Serialize a unist position for humans. -pub fn position_to_string(position: &Position) -> String { -    format!( -        "{}-{}", -        point_to_string(&position.start), -        point_to_string(&position.end) -    ) -} - -/// Serialize a unist point for humans. -pub fn point_to_string(point: &Point) -> String { -    format!("{}:{}", point.line, point.column) -} - -/// Visitor to fix SWC byte positions. -/// -/// This assumes the byte position comes from an **unfixed** tree. -/// -/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they -/// > are missing or incremented by `1` when valid. -#[derive(Debug, Default, Clone)] -pub struct RewriteContext<'a> { -    pub prefix_len: usize, -    pub stops: &'a [Stop], -    pub location: Option<&'a Location>, -} - -impl<'a> VisitMut for RewriteContext<'a> { -    noop_visit_mut_type!(); - -    // Rewrite spans. -    fn visit_mut_span(&mut self, span: &mut Span) { -        let mut result = DUMMY_SP; -        let lo_rel = span.lo.0 as usize; -        let hi_rel = span.hi.0 as usize; - -        if lo_rel > self.prefix_len && hi_rel > self.prefix_len { -            if let Some(lo_abs) = -                Location::relative_to_absolute(self.stops, lo_rel - 1 - self.prefix_len) -            { -                if let Some(hi_abs) = -                    Location::relative_to_absolute(self.stops, hi_rel - 1 - self.prefix_len) -                { -                    result = Span { -                        lo: BytePos(lo_abs as u32 + 1), -                        hi: BytePos(hi_abs as u32 + 1), -                        ctxt: SyntaxContext::empty(), -                    }; -                } -            } -        } - -        *span = result; -    } -} diff --git a/tests/test_utils/mod.rs b/tests/test_utils/mod.rs index 99ded2f..8d1f144 100644 --- a/tests/test_utils/mod.rs +++ b/tests/test_utils/mod.rs @@ -1,8 +1,7 @@  pub mod hast; -pub mod jsx_rewrite; -pub mod micromark_swc_utils; +pub mod hast_util_to_swc; +pub mod mdast_util_to_hast; +pub mod mdx_plugin_recma_document; +pub mod mdx_plugin_recma_jsx_rewrite;  pub mod swc;  pub mod swc_utils; -pub mod to_document; -pub mod to_hast; -pub mod to_swc; diff --git a/tests/test_utils/swc.rs b/tests/test_utils/swc.rs index 7e44898..3c97d28 100644 --- a/tests/test_utils/swc.rs +++ b/tests/test_utils/swc.rs @@ -1,10 +1,9 @@ +//! Bridge between `micromark` and SWC.  extern crate micromark;  extern crate swc_common;  extern crate swc_ecma_ast;  extern crate swc_ecma_parser; -use crate::test_utils::micromark_swc_utils::{ -    bytepos_to_point, prefix_error_with_point, RewriteContext, -}; +use crate::test_utils::swc_utils::{bytepos_to_point, prefix_error_with_point, RewriteContext};  use micromark::{mdast::Stop, unist::Point, Location, MdxExpressionKind, MdxSignal};  use swc_common::{      source_map::Pos, sync::Lrc, BytePos, FileName, FilePathMapping, SourceFile, SourceMap, Spanned, diff --git a/tests/test_utils/swc_utils.rs b/tests/test_utils/swc_utils.rs index 1e1a526..5a45af6 100644 --- a/tests/test_utils/swc_utils.rs +++ b/tests/test_utils/swc_utils.rs @@ -1,8 +1,140 @@ -extern crate swc_common; -extern crate swc_ecma_ast; +//! Lots of helpers for dealing with SWC, particularly from unist. -use swc_common::DUMMY_SP; +use micromark::{ +    mdast::Stop, +    unist::{Point, Position}, +    Location, +}; + +use swc_common::{BytePos, Span, SyntaxContext, DUMMY_SP};  use swc_ecma_ast::{BinExpr, BinaryOp, Expr, Ident, MemberExpr, MemberProp}; +use swc_ecma_visit::{noop_visit_mut_type, VisitMut}; + +/// Turn a unist position, into an SWC span, of two byte positions. +/// +/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they +/// > are missing or incremented by `1` when valid. +pub fn position_to_span(position: Option<&Position>) -> Span { +    position.map_or(DUMMY_SP, |d| Span { +        lo: point_to_bytepos(&d.start), +        hi: point_to_bytepos(&d.end), +        ctxt: SyntaxContext::empty(), +    }) +} + +/// Turn an SWC span, of two byte positions, into a unist position. +/// +/// This assumes the span comes from a fixed tree, or is a dummy. +/// +/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they +/// > are missing or incremented by `1` when valid. +pub fn span_to_position(span: &Span, location: Option<&Location>) -> Option<Position> { +    let lo = span.lo.0 as usize; +    let hi = span.hi.0 as usize; + +    if lo > 0 && hi > 0 { +        if let Some(location) = location { +            if let Some(start) = location.to_point(lo - 1) { +                if let Some(end) = location.to_point(hi - 1) { +                    return Some(Position { start, end }); +                } +            } +        } +    } + +    None +} + +/// Turn a unist point into an SWC byte position. +/// +/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they +/// > are missing or incremented by `1` when valid. +pub fn point_to_bytepos(point: &Point) -> BytePos { +    BytePos(point.offset as u32 + 1) +} + +/// Turn an SWC byte position into a unist point. +/// +/// This assumes the byte position comes from a fixed tree, or is a dummy. +/// +/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they +/// > are missing or incremented by `1` when valid. +pub fn bytepos_to_point(bytepos: &BytePos, location: Option<&Location>) -> Option<Point> { +    let pos = bytepos.0 as usize; + +    if pos > 0 { +        if let Some(location) = location { +            return location.to_point(pos - 1); +        } +    } + +    None +} + +/// Prefix an error message with an optional point. +pub fn prefix_error_with_point(reason: String, point: Option<&Point>) -> String { +    if let Some(point) = point { +        format!("{}: {}", point_to_string(point), reason) +    } else { +        reason +    } +} + +/// Serialize a unist position for humans. +pub fn position_to_string(position: &Position) -> String { +    format!( +        "{}-{}", +        point_to_string(&position.start), +        point_to_string(&position.end) +    ) +} + +/// Serialize a unist point for humans. +pub fn point_to_string(point: &Point) -> String { +    format!("{}:{}", point.line, point.column) +} + +/// Visitor to fix SWC byte positions. +/// +/// This assumes the byte position comes from an **unfixed** tree. +/// +/// > 👉 **Note**: SWC byte positions are offset by one: they are `0` when they +/// > are missing or incremented by `1` when valid. +#[derive(Debug, Default, Clone)] +pub struct RewriteContext<'a> { +    pub prefix_len: usize, +    pub stops: &'a [Stop], +    pub location: Option<&'a Location>, +} + +impl<'a> VisitMut for RewriteContext<'a> { +    noop_visit_mut_type!(); + +    // Rewrite spans. +    fn visit_mut_span(&mut self, span: &mut Span) { +        let mut result = DUMMY_SP; +        let lo_rel = span.lo.0 as usize; +        let hi_rel = span.hi.0 as usize; + +        if lo_rel > self.prefix_len && hi_rel > self.prefix_len { +            if let Some(lo_abs) = +                Location::relative_to_absolute(self.stops, lo_rel - 1 - self.prefix_len) +            { +                if let Some(hi_abs) = +                    Location::relative_to_absolute(self.stops, hi_rel - 1 - self.prefix_len) +                { +                    result = Span { +                        lo: BytePos(lo_abs as u32 + 1), +                        hi: BytePos(hi_abs as u32 + 1), +                        ctxt: SyntaxContext::empty(), +                    }; +                } +            } +        } + +        *span = result; +    } +}  /// Generate an ident.  /// diff --git a/tests/xxx_swc.rs b/tests/xxx_hast_util_to_swc.rs index 68a141d..a169811 100644 --- a/tests/xxx_swc.rs +++ b/tests/xxx_hast_util_to_swc.rs @@ -6,13 +6,13 @@ mod test_utils;  use pretty_assertions::assert_eq;  use test_utils::{      hast, +    hast_util_to_swc::{hast_util_to_swc, Program},      swc::serialize, -    to_swc::{to_swc, Program},  };  #[test] -fn swc() -> Result<(), String> { -    let comment_ast = to_swc( +fn hast_util_to_swc_test() -> Result<(), String> { +    let comment_ast = hast_util_to_swc(          &hast::Node::Comment(hast::Comment {              value: "a".into(),              position: None, @@ -71,7 +71,7 @@ fn swc() -> Result<(), String> {          "should support a `Comment` (serialize)",      ); -    let element_ast = to_swc( +    let element_ast = hast_util_to_swc(          &hast::Node::Element(hast::Element {              tag_name: "a".into(),              properties: vec![( @@ -149,7 +149,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![], @@ -170,7 +170,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![("b".into(), hast::PropertyValue::String("c".into()),)], @@ -188,7 +188,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![("b".into(), hast::PropertyValue::Boolean(true),)], @@ -206,7 +206,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![("b".into(), hast::PropertyValue::Boolean(false),)], @@ -224,7 +224,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![( @@ -245,7 +245,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![ @@ -267,7 +267,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::Element(hast::Element {                      tag_name: "a".into(),                      properties: vec![ @@ -287,7 +287,7 @@ fn swc() -> Result<(), String> {          "should support an `Element` w/ aria attributes",      ); -    let mdx_element_ast = to_swc( +    let mdx_element_ast = hast_util_to_swc(          &hast::Node::MdxJsxElement(hast::MdxJsxElement {              name: None,              attributes: vec![], @@ -336,7 +336,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a".into()),                      attributes: vec![], @@ -354,7 +354,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a:b".into()),                      attributes: vec![], @@ -372,7 +372,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a.b.c".into()),                      attributes: vec![], @@ -390,7 +390,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a".into()),                      attributes: vec![], @@ -411,7 +411,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a".into()),                      attributes: vec![hast::AttributeContent::Property(hast::MdxJsxAttribute { @@ -432,7 +432,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a".into()),                      attributes: vec![hast::AttributeContent::Property(hast::MdxJsxAttribute { @@ -453,7 +453,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a".into()),                      attributes: vec![hast::AttributeContent::Property(hast::MdxJsxAttribute { @@ -474,7 +474,7 @@ fn swc() -> Result<(), String> {      assert_eq!(          serialize( -            &to_swc( +            &hast_util_to_swc(                  &hast::Node::MdxJsxElement(hast::MdxJsxElement {                      name: Some("a".into()),                      attributes: vec![hast::AttributeContent::Expression("...c".into(), vec![])], @@ -490,7 +490,7 @@ fn swc() -> Result<(), String> {          "should support an `MdxElement` (element, expression attribute)",      ); -    let mdx_expression_ast = to_swc( +    let mdx_expression_ast = hast_util_to_swc(          &hast::Node::MdxExpression(hast::MdxExpression {              value: "a".into(),              position: None, @@ -547,7 +547,7 @@ fn swc() -> Result<(), String> {          "should support an `MdxExpression` (serialize)",      ); -    let mdxjs_esm_ast = to_swc( +    let mdxjs_esm_ast = hast_util_to_swc(          &hast::Node::MdxjsEsm(hast::MdxjsEsm {              value: "import a from 'b'".into(),              position: None, @@ -598,7 +598,7 @@ fn swc() -> Result<(), String> {          "should support an `MdxjsEsm` (serialize)",      ); -    let root_ast = to_swc( +    let root_ast = hast_util_to_swc(          &hast::Node::Root(hast::Root {              children: vec![hast::Node::Text(hast::Text {                  value: "a".into(), @@ -659,7 +659,7 @@ fn swc() -> Result<(), String> {          "should support a `Root` (serialize)",      ); -    let text_ast = to_swc( +    let text_ast = hast_util_to_swc(          &hast::Node::Text(hast::Text {              value: "a".into(),              position: None, diff --git a/tests/xxx_hast.rs b/tests/xxx_mdast_util_to_hast.rs index b0856a2..f46f980 100644 --- a/tests/xxx_hast.rs +++ b/tests/xxx_mdast_util_to_hast.rs @@ -2,12 +2,12 @@ extern crate micromark;  mod test_utils;  use micromark::mdast;  use pretty_assertions::assert_eq; -use test_utils::{hast, to_hast::to_hast}; +use test_utils::{hast, mdast_util_to_hast::mdast_util_to_hast};  #[test] -fn hast() { +fn mdast_util_to_hast_test() {      assert_eq!( -        to_hast(&mdast::Node::BlockQuote(mdast::BlockQuote { +        mdast_util_to_hast(&mdast::Node::BlockQuote(mdast::BlockQuote {              children: vec![],              position: None,          })), @@ -24,7 +24,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Break(mdast::Break { position: None })), +        mdast_util_to_hast(&mdast::Node::Break(mdast::Break { position: None })),          hast::Node::Root(hast::Root {              children: vec![                  hast::Node::Element(hast::Element { @@ -44,7 +44,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Code(mdast::Code { +        mdast_util_to_hast(&mdast::Node::Code(mdast::Code {              lang: Some("b".into()),              meta: None,              value: "a".into(), @@ -71,7 +71,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Definition(mdast::Definition { +        mdast_util_to_hast(&mdast::Node::Definition(mdast::Definition {              url: "b".into(),              title: None,              identifier: "a".into(), @@ -86,7 +86,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Delete(mdast::Delete { +        mdast_util_to_hast(&mdast::Node::Delete(mdast::Delete {              children: vec![mdast::Node::Text(mdast::Text {                  value: "a".into(),                  position: None @@ -106,7 +106,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Emphasis(mdast::Emphasis { +        mdast_util_to_hast(&mdast::Node::Emphasis(mdast::Emphasis {              children: vec![mdast::Node::Text(mdast::Text {                  value: "a".into(),                  position: None @@ -126,7 +126,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::FootnoteDefinition( +        mdast_util_to_hast(&mdast::Node::FootnoteDefinition(              mdast::FootnoteDefinition {                  identifier: "a".into(),                  label: None, @@ -142,7 +142,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![                  mdast::Node::FootnoteDefinition(mdast::FootnoteDefinition {                      children: vec![mdast::Node::Paragraph(mdast::Paragraph { @@ -328,7 +328,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![                  mdast::Node::FootnoteDefinition(mdast::FootnoteDefinition {                      children: vec![mdast::Node::Paragraph(mdast::Paragraph { @@ -594,7 +594,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Heading(mdast::Heading { +        mdast_util_to_hast(&mdast::Node::Heading(mdast::Heading {              depth: 1,              children: vec![mdast::Node::Text(mdast::Text {                  value: "a".into(), @@ -615,7 +615,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Html(mdast::Html { +        mdast_util_to_hast(&mdast::Node::Html(mdast::Html {              value: "<div>".into(),              position: None,          })), @@ -627,7 +627,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Image(mdast::Image { +        mdast_util_to_hast(&mdast::Node::Image(mdast::Image {              url: "a".into(),              alt: "b".into(),              title: None, @@ -646,7 +646,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![                  mdast::Node::Definition(mdast::Definition {                      url: "b".into(), @@ -689,7 +689,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::InlineCode(mdast::InlineCode { +        mdast_util_to_hast(&mdast::Node::InlineCode(mdast::InlineCode {              value: "a\nb".into(),              position: None,          })), @@ -706,7 +706,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::InlineMath(mdast::InlineMath { +        mdast_util_to_hast(&mdast::Node::InlineMath(mdast::InlineMath {              value: "a\nb".into(),              position: None,          })), @@ -729,7 +729,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Link(mdast::Link { +        mdast_util_to_hast(&mdast::Node::Link(mdast::Link {              url: "a".into(),              title: None,              children: vec![mdast::Node::Text(mdast::Text { @@ -751,7 +751,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![                  mdast::Node::Definition(mdast::Definition {                      url: "b".into(), @@ -797,7 +797,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![mdast::Node::ListItem(mdast::ListItem {                  spread: false,                  checked: None, @@ -828,7 +828,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![mdast::Node::ListItem(mdast::ListItem {                  spread: true,                  checked: None, @@ -874,7 +874,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![mdast::Node::ListItem(mdast::ListItem {                  spread: false,                  checked: Some(true), @@ -911,7 +911,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![mdast::Node::ListItem(mdast::ListItem {                  spread: false,                  checked: Some(false), @@ -964,7 +964,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::List(mdast::List { +        mdast_util_to_hast(&mdast::Node::List(mdast::List {              ordered: true,              start: Some(1),              spread: false, @@ -1010,7 +1010,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::List(mdast::List { +        mdast_util_to_hast(&mdast::Node::List(mdast::List {              ordered: true,              start: Some(123),              spread: false, @@ -1030,7 +1030,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::List(mdast::List { +        mdast_util_to_hast(&mdast::Node::List(mdast::List {              ordered: false,              start: None,              spread: false, @@ -1050,7 +1050,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::List(mdast::List { +        mdast_util_to_hast(&mdast::Node::List(mdast::List {              ordered: false,              start: None,              spread: false, @@ -1105,7 +1105,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Math(mdast::Math { +        mdast_util_to_hast(&mdast::Node::Math(mdast::Math {              meta: None,              value: "a".into(),              position: None, @@ -1134,7 +1134,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::MdxFlowExpression(mdast::MdxFlowExpression { +        mdast_util_to_hast(&mdast::Node::MdxFlowExpression(mdast::MdxFlowExpression {              value: "a".into(),              position: None,              stops: vec![] @@ -1148,7 +1148,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::MdxTextExpression(mdast::MdxTextExpression { +        mdast_util_to_hast(&mdast::Node::MdxTextExpression(mdast::MdxTextExpression {              value: "a".into(),              position: None,              stops: vec![] @@ -1162,7 +1162,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::MdxJsxFlowElement(mdast::MdxJsxFlowElement { +        mdast_util_to_hast(&mdast::Node::MdxJsxFlowElement(mdast::MdxJsxFlowElement {              name: None,              attributes: vec![],              children: vec![], @@ -1178,7 +1178,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::MdxJsxTextElement(mdast::MdxJsxTextElement { +        mdast_util_to_hast(&mdast::Node::MdxJsxTextElement(mdast::MdxJsxTextElement {              name: None,              attributes: vec![],              children: vec![], @@ -1194,7 +1194,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::MdxjsEsm(mdast::MdxjsEsm { +        mdast_util_to_hast(&mdast::Node::MdxjsEsm(mdast::MdxjsEsm {              value: "a".into(),              position: None,              stops: vec![] @@ -1208,7 +1208,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Paragraph(mdast::Paragraph { +        mdast_util_to_hast(&mdast::Node::Paragraph(mdast::Paragraph {              children: vec![mdast::Node::Text(mdast::Text {                  value: "a".into(),                  position: None @@ -1228,7 +1228,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Root(mdast::Root { +        mdast_util_to_hast(&mdast::Node::Root(mdast::Root {              children: vec![],              position: None,          })), @@ -1240,7 +1240,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Strong(mdast::Strong { +        mdast_util_to_hast(&mdast::Node::Strong(mdast::Strong {              children: vec![mdast::Node::Text(mdast::Text {                  value: "a".into(),                  position: None @@ -1260,7 +1260,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::TableCell(mdast::TableCell { +        mdast_util_to_hast(&mdast::Node::TableCell(mdast::TableCell {              children: vec![mdast::Node::Text(mdast::Text {                  value: "a".into(),                  position: None @@ -1280,7 +1280,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::TableRow(mdast::TableRow { +        mdast_util_to_hast(&mdast::Node::TableRow(mdast::TableRow {              children: vec![                  mdast::Node::TableCell(mdast::TableCell {                      children: vec![mdast::Node::Text(mdast::Text { @@ -1340,7 +1340,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Table(mdast::Table { +        mdast_util_to_hast(&mdast::Node::Table(mdast::Table {              align: vec![mdast::AlignKind::Left, mdast::AlignKind::None],              children: vec![                  mdast::Node::TableRow(mdast::TableRow { @@ -1517,7 +1517,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Text(mdast::Text { +        mdast_util_to_hast(&mdast::Node::Text(mdast::Text {              value: "a".into(),              position: None,          })), @@ -1529,7 +1529,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::ThematicBreak(mdast::ThematicBreak { +        mdast_util_to_hast(&mdast::Node::ThematicBreak(mdast::ThematicBreak {              position: None          })),          hast::Node::Element(hast::Element { @@ -1542,7 +1542,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Yaml(mdast::Yaml { +        mdast_util_to_hast(&mdast::Node::Yaml(mdast::Yaml {              value: "a".into(),              position: None          })), @@ -1554,7 +1554,7 @@ fn hast() {      );      assert_eq!( -        to_hast(&mdast::Node::Toml(mdast::Toml { +        mdast_util_to_hast(&mdast::Node::Toml(mdast::Toml {              value: "a".into(),              position: None          })), diff --git a/tests/xxx_document.rs b/tests/xxx_mdx_plugin_recma_document.rs index 7e43b1c..1cb91fe 100644 --- a/tests/xxx_document.rs +++ b/tests/xxx_mdx_plugin_recma_document.rs @@ -6,10 +6,10 @@ mod test_utils;  use micromark::{micromark_to_mdast, Constructs, Location, ParseOptions};  use pretty_assertions::assert_eq;  use test_utils::{ +    hast_util_to_swc::hast_util_to_swc, +    mdast_util_to_hast::mdast_util_to_hast, +    mdx_plugin_recma_document::{mdx_plugin_recma_document, Options as DocumentOptions},      swc::{parse_esm, parse_expression, serialize}, -    to_document::{to_document, Options as DocumentOptions}, -    to_hast::to_hast, -    to_swc::to_swc,  };  fn from_markdown(value: &str) -> Result<String, String> { @@ -23,15 +23,15 @@ fn from_markdown(value: &str) -> Result<String, String> {              ..ParseOptions::default()          },      )?; -    let hast = to_hast(&mdast); -    let swc_tree = to_swc(&hast, None, Some(&location))?; -    let program = to_document(swc_tree, &DocumentOptions::default(), Some(&location))?; +    let hast = mdast_util_to_hast(&mdast); +    let program = hast_util_to_swc(&hast, None, Some(&location))?; +    let program = mdx_plugin_recma_document(program, &DocumentOptions::default(), Some(&location))?;      let value = serialize(&program.module);      Ok(value)  }  #[test] -fn document() -> Result<(), String> { +fn mdx_plugin_recma_document_test() -> Result<(), String> {      assert_eq!(          from_markdown("# hi\n\nAlpha *bravo* **charlie**.")?,          "function _createMdxContent(props) { diff --git a/tests/xxx_jsx_rewrite.rs b/tests/xxx_mdx_plugin_recma_jsx_rewrite.rs index c383f13..497155f 100644 --- a/tests/xxx_jsx_rewrite.rs +++ b/tests/xxx_mdx_plugin_recma_jsx_rewrite.rs @@ -6,11 +6,11 @@ mod test_utils;  use micromark::{micromark_to_mdast, Constructs, Location, ParseOptions};  use pretty_assertions::assert_eq;  use test_utils::{ -    jsx_rewrite::{jsx_rewrite, Options as RewriteOptions}, +    hast_util_to_swc::hast_util_to_swc, +    mdast_util_to_hast::mdast_util_to_hast, +    mdx_plugin_recma_document::{mdx_plugin_recma_document, Options as DocumentOptions}, +    mdx_plugin_recma_jsx_rewrite::{mdx_plugin_recma_jsx_rewrite, Options as RewriteOptions},      swc::{parse_esm, parse_expression, serialize}, -    to_document::{to_document, Options as DocumentOptions}, -    to_hast::to_hast, -    to_swc::to_swc,  };  fn from_markdown(value: &str, options: &RewriteOptions) -> Result<String, String> { @@ -24,16 +24,16 @@ fn from_markdown(value: &str, options: &RewriteOptions) -> Result<String, String              ..ParseOptions::default()          },      )?; -    let hast = to_hast(&mdast); -    let swc_tree = to_swc(&hast, Some("example.mdx".into()), Some(&location))?; -    let program = to_document(swc_tree, &DocumentOptions::default(), Some(&location))?; -    let program = jsx_rewrite(program, options, Some(&location)); +    let hast = mdast_util_to_hast(&mdast); +    let program = hast_util_to_swc(&hast, Some("example.mdx".into()), Some(&location))?; +    let program = mdx_plugin_recma_document(program, &DocumentOptions::default(), Some(&location))?; +    let program = mdx_plugin_recma_jsx_rewrite(program, options, Some(&location));      let value = serialize(&program.module);      Ok(value)  }  #[test] -fn rewrite() -> Result<(), String> { +fn mdx_plugin_recma_jsx_rewrite_test() -> Result<(), String> {      assert_eq!(          from_markdown("", &Default::default())?,          "function _createMdxContent(props) { | 
