diff options
| author | 2022-11-25 12:36:15 +0100 | |
|---|---|---|
| committer | 2022-11-25 12:36:15 +0100 | |
| commit | 53173e52b151537ad8510da5e7802f342d24a372 (patch) | |
| tree | d904053e6679d0a89db7affa8a9b20f160a26d65 /tests/test_utils/mdx.rs | |
| parent | 7f06d55d84db512cc9b1eee0ef23db2d7bf30214 (diff) | |
| download | markdown-rs-53173e52b151537ad8510da5e7802f342d24a372.tar.gz markdown-rs-53173e52b151537ad8510da5e7802f342d24a372.tar.bz2 markdown-rs-53173e52b151537ad8510da5e7802f342d24a372.zip | |
Remove unneeded tests
Diffstat (limited to 'tests/test_utils/mdx.rs')
| -rw-r--r-- | tests/test_utils/mdx.rs | 221 | 
1 files changed, 0 insertions, 221 deletions
| diff --git a/tests/test_utils/mdx.rs b/tests/test_utils/mdx.rs deleted file mode 100644 index 4481b78..0000000 --- a/tests/test_utils/mdx.rs +++ /dev/null @@ -1,221 +0,0 @@ -use crate::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}, -    mdx_plugin_recma_jsx_rewrite::{mdx_plugin_recma_jsx_rewrite, Options as RewriteOptions}, -    swc::{parse_esm, parse_expression, serialize}, -}; -use markdown::{to_mdast, Constructs, Location, ParseOptions}; - -pub use super::mdx_plugin_recma_document::JsxRuntime; - -use swc_common::comments::{Comments, SingleThreadedComments}; -// use swc_ecma_transforms_react::{jsx, Options as JsxBuildOptions}; -// use swc_ecma_visit::VisitMutWith; - -// To do: use `Format`. -/// Format the file is in (default: `Format::Detect`). -#[allow(dead_code)] -#[derive(Clone, Debug, Default, Eq, PartialEq)] -pub enum Format { -    /// Use `Format::Markdown` for files with an extension in `md_extensions` -    /// and `Format::Mdx` otherwise. -    #[default] -    Detect, -    /// Treat file as MDX. -    Mdx, -    /// Treat file as plain vanilla markdown. -    Markdown, -} - -// To do: use `OutputFormat`. -/// Output format to generate (default: `OutputFormat::Program`). -#[allow(dead_code)] -#[derive(Clone, Debug, Default, Eq, PartialEq)] -pub enum OutputFormat { -    /// The `Program` format will use import statements to import the JSX -    /// runtime (and optionally provider) and use an export statement to yield -    /// the `MDXContent` component. -    #[default] -    Program, -    /// The `FunctionBody` format will get the JSX runtime (and optionally -    /// provider) from `arguments[0]`, rewrite export statements, and use a -    /// return statement to yield what was exported. -    /// Normally, this output format will throw on `import` (and -    /// `export … from`) statements, but you can support them by setting -    /// `options.useDynamicImport`. -    FunctionBody, -} - -/// Configuration (optional). -#[derive(Clone, Debug, Default)] -pub struct Options { -    // /// List of markdown extensions, with dot. -    // /// -    // /// Default: `vec![".md".into(), ".markdown".into(), ".mdown".into(), ".mkdn".into(), ".mkd".into(), ".mdwn".into(), ".mkdown".into(), ".ron".into()]`. -    // pub md_extensions: Option<Vec<String>>, -    // /// List of MDX extensions, with dot. -    // /// -    // /// Default: `vec![".mdx".into()]`. -    // pub mdx_extensions: Option<Vec<String>>, -    // /// Format the file is in (default: `Format::Detect`). -    // pub format: Format, -    // /// To do: support `output_format: FunctionBody -    // /// Output format to generate (default: `OutputFormat::Program`). -    // /// -    // /// In most cases `OutputFormat::Program` should be used, as it results in a -    // /// whole program. -    // /// `OutputFormat::FunctionBody` can be used to compile to code that can be -    // /// `eval`ed. -    // /// In some cases, you might want to do that, such as when compiling on the -    // /// server and running on the client. -    // pub output_format: OutputFormat, -    // /// Whether to compile to dynamic import expressions (default: -    // /// `false`). -    // /// -    // /// This option applies when `options.output_format` is -    // /// `OutputFormat::FunctionBody`. -    // /// -    // /// This project can turn import statements (`import x from 'y'`) into -    // /// dynamic imports (`const {x} = await import('y')`). -    // /// This is useful because import statements only work at the top level of -    // /// JavaScript modules, whereas `import()` is available inside function -    // /// bodies. -    // /// -    // /// When you turn `use_dynamic_import` on, you should probably set -    // /// `options.base_url` too. -    // pub use_dynamic_import: bool, -    // /// Resolve `import`s (and `export … from`, `import.meta.url`) from this -    // /// URL (default: `None`, example: `Some("https://example.com/".into())`). -    // /// -    // /// Relative specifiers are non-absolute URLs that start with `/`, `./`, or -    // /// `../`. -    // /// For example: `/index.js`, `./folder/file.js`, or `../main.js`. -    // /// -    // /// This option is useful when code will run in a different place. -    // /// One example is when `.mdx` files are in path *a* but compiled to path -    // /// *b* and imports should run relative the path *b*. -    // /// Another example is when evaluating code, whether in Node or a browser. -    // pub base_url: Option<String>, -    /// Whether to add extra information to error messages in generated code -    /// (default: `false`). -    pub development: bool, - -    // To do: some alternative to generate source maps. -    // SourceMapGenerator -    /// Place to import a provider from (default: `None`, example: -    /// `Some("@mdx-js/react").into()`). -    /// -    /// Useful for runtimes that support context (React, Preact). -    /// The provider must export a `useMDXComponents`, which is called to -    /// access an object of components. -    pub provider_import_source: Option<String>, - -    /// Whether to keep JSX (default: `false`). -    /// -    /// The default is to compile JSX away so that the resulting file is -    /// immediately runnable. -    pub jsx: bool, - -    /// JSX runtime to use (default: `Some(JsxRuntime::Automatic)`). -    /// -    /// The classic runtime compiles to calls such as `h('p')`, the automatic -    /// runtime compiles to -    /// `import _jsx from '$importSource/jsx-runtime'\n_jsx('p')`. -    pub jsx_runtime: Option<JsxRuntime>, - -    /// Place to import automatic JSX runtimes from (`Option<String>`, default: -    /// `Some("react".into())`). -    /// -    /// When in the automatic runtime, this is used to define an import for -    /// `_Fragment`, `_jsx`, and `_jsxs`. -    pub jsx_import_source: Option<String>, - -    /// Pragma for JSX (default: `Some("React.createElement".into())`). -    /// -    /// When in the classic runtime, this is used as an identifier for function -    /// calls: `<x />` to `React.createElement('x')`. -    /// -    /// You should most probably define `pragma_frag` and `pragma_import_source` -    /// too when changing this. -    pub pragma: Option<String>, - -    /// Pragma for JSX fragments (default: `Some("React.Fragment".into())`). -    /// -    /// When in the classic runtime, this is used as an identifier for -    /// fragments: `<>` to `React.createElement(React.Fragment)`. -    /// -    /// You should most probably define `pragma` and `pragma_import_source` -    /// too when changing this. -    pub pragma_frag: Option<String>, - -    /// Where to import the identifier of `pragma` from (default: -    /// `Some("react".into())`). -    /// -    /// When in the classic runtime, this is used to import the `pragma` -    /// function. -    /// To illustrate with an example: when `pragma` is `"a.b"` and -    /// `pragma_import_source` is `"c"`, the following will be generated: -    /// `import a from 'c'`. -    pub pragma_import_source: Option<String>, -} - -#[allow(dead_code)] -pub fn mdx(value: &str, filepath: Option<String>, options: &Options) -> Result<String, String> { -    let parse_options = ParseOptions { -        constructs: Constructs::mdx(), -        mdx_esm_parse: Some(Box::new(parse_esm)), -        mdx_expression_parse: Some(Box::new(parse_expression)), -        ..ParseOptions::default() -    }; -    let document_options = DocumentOptions { -        pragma: options.pragma.clone(), -        pragma_frag: options.pragma_frag.clone(), -        pragma_import_source: options.pragma_import_source.clone(), -        jsx_import_source: options.jsx_import_source.clone(), -        jsx_runtime: options.jsx_runtime, -    }; -    let rewrite_options = RewriteOptions { -        development: options.development, -        provider_import_source: options.provider_import_source.clone(), -    }; - -    let location = Location::new(value.as_bytes()); -    let mdast = to_mdast(value, &parse_options)?; -    let hast = mdast_util_to_hast(&mdast); -    let mut program = hast_util_to_swc(&hast, filepath, Some(&location))?; -    mdx_plugin_recma_document(&mut program, &document_options, Some(&location))?; -    mdx_plugin_recma_jsx_rewrite(&mut program, &rewrite_options, Some(&location)); - -    // Add our comments. -    let comments = SingleThreadedComments::default(); - -    for c in program.comments { -        comments.add_leading(c.span.lo, c); -    } - -    println!("comments for swc: {:?}", comments); - -    if !options.jsx { -        // let cm = Lrc::new(SourceMap::new(FilePathMapping::empty())); -        // let build_options = JsxBuildOptions { -        //     next: Some(true), -        //     throw_if_namespace: Some(false), -        //     development: Some(options.development), -        //     use_spread: Some(true), -        //     refresh: None, -        //     runtime: None, -        //     import_source: None, -        //     pragma: None, -        //     pragma_frag: None, -        //     use_builtins: None, -        // }; -        // let mark = Mark::fresh(Mark::default()); -        // program -        //     .module -        //     .visit_mut_with(&mut jsx(cm, Some(comments), build_options, mark)); -    } - -    // To do: include comments. -    Ok(serialize(&program.module)) -} | 
