create-gardener 2.1.8 → 2.1.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.
Files changed (62) hide show
  1. package/package.json +1 -1
  2. package/template/buildHelper.js +11 -20
  3. package/template/src/backend/controllers/gardener/addPage.ts +16 -0
  4. package/template/src/backend/controllers/gardener/hotReload.ts +12 -10
  5. package/template/src/backend/routes/gardener.route.ts +2 -0
  6. package/template/src/backend/routes/routes.json +4 -0
  7. package/template/src/backend/server.ts +2 -1
  8. package/template/src/frontend/bundle/bundle._settings.js +1 -0
  9. package/template/src/frontend/static/pages/pages._settings.js +2 -0
  10. package/template/src/frontend/static/style.css +1 -1093
  11. package/template/{build/frontend/views/_.ejs → src/frontend/views/_settings.ejs} +2 -1
  12. package/template/build/backend/controllers/gardener/addComponent.d.ts +0 -8
  13. package/template/build/backend/controllers/gardener/addComponent.d.ts.map +0 -1
  14. package/template/build/backend/controllers/gardener/addComponent.js +0 -19
  15. package/template/build/backend/controllers/gardener/addComponent.js.map +0 -1
  16. package/template/build/backend/controllers/gardener/addPage.d.ts +0 -3
  17. package/template/build/backend/controllers/gardener/addPage.d.ts.map +0 -1
  18. package/template/build/backend/controllers/gardener/addPage.js +0 -86
  19. package/template/build/backend/controllers/gardener/addPage.js.map +0 -1
  20. package/template/build/backend/controllers/gardener/createStatic.d.ts +0 -2
  21. package/template/build/backend/controllers/gardener/createStatic.d.ts.map +0 -1
  22. package/template/build/backend/controllers/gardener/createStatic.js +0 -83
  23. package/template/build/backend/controllers/gardener/createStatic.js.map +0 -1
  24. package/template/build/backend/controllers/gardener/hotReload.d.ts +0 -3
  25. package/template/build/backend/controllers/gardener/hotReload.d.ts.map +0 -1
  26. package/template/build/backend/controllers/gardener/hotReload.js +0 -29
  27. package/template/build/backend/controllers/gardener/hotReload.js.map +0 -1
  28. package/template/build/backend/controllers/gardener/imageOptimiser.d.ts +0 -3
  29. package/template/build/backend/controllers/gardener/imageOptimiser.d.ts.map +0 -1
  30. package/template/build/backend/controllers/gardener/imageOptimiser.js +0 -123
  31. package/template/build/backend/controllers/gardener/imageOptimiser.js.map +0 -1
  32. package/template/build/backend/controllers/gardener/index.d.ts +0 -6
  33. package/template/build/backend/controllers/gardener/index.d.ts.map +0 -1
  34. package/template/build/backend/controllers/gardener/index.js +0 -6
  35. package/template/build/backend/controllers/gardener/index.js.map +0 -1
  36. package/template/build/backend/controllers/gardener/saveTemplate.d.ts +0 -3
  37. package/template/build/backend/controllers/gardener/saveTemplate.d.ts.map +0 -1
  38. package/template/build/backend/controllers/gardener/saveTemplate.js +0 -36
  39. package/template/build/backend/controllers/gardener/saveTemplate.js.map +0 -1
  40. package/template/build/backend/libs/generateWebp.d.ts +0 -2
  41. package/template/build/backend/libs/generateWebp.d.ts.map +0 -1
  42. package/template/build/backend/libs/generateWebp.js +0 -16
  43. package/template/build/backend/libs/generateWebp.js.map +0 -1
  44. package/template/build/backend/routes/gardener.route.d.ts +0 -4
  45. package/template/build/backend/routes/gardener.route.d.ts.map +0 -1
  46. package/template/build/backend/routes/gardener.route.js +0 -13
  47. package/template/build/backend/routes/gardener.route.js.map +0 -1
  48. package/template/build/backend/server.d.ts +0 -2
  49. package/template/build/backend/server.d.ts.map +0 -1
  50. package/template/build/backend/server.js +0 -26
  51. package/template/build/backend/server.js.map +0 -1
  52. package/template/build/frontend/assets/favicon.png +0 -0
  53. package/template/build/frontend/assets/gardener.jpg +0 -0
  54. package/template/build/frontend/assets/remote/betterway.jpg +0 -0
  55. package/template/build/frontend/static/bundle/bundle._.js +0 -1
  56. package/template/build/frontend/static/cache/favicon_50x50.webp +0 -0
  57. package/template/build/frontend/static/cache/gardener_50x50.webp +0 -0
  58. package/template/build/frontend/static/style.css +0 -2
  59. package/template/build/frontend/static/style2.css +0 -26
  60. package/template/build/frontend/tailwind.css +0 -1
  61. package/template/build/frontend/views/partials/icons/clipboard.ejs +0 -1
  62. package/template/build/frontend/views/partials/icons/clipboardok.ejs +0 -1
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "type": "git",
6
6
  "url": "https://github.com/ritishDas/gardener"
7
7
  },
8
- "version": "2.1.8",
8
+ "version": "2.1.9",
9
9
  "description": "A dom gardener converting dom elements into json and vice versa",
10
10
  "main": "index.js",
