Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
4412003
feat(rsc): add module export transform
hi-ogawa Jul 30, 2026
e18a148
refactor(rsc): migrate module export transforms
hi-ogawa Jul 30, 2026
6360351
refactor(rsc): clarify module export transform types
hi-ogawa Jul 30, 2026
7c52056
docs(rsc): explain module export transform
hi-ogawa Jul 30, 2026
4d0b874
feat(rsc): return module export contexts
hi-ogawa Jul 30, 2026
fa56085
Merge branch 'main' into fix/issue-1350
hi-ogawa Jul 30, 2026
1ad2fae
refactor(rsc): simplify multi-declarator exports
hi-ogawa Jul 30, 2026
e5354dd
Merge branch 'main' into fix/issue-1350
hi-ogawa Jul 31, 2026
ec8275e
refactor(rsc): split module export models
hi-ogawa Jul 31, 2026
50ecb7d
test(rsc): compare module export source maps
hi-ogawa Jul 31, 2026
62ab0cc
refactor(rsc): simplify module export names
hi-ogawa Jul 31, 2026
d904947
test(rsc): group module export source maps
hi-ogawa Jul 31, 2026
14afa60
Merge branch 'main' into fix/issue-1350
hi-ogawa Jul 31, 2026
3c7641e
refactor(rsc): allow mutable module exports
hi-ogawa Jul 31, 2026
9bb4d95
test(rsc): compare module export coverage
hi-ogawa Jul 31, 2026
18c328f
fix(rsc): preserve module export effect mappings
hi-ogawa Jul 31, 2026
b5f3300
Merge branch 'main' into fix/issue-1350
hi-ogawa Jul 31, 2026
406ae52
refactor(rsc): narrow module export transform
hi-ogawa Jul 31, 2026
714d08a
test(rsc): compare module export mappings
hi-ogawa Jul 31, 2026
27485c9
feat(rsc): add module export wrapper transform
hi-ogawa Jul 31, 2026
9643428
Merge remote-tracking branch 'origin/fix/issue-1350' into refactor/mo…
hi-ogawa Jul 31, 2026
be2b47d
docs(rsc): explain module export source mapping
hi-ogawa Jul 31, 2026
a479d5d
test(rsc): snapshot module export wrapper mappings
hi-ogawa Jul 31, 2026
d894c62
test(rsc): cover module export semantics
hi-ogawa Jul 31, 2026
16e44fa
test(rsc): migrate hoist source map snapshots
hi-ogawa Jul 31, 2026
235da5d
docs(rsc): remove stale inline mapping todo
hi-ogawa Jul 31, 2026
0fd8a75
Merge remote-tracking branch 'origin/fix/issue-1350' into refactor/mo…
hi-ogawa Jul 31, 2026
16fff26
test(rsc): cover module export wrapper semantics
hi-ogawa Jul 31, 2026
787b30d
Merge remote-tracking branch 'origin/main' into refactor/module-expor…
hi-ogawa Aug 3, 2026
0cc0fec
Merge remote-tracking branch 'origin/main' into refactor/module-expor…
hi-ogawa Aug 3, 2026
8dfffef
refactor(rsc): rename module export wrap transform
hi-ogawa Aug 3, 2026
5560fff
refactor(rsc): remove unused export metadata
hi-ogawa Aug 3, 2026
040fd9e
refactor(rsc): reuse scanned export metadata
hi-ogawa Aug 3, 2026
7a1fb1f
Merge remote-tracking branch 'origin/main' into refactor/module-expor…
hi-ogawa Aug 3, 2026
70d9def
docs(rsc): illustrate module export wrap rewrites
hi-ogawa Aug 3, 2026
4077b24
refactor(rsc): scan direct export functions
hi-ogawa Aug 3, 2026
57ce210
refactor(rsc): use maybe-named function type
hi-ogawa Aug 3, 2026
ef3cccd
docs(rsc): explain direct export functions
hi-ogawa Aug 3, 2026
febdbd6
refactor(rsc): align module export wrap API
hi-ogawa Aug 3, 2026
8633c12
test(rsc): move module export wrap output to fixtures
hi-ogawa Aug 3, 2026
e7c2d36
test(rsc): snapshot filtered module export wrap
hi-ogawa Aug 3, 2026
5bd0e01
refactor(rsc): migrate module export wrappers
hi-ogawa Aug 3, 2026
4bf52e5
refactor(rsc): share directive prologue boundary
hi-ogawa Aug 3, 2026
bc30f80
refactor(rsc): delegate function name restoration
hi-ogawa Aug 3, 2026
c5366a3
docs(rsc): document module export wrap context
hi-ogawa Aug 3, 2026
4101c45
docs(rsc): illustrate original function names
hi-ogawa Aug 3, 2026
10063a4
docs(rsc): clarify module export wrap example
hi-ogawa Aug 3, 2026
3b5551e
refactor(rsc): simplify wrap context creation
hi-ogawa Aug 3, 2026
1f805f2
fix(rsc): preserve callable cache export names
hi-ogawa Aug 3, 2026
9df7b20
fix(rsc): adapt inline cache runtime callback
hi-ogawa Aug 3, 2026
f831e47
test(rsc): remove callable name e2e assertion
hi-ogawa Aug 3, 2026
17437f8
docs(rsc): explain module export rewrite helpers
hi-ogawa Aug 3, 2026
f7dbaa9
refactor(rsc): clarify wrapped binding strategy
hi-ogawa Aug 3, 2026
53c87a5
nit
hi-ogawa Aug 3, 2026
1f977ec
refactor(rsc): scan direct function names
hi-ogawa Aug 3, 2026
820ec08
test(rsc): contrast module wrapper bindings
hi-ogawa Aug 3, 2026
45eeb0f
test(rsc): dump canonical wrapper bindings
hi-ogawa Aug 3, 2026
401af0e
docs(rsc): explain local wrapper bindings
hi-ogawa Aug 3, 2026
bd92188
docs(rsc): highlight local wrapper resolution
hi-ogawa Aug 3, 2026
ad77ddd
nit
hi-ogawa Aug 3, 2026
f2146be
refactor(rsc): simplify default export snapshot
hi-ogawa Aug 3, 2026
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import {
hasDirective,
transformDirectiveProxyExport,
transformHoistInlineDirective,
transformWrapExport,
transformModuleExportWrap,
} from '@vitejs/plugin-rsc/transforms'
import { parseAstAsync, type Plugin } from 'vite'

