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.
- package/package.json +1 -1
- package/template/buildHelper.js +11 -20
- package/template/src/backend/controllers/gardener/addPage.ts +16 -0
- package/template/src/backend/controllers/gardener/hotReload.ts +12 -10
- package/template/src/backend/routes/gardener.route.ts +2 -0
- package/template/src/backend/routes/routes.json +4 -0
- package/template/src/backend/server.ts +2 -1
- package/template/src/frontend/bundle/bundle._settings.js +1 -0
- package/template/src/frontend/static/pages/pages._settings.js +2 -0
- package/template/src/frontend/static/style.css +1 -1093
- package/template/{build/frontend/views/_.ejs → src/frontend/views/_settings.ejs} +2 -1
- package/template/build/backend/controllers/gardener/addComponent.d.ts +0 -8
- package/template/build/backend/controllers/gardener/addComponent.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/addComponent.js +0 -19
- package/template/build/backend/controllers/gardener/addComponent.js.map +0 -1
- package/template/build/backend/controllers/gardener/addPage.d.ts +0 -3
- package/template/build/backend/controllers/gardener/addPage.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/addPage.js +0 -86
- package/template/build/backend/controllers/gardener/addPage.js.map +0 -1
- package/template/build/backend/controllers/gardener/createStatic.d.ts +0 -2
- package/template/build/backend/controllers/gardener/createStatic.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/createStatic.js +0 -83
- package/template/build/backend/controllers/gardener/createStatic.js.map +0 -1
- package/template/build/backend/controllers/gardener/hotReload.d.ts +0 -3
- package/template/build/backend/controllers/gardener/hotReload.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/hotReload.js +0 -29
- package/template/build/backend/controllers/gardener/hotReload.js.map +0 -1
- package/template/build/backend/controllers/gardener/imageOptimiser.d.ts +0 -3
- package/template/build/backend/controllers/gardener/imageOptimiser.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/imageOptimiser.js +0 -123
- package/template/build/backend/controllers/gardener/imageOptimiser.js.map +0 -1
- package/template/build/backend/controllers/gardener/index.d.ts +0 -6
- package/template/build/backend/controllers/gardener/index.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/index.js +0 -6
- package/template/build/backend/controllers/gardener/index.js.map +0 -1
- package/template/build/backend/controllers/gardener/saveTemplate.d.ts +0 -3
- package/template/build/backend/controllers/gardener/saveTemplate.d.ts.map +0 -1
- package/template/build/backend/controllers/gardener/saveTemplate.js +0 -36
- package/template/build/backend/controllers/gardener/saveTemplate.js.map +0 -1
- package/template/build/backend/libs/generateWebp.d.ts +0 -2
- package/template/build/backend/libs/generateWebp.d.ts.map +0 -1
- package/template/build/backend/libs/generateWebp.js +0 -16
- package/template/build/backend/libs/generateWebp.js.map +0 -1
- package/template/build/backend/routes/gardener.route.d.ts +0 -4
- package/template/build/backend/routes/gardener.route.d.ts.map +0 -1
- package/template/build/backend/routes/gardener.route.js +0 -13
- package/template/build/backend/routes/gardener.route.js.map +0 -1
- package/template/build/backend/server.d.ts +0 -2
- package/template/build/backend/server.d.ts.map +0 -1
- package/template/build/backend/server.js +0 -26
- package/template/build/backend/server.js.map +0 -1
- package/template/build/frontend/assets/favicon.png +0 -0
- package/template/build/frontend/assets/gardener.jpg +0 -0
- package/template/build/frontend/assets/remote/betterway.jpg +0 -0
- package/template/build/frontend/static/bundle/bundle._.js +0 -1
- package/template/build/frontend/static/cache/favicon_50x50.webp +0 -0
- package/template/build/frontend/static/cache/gardener_50x50.webp +0 -0
- package/template/build/frontend/static/style.css +0 -2
- package/template/build/frontend/static/style2.css +0 -26
- package/template/build/frontend/tailwind.css +0 -1
- package/template/build/frontend/views/partials/icons/clipboard.ejs +0 -1
- package/template/build/frontend/views/partials/icons/clipboardok.ejs +0 -1
package/package.json
CHANGED
package/template/buildHelper.js
CHANGED
|
@@ -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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
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
|
|
@@ -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';
|