'use strict';
const url = require('url');
let turbopackModuleIdx = 0;
const turbopackServerModules = {};
const turbopackClientModules = {};
const turbopackErroredModules = {};
const turbopackServerMap = {};
const turbopackClientMap = {};
global.__turbopack_require__ = function (id) {
if (turbopackErroredModules[id]) {
throw turbopackErroredModules[id];
}
return turbopackClientModules[id] || turbopackServerModules[id];
};
const Server = require('react-server-dom-turbopack/server');
const registerClientReference = Server.registerClientReference;
const registerServerReference = Server.registerServerReference;
const createClientModuleProxy = Server.createClientModuleProxy;
exports.turbopackMap = turbopackClientMap;
exports.turbopackModules = turbopackClientModules;
exports.turbopackServerMap = turbopackServerMap;
exports.moduleLoading = {
prefix: '/prefix/',
};
exports.clientExports = function clientExports(moduleExports, chunkUrl) {
const chunks = [];
if (chunkUrl !== undefined) {
chunks.push(chunkUrl);
}
const idx = '' + turbopackModuleIdx++;
turbopackClientModules[idx] = moduleExports;
const path = url.pathToFileURL(idx).href;
turbopackClientMap[path] = {
id: idx,
chunks,
name: '*',
};
if ('__esModule' in moduleExports) {
turbopackClientMap[path + '#'] = {
id: idx,
chunks,
name: '',
};
}
if (typeof moduleExports.then === 'function') {
moduleExports.then(
asyncModuleExports => {
for (const name in asyncModuleExports) {
turbopackClientMap[path + '#' + name] = {
id: idx,
chunks,
name: name,
};
}
},
() => {},
);
}
if ('split' in moduleExports) {
const splitIdx = '' + turbopackModuleIdx++;
turbopackClientModules[splitIdx] = {
s: moduleExports.split,
};
turbopackClientMap[path + '#split'] = {
id: splitIdx,
chunks,
name: 's',
};
}
return createClientModuleProxy(path);
};
exports.clientExportsESM = function clientExportsESM(
moduleExports,
options?: {forceClientModuleProxy?: boolean} = {},
) {
const chunks = [];
const idx = '' + turbopackModuleIdx++;
turbopackClientModules[idx] = moduleExports;
const path = url.pathToFileURL(idx).href;
const createClientReferencesForExports = ({exports, async}) => {
turbopackClientMap[path] = {
id: idx,
chunks,
name: '*',
async: true,
};
if (options.forceClientModuleProxy) {
return createClientModuleProxy(path);
}
if (typeof exports === 'object') {
const references = {};
for (const name in exports) {
const id = path + '#' + name;
turbopackClientMap[path + '#' + name] = {
id: idx,
chunks,
name: name,
async,
};
references[name] = registerClientReference(() => {}, id, name);
}
return references;
}
return registerClientReference(() => {}, path, '*');
};
if (
moduleExports &&
typeof moduleExports === 'object' &&
typeof moduleExports.then === 'function'
) {
return moduleExports.then(
asyncModuleExports =>
createClientReferencesForExports({
exports: asyncModuleExports,
async: true,
}),
() => {},
);
}
return createClientReferencesForExports({exports: moduleExports});
};
exports.serverExports = function serverExports(moduleExports) {
const idx = '' + turbopackModuleIdx++;
turbopackServerModules[idx] = moduleExports;
const path = url.pathToFileURL(idx).href;
turbopackServerMap[path] = {
id: idx,
chunks: [],
name: '*',
};
if ('__esModule' in moduleExports) {
turbopackServerMap[path + '#'] = {
id: idx,
chunks: [],
name: '',
};
}
if ('split' in moduleExports) {
const splitIdx = '' + turbopackModuleIdx++;
turbopackServerModules[splitIdx] = {
s: moduleExports.split,
};
turbopackServerMap[path + '#split'] = {
id: splitIdx,
chunks: [],
name: 's',
};
}
if (typeof exports === 'function') {
registerServerReference(
(exports: any),
idx,
null,
);
} else {
const keys = Object.keys(exports);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
const value = exports[keys[i]];
if (typeof value === 'function') {
registerServerReference((value: any), idx, key);
}
}
}
return moduleExports;
};