Expand All @@ -29,21 +29,26 @@ export function callableCachePlugin(): Plugin {
const environmentName = this.environment.name

if (environmentName === 'rsc') {
const runtime = (value: string, name: string) =>
const runtime = (value: string, name: string, originalName?: string) =>
`$$ReactServer.registerServerReference(` +
`$$cacheWrapper(${value}),` +
(originalName
? `Object.defineProperty($$cacheWrapper(${value}), "name", { value: ${JSON.stringify(originalName)} }),`
: `$$cacheWrapper(${value}),`) +
`${JSON.stringify(reference.referenceKey)},` +
`${JSON.stringify(name)})`
const result = hasDirective(ast.body, directive)
? transformWrapExport(code, ast, {
runtime,
? transformModuleExportWrap(code, ast, {
generate: ({ implementation, originalName, exportName }) =>
runtime(implementation, exportName, originalName ?? exportName),
rejectNonAsyncFunction: true,
})
: transformHoistInlineDirective(code, ast, {
directive,
rejectNonAsyncFunction: true,
hoistRuntime: true,
runtime,
// TODO: Preserve the source function name once the inline hoist
// runtime callback exposes it.
runtime: (value, name) => runtime(value, name),
})
if (!result.output.hasChanged()) {
manager.serverReferences.deleteClaim(pluginName, id)
Expand All @@ -52,7 +57,7 @@ export function callableCachePlugin(): Plugin {

manager.serverReferences.replaceClaim(pluginName, id, {
...reference,
exportNames: 'names' in result ? result.names : result.exportNames,
exportNames: 'names' in result ? result.names : result.referenceNames,
})
result.output.prepend(
`import $$cacheWrapper from "/src/framework/use-cache-runtime";\n` +
Expand Down
20 changes: 10 additions & 10 deletions packages/plugin-rsc/src/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ import {
slash,
} from './plugins/vite-utils'
import {
type TransformWrapExportFilter,
type TransformModuleExportWrapFilter,
hasDirective,
transformDirectiveProxyExport,
transformExpandExportAll,
transformServerActionServer,
transformWrapExport,
transformModuleExportWrap,
findDirectives,
type TransformExpandExportAllContext,
} from './transforms'
Expand Down Expand Up @@ -2419,7 +2419,7 @@ function vitePluginRscCss(
}: {
id: string
code: string
}): false | TransformWrapExportFilter {
}): false | TransformModuleExportWrapFilter {
const { filename, query } = parseIdQuery(id)
if ('vite-rsc-css-export' in query) {
const value = query['vite-rsc-css-export']
Expand Down Expand Up @@ -2451,7 +2451,7 @@ function vitePluginRscCss(
// export const Page = () => {}
return (_name: string, meta) =>
!!(
(meta.isFunction && meta.declName && /^[A-Z]/.test(meta.declName)) ||
(meta.isFunction && meta.localName && /^[A-Z]/.test(meta.localName)) ||
(meta.defaultExportIdentifierName &&
/^[A-Z]/.test(meta.defaultExportIdentifierName))
)
Expand Down Expand Up @@ -2753,19 +2753,19 @@ export async function transformRscCssExport(options: {
ast: Awaited<ReturnType<typeof parseAstAsync>>
code: string
id?: string
filter: TransformWrapExportFilter
filter: TransformModuleExportWrapFilter
}): Promise<{ output: MagicString } | undefined> {
if (hasDirective(options.ast.body, 'use client')) {
return
}

const result = transformWrapExport(options.code, options.ast, {
runtime: (value, name, meta) =>
`__vite_rsc_wrap_css__(${value}, ${JSON.stringify(
meta.defaultExportIdentifierName ?? name,
const result = transformModuleExportWrap(options.code, options.ast, {
generate: ({ implementation, exportName, meta }) =>
`__vite_rsc_wrap_css__(${implementation}, ${JSON.stringify(
meta.defaultExportIdentifierName ?? exportName,
)})`,
filter: options.filter,
ignoreExportAllDeclaration: true,
exportAll: 'preserve',
})
if (result.output.hasChanged()) {
if (!options.code.includes('__vite_rsc_react__')) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
export async function direct() {}

const indirect = async () => {}
export { indirect }

consume(direct, indirect)
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
## wrap-export

```txt
(0:7) "async function direct() {}\n" --> (0:0) "async function direct() {}\n"
(2:0) "const indirect = async () => {}\n" --> (2:0) "const indirect = async () => {}\n"
(5:0) "consume(direct, indirect)\n" --> (5:0) "consume(direct, indirect)\n"
(0:0) "export async function direct() {}\n" --> (6:0) "direct = /* #__PURE__ */ registerServerReference(direct, \"direct\");\n"
(0:0) "export async function direct() {}\n" --> (7:0) "export { direct };\n"
[unmapped] --> (8:0) ";\n"
[unmapped] --> (9:0) "const $$wrap_indirect = /* #__PURE__ */ registerServerReference(indirect, \"indirect\");\n"
[unmapped] --> (10:0) "export { $$wrap_indirect as indirect };\n"
```

## module-export-effect

```txt
(0:7) "async function direct() {}\n" --> (0:0) "async function direct() {}\n"
(2:0) "const indirect = async () => {}\n" --> (2:0) "const indirect = async () => {}\n"
(3:0) "export { indirect }\n" --> (3:0) "export { indirect }\n"
(5:0) "consume(direct, indirect)\n" --> (5:0) "consume(direct, indirect)\n"
(0:0) "export async function direct() {}\n" --> (6:0) "\n"
(0:0) "export async function direct() {}\n" --> (7:0) "registerServerReference(direct, \"direct\");\n"
(0:0) "export async function direct() {}\n" --> (8:0) "export { direct };\n"
[unmapped] --> (10:0) "registerServerReference(indirect, \"indirect\");"
```

## module-export-wrap

```txt
(0:7) "async function direct() {}\n" --> (0:0) "\n"
(0:7) "async function direct() " --> (1:0) "const $$module_0_implementation_direct = async function $$module_0_implementation_direct() "
(0:31) "{}\n" --> (1:91) "{};\n"
[unmapped] --> (2:0) "export const direct = /* #__PURE__ */ registerServerReference(Object.defineProperty($$module_0_implementation_direct, \"name\", { value: \"direct\" }), \"direct\");\n"
(2:0) "const indirect = async () => {}\n" --> (4:0) "const indirect = async () => {}\n"
(5:0) "consume(direct, indirect)\n" --> (7:0) "consume(direct, indirect)\n"
[unmapped] --> (9:0) "const $$module_1_binding_indirect = /* #__PURE__ */ registerServerReference(indirect, \"indirect\");\n"
[unmapped] --> (10:0) "export { $$module_1_binding_indirect as indirect };\n"
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
## Input

```js
export async function direct() {}

const indirect = async () => {}
export { indirect }

consume(direct, indirect)
```

## wrap-export

**Status:** transformed

**References:** direct, indirect

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

```js
async function direct() {}

const indirect = async () => {}


consume(direct, indirect)
direct = /* #__PURE__ */ registerServerReference(direct, "direct");
export { direct };
;
const $$wrap_indirect = /* #__PURE__ */ registerServerReference(indirect, "indirect");
export { $$wrap_indirect as indirect };
```

## module-export-effect

**Status:** transformed

**References:** direct, indirect

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

```js
async function direct() {}

const indirect = async () => {}
export { indirect }

consume(direct, indirect)

registerServerReference(direct, "direct");
export { direct };

registerServerReference(indirect, "indirect");
```

## module-export-wrap

**Status:** transformed

**References:** direct, indirect

[Source map visualization](https://evanw.github.io/source-map-visualization/#NDY4AApjb25zdCAkJG1vZHVsZV8wX2ltcGxlbWVudGF0aW9uX2RpcmVjdCA9IGFzeW5jIGZ1bmN0aW9uICQkbW9kdWxlXzBfaW1wbGVtZW50YXRpb25fZGlyZWN0KCkge307CmV4cG9ydCBjb25zdCBkaXJlY3QgPSAvKiAjX19QVVJFX18gKi8gcmVnaXN0ZXJTZXJ2ZXJSZWZlcmVuY2UoT2JqZWN0LmRlZmluZVByb3BlcnR5KCQkbW9kdWxlXzBfaW1wbGVtZW50YXRpb25fZGlyZWN0LCAibmFtZSIsIHsgdmFsdWU6ICJkaXJlY3QiIH0pLCAiZGlyZWN0Iik7Cgpjb25zdCBpbmRpcmVjdCA9IGFzeW5jICgpID0+IHt9CgoKY29uc3VtZShkaXJlY3QsIGluZGlyZWN0KQoKY29uc3QgJCRtb2R1bGVfMV9iaW5kaW5nX2luZGlyZWN0ID0gLyogI19fUFVSRV9fICovIHJlZ2lzdGVyU2VydmVyUmVmZXJlbmNlKGluZGlyZWN0LCAiaW5kaXJlY3QiKTsKZXhwb3J0IHsgJCRtb2R1bGVfMV9iaW5kaW5nX2luZGlyZWN0IGFzIGluZGlyZWN0IH07CjM0MQB7InZlcnNpb24iOjMsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBhc3luYyBmdW5jdGlvbiBkaXJlY3QoKSB7fVxuXG5jb25zdCBpbmRpcmVjdCA9IGFzeW5jICgpID0+IHt9XG5leHBvcnQgeyBpbmRpcmVjdCB9XG5cbmNvbnN1bWUoZGlyZWN0LCBpbmRpcmVjdClcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBTztBQUFBLDJGQUF3QixDQUFDOzs7QUFFaEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7OztBQUc5QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUTs7OzsifQ==)

```js

const $$module_0_implementation_direct = async function $$module_0_implementation_direct() {};
export const direct = /* #__PURE__ */ registerServerReference(Object.defineProperty($$module_0_implementation_direct, "name", { value: "direct" }), "direct");

const indirect = async () => {}


consume(direct, indirect)

const $$module_1_binding_indirect = /* #__PURE__ */ registerServerReference(indirect, "indirect");
export { $$module_1_binding_indirect as indirect };
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
'use server'

export class NamedClass {}

export const ClassExpression = class InnerClass {}

export default class DefaultClass {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
## wrap-export

```txt
(0:0) "'use server'\n" --> (0:0) "'use server'\n"
(2:7) "class NamedClass {}\n" --> (2:0) "class NamedClass {}\n"
(4:7) "const" --> (4:0) "let"
(4:12) " ClassExpression = class InnerClass {}\n" --> (4:3) " ClassExpression = class InnerClass {}\n"
(6:15) "class DefaultClass {}\n" --> (6:0) "class DefaultClass {}\n"
(2:0) "export class NamedClass {}\n" --> (7:0) "NamedClass = /* #__PURE__ */ registerServerReference(NamedClass, \"NamedClass\");\n"
(2:0) "export class NamedClass {}\n" --> (8:0) "export { NamedClass };\n"
(4:0) "export const ClassExpression = class InnerClass {}\n" --> (9:0) "ClassExpression = /* #__PURE__ */ registerServerReference(ClassExpression, \"ClassExpression\");\n"
(4:0) "export const ClassExpression = class InnerClass {}\n" --> (10:0) "export { ClassExpression };\n"
[unmapped] --> (11:0) ";\n"
[unmapped] --> (12:0) "const $$wrap_DefaultClass = /* #__PURE__ */ registerServerReference(DefaultClass, \"default\");\n"
[unmapped] --> (13:0) "export { $$wrap_DefaultClass as default };\n"
```

## module-export-effect

```txt
(0:0) "'use server'\n" --> (0:0) "'use server'\n"
(2:7) "class NamedClass {}\n" --> (2:0) "class NamedClass {}\n"
(4:7) "const ClassExpression = class InnerClass {}\n" --> (4:0) "const ClassExpression = class InnerClass {}\n"
(6:15) "class DefaultClass {}\n" --> (6:0) "class DefaultClass {}\n"
(2:0) "export class NamedClass {}\n" --> (7:0) "\n"
(2:0) "export class NamedClass {}\n" --> (8:0) "registerServerReference(NamedClass, \"NamedClass\");\n"
(2:0) "export class NamedClass {}\n" --> (9:0) "export { NamedClass };\n"
(4:0) "export const ClassExpression = class InnerClass {}\n" --> (10:0) "\n"
(4:0) "export const ClassExpression = class InnerClass {}\n" --> (11:0) "registerServerReference(ClassExpression, \"ClassExpression\");\n"
(4:0) "export const ClassExpression = class InnerClass {}\n" --> (12:0) "export { ClassExpression };\n"
(6:0) "export default class DefaultClass {}\n" --> (13:0) "\n"
(6:0) "export default class DefaultClass {}\n" --> (14:0) "registerServerReference(DefaultClass, \"default\");\n"
(6:0) "export default class DefaultClass {}\n" --> (15:0) "export default DefaultClass;\n"
```

## module-export-wrap

```txt
(0:0) "'use server'\n" --> (0:0) "'use server'\n"
(2:7) "class NamedClass {}\n" --> (2:0) "class NamedClass {}\n"
(4:7) "const ClassExpression = class InnerClass {}\n" --> (4:0) "const ClassExpression = class InnerClass {}\n"
(6:15) "class DefaultClass {}\n" --> (6:0) "class DefaultClass {}\n"
[unmapped] --> (8:0) "const $$module_0_binding_NamedClass = /* #__PURE__ */ registerServerReference(NamedClass, \"NamedClass\");\n"
[unmapped] --> (9:0) "export { $$module_0_binding_NamedClass as NamedClass };\n"
[unmapped] --> (10:0) "const $$module_1_binding_ClassExpression = /* #__PURE__ */ registerServerReference(ClassExpression, \"ClassExpression\");\n"
[unmapped] --> (11:0) "export { $$module_1_binding_ClassExpression as ClassExpression };\n"
[unmapped] --> (12:0) "const $$module_2_binding_default = /* #__PURE__ */ registerServerReference(DefaultClass, \"default\");\n"
[unmapped] --> (13:0) "export { $$module_2_binding_default as default };\n"
```
Loading
Loading