11
11
  "bin": {
@@ -14,11 +14,6 @@ export default async function buildHelper() {
14
14
 
15
15
  await fs.cp(src, dest, { recursive: true });
16
16
 
17
- // await fs.writeFile(
18
- // path.join(dest, 'static', 'gardenerConfig.js'),
19
- // "export const mode = 'prod';",
20
- // 'utf8'
21
- // );
22
17
 
23
18
  await fs.rm(path.join(dest, 'template'), { recursive: true });
24
19
 
@@ -30,21 +25,17 @@ export default async function buildHelper() {
30
25
  await fs.mkdir(bundleDir, { recursive: true });
31
26
  const files = await fs.readdir(path.join(dest, 'bundle'));
32
27
 
33
- for (const file of files) {
34
-
35
- // const stat = await fs.stat(fullPath);
36
- // sf (!stat.isFile()) continue;
37
- const destBundleFile = path.join(bundleDir, file); // overwrite same file
38
- // await fs.writeFile(destBundleFile, '', 'utf8');
39
-
40
- await build({
41
- entryPoints: [path.join(dest, 'bundle', file)],
42
- bundle: true,
43
- minify: true,
44
- format: 'esm',
45
- outfile: destBundleFile
46
- });
47
- }
28
+ const allBundleFiles = files.map(file => path.join(dest, 'bundle', file));
29
+
30
+ await build({
31
+ entryPoints: allBundleFiles,
32
+ bundle: true,
33
+ splitting: true,
34
+ chunkNames: 'chunks/[hash]',
35
+ format: 'esm',
36
+ outdir: bundleDir,
37
+ minify: true,
38
+ });
48
39
 
49
40
 
50
41
  await fs.rm(path.join(dest, 'bundle'), { recursive: true });
@@ -68,9 +68,25 @@ export async function addPage(req: Request, res: Response) {
68
68
 
69
69
  await replaceLastOccurrence(viewPath, '<script', `<script src="/static/pages/pages.${name}.js" type='module'></script>`);
70
70
 
71
+ const routesJsonPath = path.resolve(__dirname, '..', '..', 'routes', 'routes.json');
72
+ let routes: string[] = [];
73
+ try {
74
+ const routesContent = await fsp.readFile(routesJsonPath, 'utf8');
75
+ routes = JSON.parse(routesContent);
76
+ } catch (e) {
77
+ console.log("routes.json not found, creating new one");
78
+ }
79
+
80
+ if (routes.includes(pagename)) {
81
+ throw new Error(`Route "${pagename}" already exists.`);
82
+ }
83
+
71
84
  const routeEntry = `router.route("${pagename}").get((req: Request, res: Response) => res.render("${name}",{fileName:"${name}"}));\n`;
72
85
  await fsp.appendFile(routePath, routeEntry, "utf8");
73
86
 
87
+ routes.push(pagename);
88
+ await fsp.writeFile(routesJsonPath, JSON.stringify(routes, null, 2), "utf8");
89
+
74
90
  await fsp.mkdir(jsDir, { recursive: true });
75
91
  const jsContent = 'import { gardener, fetchElement, replaceElement, appendElement } from "../gardener.js";\n import {log, parser, addEl, State} from "../gardenerDev.js"';
76
92
  await fsp.writeFile(jsFilePath, jsContent, "utf8");
@@ -13,18 +13,20 @@ const watchTarget = path.resolve('src', 'frontend');
13
13
 
14
14
  let debounce: ReturnType<typeof setTimeout> | null = null;
15
15
 
16
- fs.watch(watchTarget, { recursive: true }, (_event, filename) => {
17
- // Ignore hidden files and node_modules
18
- if (!filename || filename.startsWith('.')) return;
16
+ if (process.env.NODE_ENV !== 'production') {
17
+ fs.watch(watchTarget, { recursive: true }, (_event, filename) => {
18
+ // Ignore hidden files and node_modules
19
+ if (!filename || filename.startsWith('.')) return;
19
20
 
20
- if (debounce) clearTimeout(debounce);
21
- debounce = setTimeout(() => {
22
- version = Date.now();
23
- // console.log(`[gardener] file changed: ${filename} → version ${version}`);
24
- }, 100);
25
- });
21
+ if (debounce) clearTimeout(debounce);
22
+ debounce = setTimeout(() => {
23
+ version = Date.now();
24
+ // console.log(`[gardener] file changed: ${filename} → version ${version}`);
25
+ }, 100);
26
+ });
27
+ console.log(`[gardener] watching ${watchTarget} for changes…`);
28
+ }
26
29
 
27
- console.log(`[gardener] watching ${watchTarget} for changes…`);
28
30
 
29
31
  // ── Route handler ─────────────────────────────────────────────
30
32
  // GET /__gardener/hot-reload
@@ -22,3 +22,5 @@ if (process.env.NODE_ENV !== 'production') {
22
22
 
23
23
 
24
24
  router.route('/').get((req: Request, res: Response) => res.render('_', { fileName: '_' }));
25
+ router.route("/settings").get((req: Request, res: Response) => res.render("_settings", { fileName: "_settings" }));
26
+
@@ -0,0 +1,4 @@
1
+ [
2
+ "/",
3
+ "/settings"
4
+ ]
@@ -41,7 +41,8 @@ app.use((err: Error & { status: number }, req: Request, res: Response, next: Nex
41
41
  const PORT = process.env.PORT || 3000;
42
42
 
43
43
  app.listen(PORT, () => {
44
- console.log("server listening 🚀🚀🚀 PORT:", PORT);
44
+ console.log("server listening 🚀🚀🚀 PORT:", PORT, "\n");
45
+ console.log(`http://localhost:${PORT}`);
45
46
  });
46
47
 
47
48
 
@@ -0,0 +1 @@
1
+ import '../static/global.js';import '../static/pages/pages._settings.js';
@@ -0,0 +1,2 @@
1
+ import { gardener, fetchElement, replaceElement, appendElement } from "../gardener.js";
2
+ import {log, parser, addEl, State} from "../gardenerDev.js"