@mandujs/core 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/bundler/build.ts +120 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mandujs/core",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Mandu Framework Core - Spec, Generator, Guard, Runtime",
5
5
  "type": "module",
6
6
  "main": "./src/index.ts",
@@ -208,6 +208,7 @@ export { islandRegistry, hydratedRoots };
208
208
 
209
209
  /**
210
210
  * React shim 소스 생성 (import map용)
211
+ * 주의: export *는 Bun bundler에서 제대로 작동하지 않으므로 명시적 export 필요
211
212
  */
212
213
  function generateReactShimSource(): string {
213
214
  return `
@@ -215,42 +216,139 @@ function generateReactShimSource(): string {
215
216
  * Mandu React Shim (Generated)
216
217
  * import map을 통해 bare specifier 해결
217
218
  */
218
- import * as React from 'react';
219
- export * from 'react';
219
+ import React, {
220
+ // Core
221
+ createElement,
222
+ cloneElement,
223
+ createContext,
224
+ createRef,
225
+ forwardRef,
226
+ isValidElement,
227
+ memo,
228
+ lazy,
229
+ // Hooks
230
+ useState,
231
+ useEffect,
232
+ useContext,
233
+ useReducer,
234
+ useCallback,
235
+ useMemo,
236
+ useRef,
237
+ useLayoutEffect,
238
+ useImperativeHandle,
239
+ useDebugValue,
240
+ useDeferredValue,
241
+ useTransition,
242
+ useId,
243
+ useSyncExternalStore,
244
+ useInsertionEffect,
245
+ // Components
246
+ Fragment,
247
+ Suspense,
248
+ StrictMode,
249
+ Profiler,
250
+ // Types
251
+ Component,
252
+ PureComponent,
253
+ Children,
254
+ } from 'react';
255
+
256
+ // Named exports
257
+ export {
258
+ createElement,
259
+ cloneElement,
260
+ createContext,
261
+ createRef,
262
+ forwardRef,
263
+ isValidElement,
264
+ memo,
265
+ lazy,
266
+ useState,
267
+ useEffect,
268
+ useContext,
269
+ useReducer,
270
+ useCallback,
271
+ useMemo,
272
+ useRef,
273
+ useLayoutEffect,
274
+ useImperativeHandle,
275
+ useDebugValue,
276
+ useDeferredValue,
277
+ useTransition,
278
+ useId,
279
+ useSyncExternalStore,
280
+ useInsertionEffect,
281
+ Fragment,
282
+ Suspense,
283
+ StrictMode,
284
+ Profiler,
285
+ Component,
286
+ PureComponent,
287
+ Children,
288
+ };
289
+
290
+ // Default export
220
291
  export default React;
221
292
  `;
222
293
  }
223
294
 
224
295
  /**
225
296
  * React DOM shim 소스 생성
297
+ * 주의: export *는 Bun bundler에서 제대로 작동하지 않으므로 명시적 export 필요
226
298
  */
227
299
  function generateReactDOMShimSource(): string {
228
300
  return `
229
301
  /**
230
302
  * Mandu React DOM Shim (Generated)
231
303
  */
232
- import * as ReactDOM from 'react-dom';
233
- export * from 'react-dom';
304
+ import ReactDOM, {
305
+ createPortal,
306
+ flushSync,
307
+ render,
308
+ unmountComponentAtNode,
309
+ findDOMNode,
310
+ hydrate,
311
+ version,
312
+ } from 'react-dom';
313
+
314
+ // Named exports
315
+ export {
316
+ createPortal,
317
+ flushSync,
318
+ render,
319
+ unmountComponentAtNode,
320
+ findDOMNode,
321
+ hydrate,
322
+ version,
323
+ };
324
+
325
+ // Default export
234
326
  export default ReactDOM;
235
327
  `;
236
328
  }
237
329
 
238
330
  /**
239
331
  * React DOM Client shim 소스 생성
332
+ * 주의: export *는 Bun bundler에서 제대로 작동하지 않으므로 명시적 export 필요
240
333
  */
241
334
  function generateReactDOMClientShimSource(): string {
242
335
  return `
243
336
  /**
244
337
  * Mandu React DOM Client Shim (Generated)
245
338
  */
246
- import * as ReactDOMClient from 'react-dom/client';
247
- export * from 'react-dom/client';
248
- export default ReactDOMClient;
339
+ import { createRoot, hydrateRoot } from 'react-dom/client';
340
+
341
+ // Named exports (명시적으로 re-export)
342
+ export { createRoot, hydrateRoot };
343
+
344
+ // Default export
345
+ export default { createRoot, hydrateRoot };
249
346
  `;
250
347
  }
251
348
 
252
349
  /**
253
350
  * JSX Runtime shim 소스 생성
351
+ * 주의: export *는 Bun bundler에서 제대로 작동하지 않으므로 명시적 export 필요
254
352
  */
255
353
  function generateJsxRuntimeShimSource(): string {
256
354
  return `
@@ -258,14 +356,19 @@ function generateJsxRuntimeShimSource(): string {
258
356
  * Mandu JSX Runtime Shim (Generated)
259
357
  * Production JSX 변환용
260
358
  */
261
- import * as jsxRuntime from 'react/jsx-runtime';
262
- export * from 'react/jsx-runtime';
263
- export default jsxRuntime;
359
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
360
+
361
+ // Named exports
362
+ export { jsx, jsxs, Fragment };
363
+
364
+ // Default export
365
+ export default { jsx, jsxs, Fragment };
264
366
  `;
265
367
  }
266
368
 
267
369
  /**
268
370
  * JSX Dev Runtime shim 소스 생성
371
+ * 주의: export *는 Bun bundler에서 제대로 작동하지 않으므로 명시적 export 필요
269
372
  */
270
373
  function generateJsxDevRuntimeShimSource(): string {
271
374
  return `
@@ -273,9 +376,13 @@ function generateJsxDevRuntimeShimSource(): string {
273
376
  * Mandu JSX Dev Runtime Shim (Generated)
274
377
  * Development JSX 변환용
275
378
  */
276
- import * as jsxDevRuntime from 'react/jsx-dev-runtime';
277
- export * from 'react/jsx-dev-runtime';
278
- export default jsxDevRuntime;
379
+ import { jsxDEV, Fragment } from 'react/jsx-dev-runtime';
380
+
381
+ // Named exports
382
+ export { jsxDEV, Fragment };
383
+
384
+ // Default export
385
+ export default { jsxDEV, Fragment };
279
386
  `;
280
387
  }
281
388