1 | const path = require('path');
|
2 | const mdx = require('@mdx-js/mdx');
|
3 | const { ScriptTransformer } = require('@jest/transform');
|
4 | const { dedent } = require('ts-dedent');
|
5 |
|
6 | const { createCompiler } = require('@storybook/csf-tools/mdx');
|
7 |
|
8 | const compilers = [createCompiler({})];
|
9 |
|
10 | module.exports = {
|
11 | process(src, filename, config, { instrument }) {
|
12 | const result = dedent`
|
13 | /* @jsx mdx */
|
14 | import React from 'react'
|
15 | import { mdx } from '@mdx-js/react'
|
16 | ${mdx.sync(src, { compilers, filepath: filename })}
|
17 | `;
|
18 |
|
19 | const extension = path.extname(filename);
|
20 | const jsFileName = `${filename.slice(0, -extension.length)}.js`;
|
21 |
|
22 | return new ScriptTransformer(config).transformSource(jsFileName, result, instrument);
|
23 | },
|
24 | };
|