@leadertechie/create-personal-site 0.1.0-alpha.7 → 0.1.0-alpha.9

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/dist/index.js CHANGED
@@ -83,29 +83,46 @@ Welcome to my site!`;
83
83
  await fs.ensureDir(path.join(root, 'api'));
84
84
  await fs.ensureDir(path.join(root, 'ui'));
85
85
  await fs.ensureDir(path.join(root, 'prerender'));
86
- await fs.writeFile(path.join(root, 'api/index.ts'), "import { WebsiteAPI } from '@leadertechie/personal-site-kit/api';\n\nexport default new WebsiteAPI();\n");
87
- await fs.writeFile(path.join(root, 'ui/index.ts'), "import { WebsiteUI } from '@leadertechie/personal-site-kit/shared';\nimport '@leadertechie/personal-site-kit/ui/banner';\nimport '@leadertechie/personal-site-kit/ui/footer';\nimport '@leadertechie/personal-site-kit/ui/about-me';\n\nWebsiteUI.bootstrap();\n");
86
+ await fs.writeFile(path.join(root, 'api/index.ts'), "import { WebsiteAPI } from '@leadertechie/personal-site-kit/api';\n\nconst api = new WebsiteAPI();\nexport default api;\n");
87
+ // UI Entry with Hook pattern - NO local styles.css
88
+ await fs.writeFile(path.join(root, 'ui/index.ts'), "import '@leadertechie/personal-site-kit/styles/theme.css';\nimport { WebsiteUI } from '@leadertechie/personal-site-kit/shared';\nimport '@leadertechie/personal-site-kit/ui';\n\nWebsiteUI.getInstance({\n // Using hooks for style overriding or custom logic\n theme: {\n // primaryColor: '#646cff',\n // customCss: ':root { --nav-link-color: blue; }'\n },\n onBootstrap: (ui) => {\n console.log('Site is booting up with kit!');\n }\n}).bootstrap();\n");
88
89
  await fs.writeFile(path.join(root, 'prerender/index.ts'), "import { WebsitePrerender } from '@leadertechie/personal-site-kit/prerender';\n\nexport default new WebsitePrerender();\n");
89
90
  const wranglerToml = await fs.readFile(path.join(root, 'wrangler.toml'), 'utf-8');
90
91
  const processedToml = wranglerToml
91
92
  .replace(/\{\{name\}\}/g, projectName)
92
93
  .replace(/\{\{siteTitle\}\}/g, siteTitle || 'My Personal Website');
93
94
  await fs.writeFile(path.join(root, 'wrangler.toml'), processedToml);
95
+ const indexHtmlPath = path.join(root, 'ui/index.html');
96
+ if (await fs.pathExists(indexHtmlPath)) {
97
+ const indexHtml = await fs.readFile(indexHtmlPath, 'utf-8');
98
+ await fs.writeFile(indexHtmlPath, indexHtml.replace(/\{\{siteTitle\}\}/g, siteTitle || 'My Personal Website'));
99
+ }
94
100
  const readme = await fs.readFile(path.join(root, 'README.md'), 'utf-8');
95
101
  await fs.writeFile(path.join(root, 'README.md'), readme.replace(/\{\{name\}\}/g, projectName));
96
102
  const pkg = {
97
103
  name: projectName,
98
104
  version: '0.1.0',
99
105
  private: true,
106
+ type: 'module',
100
107
  scripts: {
101
- "dev": "wrangler dev",
102
- "deploy": "wrangler deploy",
108
+ "dev": "concurrently \"npm run dev:api\" \"npm run dev:ui\"",
109
+ "dev:api": "wrangler dev",
110
+ "dev:ui": "vite",
111
+ "build": "npm run build:ui && npm run build:api",
112
+ "build:ui": "vite build",
113
+ "build:api": "wrangler deploy --dry-run --outdir dist/api",
114
+ "deploy": "npm run build && wrangler deploy",
103
115
  "seed": "# Script to upload content to R2"
104
116
  },
105
117
  dependencies: {
106
118
  "@leadertechie/personal-site-kit": "latest",
107
- "wrangler": "^3.0.0",
108
119
  "lit": "^3.2.1"
120
+ },
121
+ devDependencies: {
122
+ "wrangler": "^4.79.0",
123
+ "vite": "^7.3.1",
124
+ "typescript": "^5.7.3",
125
+ "concurrently": "^9.1.2"
109
126
  }
110
127
  };
111
128
  await fs.writeFile(path.join(root, 'package.json'), JSON.stringify(pkg, null, 2));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leadertechie/create-personal-site",
3
- "version": "0.1.0-alpha.7",
3
+ "version": "0.1.0-alpha.9",
4
4
  "description": "Scaffold a personal website powered by Cloudflare Workers and R2. Fetches GitHub profile to auto-populate content.",
5
5
  "bin": {
6
6
  "create-personal-site": "./dist/index.js"
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/favicon.ico" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>{{siteTitle}}</title>
8
+ </head>
9
+ <body>
10
+ <div id="app"></div>
11
+ <script type="module" src="/index.ts"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,20 @@
1
+ import { defineConfig } from 'vite';
2
+ import { resolve } from 'path';
3
+
4
+ export default defineConfig({
5
+ root: 'ui',
6
+ build: {
7
+ outDir: '../dist/ui',
8
+ emptyOutDir: true,
9
+ },
10
+ server: {
11
+ port: 5173,
12
+ proxy: {
13
+ '/api': {
14
+ target: 'http://localhost:8787',
15
+ changeOrigin: true,
16
+ rewrite: (path) => path.replace(/^\/api/, ''),
17
+ },
18
+ },
19
+ },
20
+ });
@@ -1,5 +1,5 @@
1
1
  name = "{{name}}"
2
- main = "dist/worker.js"
2
+ main = "api/index.ts"
3
3
  compatibility_date = "2024-01-01"
4
4
 
5
5
  [vars]