Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 0 additions & 135 deletions packages/plugin-rsc/src/transforms/cjs.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,141 +4,6 @@ import { describe, expect, it } from 'vitest'
import { transformCjsToEsm } from './cjs'

describe(transformCjsToEsm, () => {
async function testTransform(input: string) {
const ast = await parseAstAsync(input)
const { output } = transformCjsToEsm(input, ast, { id: '/test.js' })
if (!output.hasChanged()) {
return
}
return output.toString()
}

it('basic', async () => {
const input = `\
exports.ok = true;
`
expect(await testTransform(input)).toMatchInlineSnapshot(`
"let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
exports.ok = true;

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
"
`)
})

it('top-level re-export', async () => {
const input = `\
if (true) {
module.exports = require('./cjs/use-sync-external-store.production.js');
} else {
module.exports = require('./cjs/use-sync-external-store.development.js');
}
`
expect(await testTransform(input)).toMatchInlineSnapshot(`
"let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
function __cjs_interop__(m) {return m.__cjs_module_runner_transform || "default" in m && Object.keys(m).every((k) => k === "default" || m[k] === m.default[k]) ? m.default : m;}
if (true) {
module.exports = (__cjs_interop__(await import('./cjs/use-sync-external-store.production.js')));
} else {
module.exports = (__cjs_interop__(await import('./cjs/use-sync-external-store.development.js')));
}

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
"
`)
})

it('non top-level re-export', async () => {
const input = `\
"production" !== process.env.NODE_ENV && (function() {
var React = require("react");
var ReactDOM = require("react-dom");
exports.useSyncExternalStoreWithSelector = function () {}
})()
`
expect(await testTransform(input)).toMatchInlineSnapshot(`
"let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
function __cjs_interop__(m) {return m.__cjs_module_runner_transform || "default" in m && Object.keys(m).every((k) => k === "default" || m[k] === m.default[k]) ? m.default : m;}
const __cjs_to_esm_hoist_0 = __cjs_interop__(await import("react"));
const __cjs_to_esm_hoist_1 = __cjs_interop__(await import("react-dom"));
"production" !== process.env.NODE_ENV && (function() {
var React = __cjs_to_esm_hoist_0;
var ReactDOM = __cjs_to_esm_hoist_1;
exports.useSyncExternalStoreWithSelector = function () {}
})()

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
"
`)
})

it('edge cases', async () => {
const input = `\
const x1 = require("te" + "st");
const x2 = require("test")().test;
console.log(require("test"))

function test() {
const y1 = require("te" + "st");
const y2 = require("test")().test;
consoe.log(require("test"))
}
`
expect(await testTransform(input)).toMatchInlineSnapshot(`
"let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
function __cjs_interop__(m) {return m.__cjs_module_runner_transform || "default" in m && Object.keys(m).every((k) => k === "default" || m[k] === m.default[k]) ? m.default : m;}
const __cjs_to_esm_hoist_0 = __cjs_interop__(await import("te" + "st"));
const __cjs_to_esm_hoist_1 = __cjs_interop__(await import("test"));
const __cjs_to_esm_hoist_2 = __cjs_interop__(await import("test"));
const x1 = (__cjs_interop__(await import("te" + "st")));
const x2 = (__cjs_interop__(await import("test")))().test;
console.log((__cjs_interop__(await import("test"))))

function test() {
const y1 = __cjs_to_esm_hoist_0;
const y2 = __cjs_to_esm_hoist_1().test;
consoe.log(__cjs_to_esm_hoist_2)
}

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
"
`)
})

it('local require', async () => {
const input = `\
{
const require = () => {};
require("test");
}
`
expect(await testTransform(input)).toMatchInlineSnapshot(`
"let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
{
const require = () => {};
require("test");
}

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
"
`)
})

it('e2e', async () => {
const server = await createServer({
configFile: false,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exports.ok = true
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
## cjs-to-esm

```txt
[unmapped] --> (0:0) "let __filename = \"/test.js\"; let __dirname = \"/\";\n"
[unmapped] --> (1:0) "let exports = {}; const module = { exports };\n"
(0:0) "exports.ok = true\n" --> (2:0) "exports.ok = true\n"
[unmapped] --> (4:0) ";__vite_ssr_exportAll__(module.exports);\n"
[unmapped] --> (5:0) "export default module.exports;\n"
[unmapped] --> (6:0) "export const __cjs_module_runner_transform = true;\n"
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
## Input

```js
exports.ok = true
```

## cjs-to-esm

**Status:** transformed

**References:** (none)

[Source map visualization](https://evanw.github.io/source-map-visualization/#MjM4AGxldCBfX2ZpbGVuYW1lID0gIi90ZXN0LmpzIjsgbGV0IF9fZGlybmFtZSA9ICIvIjsKbGV0IGV4cG9ydHMgPSB7fTsgY29uc3QgbW9kdWxlID0geyBleHBvcnRzIH07CmV4cG9ydHMub2sgPSB0cnVlCgo7X192aXRlX3Nzcl9leHBvcnRBbGxfXyhtb2R1bGUuZXhwb3J0cyk7CmV4cG9ydCBkZWZhdWx0IG1vZHVsZS5leHBvcnRzOwpleHBvcnQgY29uc3QgX19janNfbW9kdWxlX3J1bm5lcl90cmFuc2Zvcm0gPSB0cnVlOwoxMzUAeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnRzLm9rID0gdHJ1ZVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Ozs7OyJ9)

```js
let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
exports.ok = true

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const x1 = require('te' + 'st')
const x2 = require('test')().test
console.log(require('test'))

function test() {
const y1 = require('te' + 'st')
const y2 = require('test')().test
consoe.log(require('test'))
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
## cjs-to-esm

```txt
[unmapped] --> (0:0) "let __filename = \"/test.js\"; let __dirname = \"/\";\n"
[unmapped] --> (1:0) "let exports = {}; const module = { exports };\n"
[unmapped] --> (2:0) "function __cjs_interop__(m) {return m.__cjs_module_runner_transform || \"default\" in m && Object.keys(m).every((k) => k === \"default\" || m[k] === m.default[k]) ? m.default : m;}\n"
[unmapped] --> (3:0) "const __cjs_to_esm_hoist_0 = __cjs_interop__(await import('te' + 'st'));\n"
[unmapped] --> (4:0) "const __cjs_to_esm_hoist_1 = __cjs_interop__(await import('test'));\n"
[unmapped] --> (5:0) "const __cjs_to_esm_hoist_2 = __cjs_interop__(await import('test'));\n"
(0:0) "const x1 = require" --> (6:0) "const x1 = (__cjs_interop__(await import"
(0:18) "('te' + 'st')\n" --> (6:40) "('te' + 'st')))\n"
(1:0) "const x2 = require" --> (7:0) "const x2 = (__cjs_interop__(await import"
(1:18) "('test')" --> (7:40) "('test')))"
(1:26) "().test\n" --> (7:50) "().test\n"
(2:0) "console.log(require" --> (8:0) "console.log((__cjs_interop__(await import"
(2:19) "('test')" --> (8:41) "('test')))"
(2:27) ")\n" --> (8:51) ")\n"
(4:0) "function test() {\n" --> (10:0) "function test() {\n"
(5:0) " const y1 = require('te' + 'st')\n" --> (11:0) " const y1 = __cjs_to_esm_hoist_0\n"
(6:0) " const y2 = require('test')" --> (12:0) " const y2 = __cjs_to_esm_hoist_1"
(6:28) "().test\n" --> (12:33) "().test\n"
(7:0) " consoe.log(require('test')" --> (13:0) " consoe.log(__cjs_to_esm_hoist_2"
(7:28) ")\n" --> (13:33) ")\n"
(8:0) "}\n" --> (14:0) "}\n"
[unmapped] --> (16:0) ";__vite_ssr_exportAll__(module.exports);\n"
[unmapped] --> (17:0) "export default module.exports;\n"
[unmapped] --> (18:0) "export const __cjs_module_runner_transform = true;\n"
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
## Input

```js
const x1 = require('te' + 'st')
const x2 = require('test')().test
console.log(require('test'))

function test() {
const y1 = require('te' + 'st')
const y2 = require('test')().test
consoe.log(require('test'))
}
```

## cjs-to-esm

**Status:** transformed

**References:** (none)

[Source map visualization](https://evanw.github.io/source-map-visualization/#OTA0AGxldCBfX2ZpbGVuYW1lID0gIi90ZXN0LmpzIjsgbGV0IF9fZGlybmFtZSA9ICIvIjsKbGV0IGV4cG9ydHMgPSB7fTsgY29uc3QgbW9kdWxlID0geyBleHBvcnRzIH07CmZ1bmN0aW9uIF9fY2pzX2ludGVyb3BfXyhtKSB7cmV0dXJuIG0uX19janNfbW9kdWxlX3J1bm5lcl90cmFuc2Zvcm0gfHwgImRlZmF1bHQiIGluIG0gJiYgT2JqZWN0LmtleXMobSkuZXZlcnkoKGspID0+IGsgPT09ICJkZWZhdWx0IiB8fCBtW2tdID09PSBtLmRlZmF1bHRba10pID8gbS5kZWZhdWx0IDogbTt9CmNvbnN0IF9fY2pzX3RvX2VzbV9ob2lzdF8wID0gX19janNfaW50ZXJvcF9fKGF3YWl0IGltcG9ydCgndGUnICsgJ3N0JykpOwpjb25zdCBfX2Nqc190b19lc21faG9pc3RfMSA9IF9fY2pzX2ludGVyb3BfXyhhd2FpdCBpbXBvcnQoJ3Rlc3QnKSk7CmNvbnN0IF9fY2pzX3RvX2VzbV9ob2lzdF8yID0gX19janNfaW50ZXJvcF9fKGF3YWl0IGltcG9ydCgndGVzdCcpKTsKY29uc3QgeDEgPSAoX19janNfaW50ZXJvcF9fKGF3YWl0IGltcG9ydCgndGUnICsgJ3N0JykpKQpjb25zdCB4MiA9IChfX2Nqc19pbnRlcm9wX18oYXdhaXQgaW1wb3J0KCd0ZXN0JykpKSgpLnRlc3QKY29uc29sZS5sb2coKF9fY2pzX2ludGVyb3BfXyhhd2FpdCBpbXBvcnQoJ3Rlc3QnKSkpKQoKZnVuY3Rpb24gdGVzdCgpIHsKICBjb25zdCB5MSA9IF9fY2pzX3RvX2VzbV9ob2lzdF8wCiAgY29uc3QgeTIgPSBfX2Nqc190b19lc21faG9pc3RfMSgpLnRlc3QKICBjb25zb2UubG9nKF9fY2pzX3RvX2VzbV9ob2lzdF8yKQp9Cgo7X192aXRlX3Nzcl9leHBvcnRBbGxfXyhtb2R1bGUuZXhwb3J0cyk7CmV4cG9ydCBkZWZhdWx0IG1vZHVsZS5leHBvcnRzOwpleHBvcnQgY29uc3QgX19janNfbW9kdWxlX3J1bm5lcl90cmFuc2Zvcm0gPSB0cnVlOwo3MzcAeyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB4MSA9IHJlcXVpcmUoJ3RlJyArICdzdCcpXG5jb25zdCB4MiA9IHJlcXVpcmUoJ3Rlc3QnKSgpLnRlc3RcbmNvbnNvbGUubG9nKHJlcXVpcmUoJ3Rlc3QnKSlcblxuZnVuY3Rpb24gdGVzdCgpIHtcbiAgY29uc3QgeTEgPSByZXF1aXJlKCd0ZScgKyAnc3QnKVxuICBjb25zdCB5MiA9IHJlcXVpcmUoJ3Rlc3QnKSgpLnRlc3RcbiAgY29uc29lLmxvZyhyZXF1aXJlKCd0ZXN0JykpXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsNkJBQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM5QixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw2QkFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUM7O0FBRTNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNiLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBZSxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxvQkFBZTtBQUM1Qjs7Ozs7In0=)

```js
let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
function __cjs_interop__(m) {return m.__cjs_module_runner_transform || "default" in m && Object.keys(m).every((k) => k === "default" || m[k] === m.default[k]) ? m.default : m;}
const __cjs_to_esm_hoist_0 = __cjs_interop__(await import('te' + 'st'));
const __cjs_to_esm_hoist_1 = __cjs_interop__(await import('test'));
const __cjs_to_esm_hoist_2 = __cjs_interop__(await import('test'));
const x1 = (__cjs_interop__(await import('te' + 'st')))
const x2 = (__cjs_interop__(await import('test')))().test
console.log((__cjs_interop__(await import('test'))))

function test() {
const y1 = __cjs_to_esm_hoist_0
const y2 = __cjs_to_esm_hoist_1().test
consoe.log(__cjs_to_esm_hoist_2)
}

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
const require = () => {}
require('test')
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## cjs-to-esm

```txt
[unmapped] --> (0:0) "let __filename = \"/test.js\"; let __dirname = \"/\";\n"
[unmapped] --> (1:0) "let exports = {}; const module = { exports };\n"
(0:0) "{\n" --> (2:0) "{\n"
(1:0) " const require = () => {}\n" --> (3:0) " const require = () => {}\n"
(2:0) " require('test')\n" --> (4:0) " require('test')\n"
(3:0) "}\n" --> (5:0) "}\n"
[unmapped] --> (7:0) ";__vite_ssr_exportAll__(module.exports);\n"
[unmapped] --> (8:0) "export default module.exports;\n"
[unmapped] --> (9:0) "export const __cjs_module_runner_transform = true;\n"
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
## Input

```js
{
const require = () => {}
require('test')
}
```

## cjs-to-esm

**Status:** transformed

**References:** (none)

[Source map visualization](https://evanw.github.io/source-map-visualization/#MjY5AGxldCBfX2ZpbGVuYW1lID0gIi90ZXN0LmpzIjsgbGV0IF9fZGlybmFtZSA9ICIvIjsKbGV0IGV4cG9ydHMgPSB7fTsgY29uc3QgbW9kdWxlID0geyBleHBvcnRzIH07CnsKICBjb25zdCByZXF1aXJlID0gKCkgPT4ge30KICByZXF1aXJlKCd0ZXN0JykKfQoKO19fdml0ZV9zc3JfZXhwb3J0QWxsX18obW9kdWxlLmV4cG9ydHMpOwpleHBvcnQgZGVmYXVsdCBtb2R1bGUuZXhwb3J0czsKZXhwb3J0IGNvbnN0IF9fY2pzX21vZHVsZV9ydW5uZXJfdHJhbnNmb3JtID0gdHJ1ZTsKMjY2AHsidmVyc2lvbiI6Mywic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsie1xuICBjb25zdCByZXF1aXJlID0gKCkgPT4ge31cbiAgcmVxdWlyZSgndGVzdCcpXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDaEI7Ozs7OyJ9)

```js
let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
{
const require = () => {}
require('test')
}

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
'production' !== process.env.NODE_ENV &&
(function () {
var React = require('react')
var ReactDOM = require('react-dom')
exports.useSyncExternalStoreWithSelector = function () {}
})()
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## cjs-to-esm

```txt
[unmapped] --> (0:0) "let __filename = \"/test.js\"; let __dirname = \"/\";\n"
[unmapped] --> (1:0) "let exports = {}; const module = { exports };\n"
[unmapped] --> (2:0) "function __cjs_interop__(m) {return m.__cjs_module_runner_transform || \"default\" in m && Object.keys(m).every((k) => k === \"default\" || m[k] === m.default[k]) ? m.default : m;}\n"
[unmapped] --> (3:0) "const __cjs_to_esm_hoist_0 = __cjs_interop__(await import('react'));\n"
[unmapped] --> (4:0) "const __cjs_to_esm_hoist_1 = __cjs_interop__(await import('react-dom'));\n"
(0:0) "'production' !== process.env.NODE_ENV &&\n" --> (5:0) "'production' !== process.env.NODE_ENV &&\n"
(1:0) " (function () {\n" --> (6:0) " (function () {\n"
(2:0) " var React = require('react')\n" --> (7:0) " var React = __cjs_to_esm_hoist_0\n"
(3:0) " var ReactDOM = require('react-dom')\n" --> (8:0) " var ReactDOM = __cjs_to_esm_hoist_1\n"
(4:0) " exports.useSyncExternalStoreWithSelector = function () {}\n" --> (9:0) " exports.useSyncExternalStoreWithSelector = function () {}\n"
(5:0) " })()\n" --> (10:0) " })()\n"
[unmapped] --> (12:0) ";__vite_ssr_exportAll__(module.exports);\n"
[unmapped] --> (13:0) "export default module.exports;\n"
[unmapped] --> (14:0) "export const __cjs_module_runner_transform = true;\n"
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
## Input

```js
'production' !== process.env.NODE_ENV &&
(function () {
var React = require('react')
var ReactDOM = require('react-dom')
exports.useSyncExternalStoreWithSelector = function () {}
})()
```

## cjs-to-esm

**Status:** transformed

**References:** (none)

[Source map visualization](https://evanw.github.io/source-map-visualization/#NzQzAGxldCBfX2ZpbGVuYW1lID0gIi90ZXN0LmpzIjsgbGV0IF9fZGlybmFtZSA9ICIvIjsKbGV0IGV4cG9ydHMgPSB7fTsgY29uc3QgbW9kdWxlID0geyBleHBvcnRzIH07CmZ1bmN0aW9uIF9fY2pzX2ludGVyb3BfXyhtKSB7cmV0dXJuIG0uX19janNfbW9kdWxlX3J1bm5lcl90cmFuc2Zvcm0gfHwgImRlZmF1bHQiIGluIG0gJiYgT2JqZWN0LmtleXMobSkuZXZlcnkoKGspID0+IGsgPT09ICJkZWZhdWx0IiB8fCBtW2tdID09PSBtLmRlZmF1bHRba10pID8gbS5kZWZhdWx0IDogbTt9CmNvbnN0IF9fY2pzX3RvX2VzbV9ob2lzdF8wID0gX19janNfaW50ZXJvcF9fKGF3YWl0IGltcG9ydCgncmVhY3QnKSk7CmNvbnN0IF9fY2pzX3RvX2VzbV9ob2lzdF8xID0gX19janNfaW50ZXJvcF9fKGF3YWl0IGltcG9ydCgncmVhY3QtZG9tJykpOwoncHJvZHVjdGlvbicgIT09IHByb2Nlc3MuZW52Lk5PREVfRU5WICYmCiAgKGZ1bmN0aW9uICgpIHsKICAgIHZhciBSZWFjdCA9IF9fY2pzX3RvX2VzbV9ob2lzdF8wCiAgICB2YXIgUmVhY3RET00gPSBfX2Nqc190b19lc21faG9pc3RfMQogICAgZXhwb3J0cy51c2VTeW5jRXh0ZXJuYWxTdG9yZVdpdGhTZWxlY3RvciA9IGZ1bmN0aW9uICgpIHt9CiAgfSkoKQoKO19fdml0ZV9zc3JfZXhwb3J0QWxsX18obW9kdWxlLmV4cG9ydHMpOwpleHBvcnQgZGVmYXVsdCBtb2R1bGUuZXhwb3J0czsKZXhwb3J0IGNvbnN0IF9fY2pzX21vZHVsZV9ydW5uZXJfdHJhbnNmb3JtID0gdHJ1ZTsKNjQ2AHsidmVyc2lvbiI6Mywic291cmNlcyI6WyIiXSwic291cmNlc0NvbnRlbnQiOlsiJ3Byb2R1Y3Rpb24nICE9PSBwcm9jZXNzLmVudi5OT0RFX0VOViAmJlxuICAoZnVuY3Rpb24gKCkge1xuICAgIHZhciBSZWFjdCA9IHJlcXVpcmUoJ3JlYWN0JylcbiAgICB2YXIgUmVhY3RET00gPSByZXF1aXJlKCdyZWFjdC1kb20nKVxuICAgIGV4cG9ydHMudXNlU3luY0V4dGVybmFsU3RvcmVXaXRoU2VsZWN0b3IgPSBmdW5jdGlvbiAoKSB7fVxuICB9KSgpXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDZixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7QUFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs7Ozs7In0=)

```js
let __filename = "/test.js"; let __dirname = "/";
let exports = {}; const module = { exports };
function __cjs_interop__(m) {return m.__cjs_module_runner_transform || "default" in m && Object.keys(m).every((k) => k === "default" || m[k] === m.default[k]) ? m.default : m;}
const __cjs_to_esm_hoist_0 = __cjs_interop__(await import('react'));
const __cjs_to_esm_hoist_1 = __cjs_interop__(await import('react-dom'));
'production' !== process.env.NODE_ENV &&
(function () {
var React = __cjs_to_esm_hoist_0
var ReactDOM = __cjs_to_esm_hoist_1
exports.useSyncExternalStoreWithSelector = function () {}
})()

;__vite_ssr_exportAll__(module.exports);
export default module.exports;
export const __cjs_module_runner_transform = true;
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
if (true) {
module.exports = require('./cjs/use-sync-external-store.production.js')
} else {
module.exports = require('./cjs/use-sync-external-store.development.js')
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
## cjs-to-esm

```txt
[unmapped] --> (0:0) "let __filename = \"/test.js\"; let __dirname = \"/\";\n"
[unmapped] --> (1:0) "let exports = {}; const module = { exports };\n"
[unmapped] --> (2:0) "function __cjs_interop__(m) {return m.__cjs_module_runner_transform || \"default\" in m && Object.keys(m).every((k) => k === \"default\" || m[k] === m.default[k]) ? m.default : m;}\n"
(0:0) "if (true) {\n" --> (3:0) "if (true) {\n"
(1:0) " module.exports = require" --> (4:0) " module.exports = (__cjs_interop__(await import"
(1:26) "('./cjs/use-sync-external-store.production.js')\n" --> (4:48) "('./cjs/use-sync-external-store.production.js')))\n"
(2:0) "} else {\n" --> (5:0) "} else {\n"
(3:0) " module.exports = require" --> (6:0) " module.exports = (__cjs_interop__(await import"
(3:26) "('./cjs/use-sync-external-store.development.js')\n" --> (6:48) "('./cjs/use-sync-external-store.development.js')))\n"
(4:0) "}\n" --> (7:0) "}\n"
[unmapped] --> (9:0) ";__vite_ssr_exportAll__(module.exports);\n"
[unmapped] --> (10:0) "export default module.exports;\n"
[unmapped] --> (11:0) "export const __cjs_module_runner_transform = true;\n"
```
Loading
Loading