@naiv/react-bundler 0.0.3 → 0.0.4

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.
package/README.md CHANGED
@@ -0,0 +1,72 @@
1
+ # NAIV React Bundler
2
+
3
+ Transform react file sources (tsx) into single html output. This bundler includes TailwindCSS v4 means you can use tailwind class on your react code.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install --save @naiv/react-bundler
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import fs from 'node:fs';
15
+ import path from 'node:path';
16
+ import { bundleHTML, FileSource } from '@naiv/react-bundler';
17
+
18
+ async function main() {
19
+ const logoComponent: FileSource = {
20
+ path: 'components/Logo.tsx',
21
+ content: `
22
+ import React from 'react';
23
+ export function Logo() {
24
+ return (
25
+ <div className="flex items-center space-x-2 bg-white p-3 rounded-full shadow-sm border border-teal-100 mb-6">
26
+ <div className="w-8 h-8 bg-teal-500 rounded-full flex items-center justify-center text-white font-bold">N</div>
27
+ <div className="font-bold text-teal-800">Naiv Modularity</div>
28
+ </div>
29
+ );
30
+ }
31
+ `
32
+ };
33
+
34
+ const entryPointCode = `
35
+ import { createRoot } from 'react-dom/client';
36
+ import React from 'react';
37
+ import { Logo } from './components/Logo';
38
+
39
+ function App() {
40
+ return <div className='flex flex-col items-center text-teal-600 justify-center min-h-screen bg-teal-50'>
41
+ <Logo />
42
+ <div className="text-5xl font-extrabold mb-6 tracking-tight text-teal-900">Hello Standalone World</div>
43
+ <div className="p-8 bg-white/80 backdrop-blur-md rounded-2xl shadow-2xl border border-white/20 max-w-md text-center">
44
+ <p className="text-lg text-teal-700 leading-relaxed">
45
+ Everything you see here is bundled programmatically into a <span className="font-bold text-teal-600">single HTML file</span>.
46
+ </p>
47
+ <div className="mt-6 flex justify-center space-x-3">
48
+ <span className="px-3 py-1 bg-teal-100 text-teal-700 rounded-md text-sm font-medium">Tailwind v4</span>
49
+ <span className="px-3 py-1 bg-blue-100 text-blue-700 rounded-md text-sm font-medium">esbuild</span>
50
+ <span className="px-3 py-1 bg-purple-100 text-purple-700 rounded-md text-sm font-medium">React</span>
51
+ </div>
52
+ </div>
53
+ </div>;
54
+ }
55
+
56
+ const doc = document.getElementById('root');
57
+ if (doc) {
58
+ const root = createRoot(doc);
59
+ root.render(<App />);
60
+ }
61
+ `;
62
+
63
+ const html = await bundleHTML(entryPointCode, [logoComponent]);
64
+
65
+ const outputPath = path.resolve(process.cwd(), 'index.html');
66
+ fs.writeFileSync(outputPath, html);
67
+ }
68
+
69
+ main().catch(console.error).finally(() => process.exit(0));
70
+ ```
71
+
72
+ Example code above will produce a single `index.html` file.
package/dist/index.d.ts CHANGED
@@ -8,5 +8,5 @@ export interface PageMetadata {
8
8
  title?: string;
9
9
  description?: string;
10
10
  }
11
- export declare function bundleHTML(source: string, other_sources: FileSource[], metadata: PageMetadata): Promise<string>;
11
+ export declare function bundleHTML(source: string, other_sources: FileSource[], metadata?: PageMetadata): Promise<string>;
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B9F;AA8CD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB3F;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBrH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAGD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B9F;AA8CD,wBAAsB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAoB3F;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBtH"}
package/dist/index.js CHANGED
@@ -108,7 +108,7 @@ async function bundleHTML(source, other_sources, metadata) {
108
108
  <meta charset="UTF-8">
109
109
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
110
110
  <title>${metadata?.title ?? 'My Page'}</title>
111
- <meta name="${metadata.description || ''}">
111
+ <meta name="${metadata?.description || ''}">
112
112
  <style>${css}</style>
113
113
  </head>
114
114
  <body>
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naiv/react-bundler",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "description": "Bundle react files into single html output",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {