frontend-hamroun 1.2.75 → 1.2.77
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/batch/package.json +16 -0
- package/dist/client-router/package.json +16 -0
- package/dist/component/package.json +16 -0
- package/dist/context/package.json +16 -0
- package/dist/event-bus/package.json +16 -0
- package/dist/forms/package.json +16 -0
- package/dist/hooks/package.json +16 -0
- package/dist/jsx-runtime/package.json +16 -0
- package/dist/lifecycle-events/package.json +16 -0
- package/dist/package.json +71 -0
- package/dist/render-component/package.json +16 -0
- package/dist/renderer/package.json +16 -0
- package/dist/router/package.json +16 -0
- package/dist/server/package.json +17 -0
- package/dist/server/src/client-router.d.ts +60 -0
- package/dist/server/src/client-router.js +210 -0
- package/dist/server/src/client-router.js.map +1 -0
- package/dist/server/src/component.js +1 -1
- package/dist/server/src/event-bus.d.ts +23 -0
- package/dist/server/src/event-bus.js +75 -0
- package/dist/server/src/event-bus.js.map +1 -0
- package/dist/server/src/forms.d.ts +40 -0
- package/dist/server/src/forms.js +148 -0
- package/dist/server/src/forms.js.map +1 -0
- package/dist/server/src/hooks.js +2 -2
- package/dist/server/src/index.js +19 -11
- package/dist/server/src/lifecycle-events.d.ts +108 -0
- package/dist/server/src/lifecycle-events.js +177 -0
- package/dist/server/src/lifecycle-events.js.map +1 -0
- package/dist/server/src/renderComponent.js +1 -1
- package/dist/server/src/renderer.js +3 -3
- package/dist/server/src/router.d.ts +55 -0
- package/dist/server/src/router.js +166 -0
- package/dist/server/src/router.js.map +1 -0
- package/dist/server/src/server/index.d.ts +75 -2
- package/dist/server/src/server/index.js +224 -8
- package/dist/server/src/server/index.js.map +1 -1
- package/dist/server/src/server/server.js +1 -1
- package/dist/server/src/server/templates.d.ts +28 -0
- package/dist/server/src/server/templates.js +204 -0
- package/dist/server/src/server/templates.js.map +1 -0
- package/dist/server/src/server/utils.d.ts +70 -0
- package/dist/server/src/server/utils.js +156 -0
- package/dist/server/src/server/utils.js.map +1 -0
- package/dist/server/src/server-renderer.js +1 -1
- package/dist/server/src/store.d.ts +41 -0
- package/dist/server/src/store.js +99 -0
- package/dist/server/src/store.js.map +1 -0
- package/dist/server/src/utils.d.ts +46 -0
- package/dist/server/src/utils.js +144 -0
- package/dist/server/src/utils.js.map +1 -0
- package/dist/server/tsconfig.server.tsbuildinfo +1 -1
- package/dist/server-renderer/package.json +16 -0
- package/dist/store/package.json +16 -0
- package/dist/types/package.json +16 -0
- package/dist/utils/package.json +16 -0
- package/dist/vdom/package.json +16 -0
- package/dist/wasm/package.json +16 -0
- package/package.json +14 -13
- package/templates/complete-app/build.js +284 -0
- package/templates/complete-app/package.json +40 -0
- package/templates/complete-app/public/styles.css +345 -0
- package/templates/complete-app/src/api/index.js +31 -0
- package/templates/complete-app/src/client.js +93 -0
- package/templates/complete-app/src/components/App.js +66 -0
- package/templates/complete-app/src/components/Footer.js +19 -0
- package/templates/complete-app/src/components/Header.js +38 -0
- package/templates/complete-app/src/pages/About.js +59 -0
- package/templates/complete-app/src/pages/Home.js +54 -0
- package/templates/complete-app/src/pages/WasmDemo.js +136 -0
- package/templates/complete-app/src/server.js +186 -0
- package/templates/complete-app/src/wasm/build.bat +16 -0
- package/templates/complete-app/src/wasm/build.sh +16 -0
- package/templates/complete-app/src/wasm/example.go +101 -0
- package/templates/fullstack-app/build/main.css +225 -15
- package/templates/fullstack-app/build/main.css.map +2 -2
- package/templates/fullstack-app/build/main.js +657 -372
- package/templates/fullstack-app/build/main.js.map +4 -4
- package/templates/fullstack-app/build.ts +3 -4
- package/templates/fullstack-app/public/styles.css +222 -15
- package/templates/fullstack-app/server.ts +46 -12
- package/templates/fullstack-app/src/components/ClientHome.tsx +0 -0
- package/templates/fullstack-app/src/components/ErrorBoundary.tsx +36 -0
- package/templates/fullstack-app/src/components/Layout.tsx +23 -26
- package/templates/fullstack-app/src/components/StateDemo.tsx +207 -0
- package/templates/fullstack-app/src/components/UserList.tsx +30 -13
- package/templates/fullstack-app/src/data/api.ts +173 -38
- package/templates/fullstack-app/src/main.tsx +88 -154
- package/templates/fullstack-app/src/middleware.ts +28 -0
- package/templates/fullstack-app/src/pages/404.tsx +28 -0
- package/templates/fullstack-app/src/pages/[id].tsx +0 -0
- package/templates/fullstack-app/src/pages/_app.tsx +11 -0
- package/templates/fullstack-app/src/pages/_document.tsx +25 -0
- package/templates/fullstack-app/src/pages/_error.tsx +45 -0
- package/templates/fullstack-app/src/pages/about.tsx +71 -0
- package/templates/fullstack-app/src/pages/api/users/[id].ts +73 -0
- package/templates/fullstack-app/src/pages/api/users/index.ts +43 -0
- package/templates/fullstack-app/src/pages/index.tsx +97 -20
- package/templates/fullstack-app/src/pages/users/[id].tsx +153 -0
- package/templates/fullstack-app/src/pages/wasm-demo.tsx +1 -0
- package/templates/go/example.go +99 -86
- package/templates/go-wasm-app/babel.config.js +8 -2
- package/templates/go-wasm-app/build.config.js +62 -0
- package/templates/go-wasm-app/build.js +218 -0
- package/templates/go-wasm-app/package.json +21 -12
- package/templates/go-wasm-app/server.js +59 -510
- package/templates/go-wasm-app/src/app.js +173 -0
- package/templates/go-wasm-app/vite.config.js +16 -5
- package/templates/ssr-template/client.js +54 -26
- package/templates/ssr-template/server.js +5 -28
- package/templates/ssr-template/vite.config.js +21 -5
- package/dist/server/wasm.d.ts +0 -7
- package/dist/wasm.d.ts +0 -37
@@ -0,0 +1,55 @@
|
|
1
|
+
export interface Route {
|
2
|
+
path: string;
|
3
|
+
component: any;
|
4
|
+
exact?: boolean;
|
5
|
+
children?: Route[];
|
6
|
+
}
|
7
|
+
export interface RouterContextValue {
|
8
|
+
currentPath: string;
|
9
|
+
navigate: (path: string) => void;
|
10
|
+
params: Record<string, string>;
|
11
|
+
query: Record<string, string>;
|
12
|
+
}
|
13
|
+
export interface RouteParams {
|
14
|
+
[key: string]: string;
|
15
|
+
}
|
16
|
+
export declare const RouterContext: import("./context.js").Context<RouterContextValue>;
|
17
|
+
export declare function useRouter(): RouterContextValue;
|
18
|
+
export declare function useLocation(): {
|
19
|
+
pathname: string;
|
20
|
+
search: string;
|
21
|
+
hash: string;
|
22
|
+
state: {};
|
23
|
+
};
|
24
|
+
export declare function useParams<T extends RouteParams = RouteParams>(): T;
|
25
|
+
export declare function useNavigate(): (path: string) => void;
|
26
|
+
export declare function RouterProvider({ children }: {
|
27
|
+
children: any;
|
28
|
+
}): any;
|
29
|
+
export declare function Router({ routes }: {
|
30
|
+
routes: Route[];
|
31
|
+
}): any;
|
32
|
+
export declare function Link({ to, children, ...rest }: {
|
33
|
+
to: string;
|
34
|
+
children: any;
|
35
|
+
[key: string]: any;
|
36
|
+
}): any;
|
37
|
+
export declare function Route({ path, component }: {
|
38
|
+
path: string;
|
39
|
+
component: any;
|
40
|
+
}): null;
|
41
|
+
export declare function Switch({ children }: {
|
42
|
+
children: any;
|
43
|
+
}): any;
|
44
|
+
declare const _default: {
|
45
|
+
RouterProvider: typeof RouterProvider;
|
46
|
+
Router: typeof Router;
|
47
|
+
Link: typeof Link;
|
48
|
+
Route: typeof Route;
|
49
|
+
Switch: typeof Switch;
|
50
|
+
useRouter: typeof useRouter;
|
51
|
+
useParams: typeof useParams;
|
52
|
+
useNavigate: typeof useNavigate;
|
53
|
+
useLocation: typeof useLocation;
|
54
|
+
};
|
55
|
+
export default _default;
|
@@ -0,0 +1,166 @@
|
|
1
|
+
/**
|
2
|
+
* Router implementation for client and server navigation
|
3
|
+
*/
|
4
|
+
import { useState, useEffect } from './hooks';
|
5
|
+
import { createContext, useContext } from './context';
|
6
|
+
import { jsx } from './jsx-runtime';
|
7
|
+
export const RouterContext = createContext({
|
8
|
+
currentPath: '/',
|
9
|
+
navigate: () => { },
|
10
|
+
params: {},
|
11
|
+
query: {}
|
12
|
+
});
|
13
|
+
export function useRouter() {
|
14
|
+
return useContext(RouterContext);
|
15
|
+
}
|
16
|
+
export function useLocation() {
|
17
|
+
const router = useContext(RouterContext);
|
18
|
+
return {
|
19
|
+
pathname: router.currentPath,
|
20
|
+
search: '', // TODO: Implement search parsing
|
21
|
+
hash: '', // TODO: Implement hash parsing
|
22
|
+
state: {} // TODO: Implement history state
|
23
|
+
};
|
24
|
+
}
|
25
|
+
export function useParams() {
|
26
|
+
const router = useContext(RouterContext);
|
27
|
+
return router.params;
|
28
|
+
}
|
29
|
+
export function useNavigate() {
|
30
|
+
const router = useContext(RouterContext);
|
31
|
+
return router.navigate;
|
32
|
+
}
|
33
|
+
export function RouterProvider({ children }) {
|
34
|
+
// Initial path should be window.location.pathname on client, or passed from server context
|
35
|
+
const [currentPath, setCurrentPath] = useState(typeof window !== 'undefined' ? window.location.pathname : '/');
|
36
|
+
const [params, setParams] = useState({});
|
37
|
+
const [query, setQuery] = useState({});
|
38
|
+
// Update path when URL changes
|
39
|
+
useEffect(() => {
|
40
|
+
if (typeof window === 'undefined')
|
41
|
+
return;
|
42
|
+
const handlePopState = () => {
|
43
|
+
setCurrentPath(window.location.pathname);
|
44
|
+
parseQuery(window.location.search);
|
45
|
+
};
|
46
|
+
window.addEventListener('popstate', handlePopState);
|
47
|
+
// Parse initial query
|
48
|
+
parseQuery(window.location.search);
|
49
|
+
return () => {
|
50
|
+
window.removeEventListener('popstate', handlePopState);
|
51
|
+
};
|
52
|
+
}, []);
|
53
|
+
// Parse query string into object
|
54
|
+
const parseQuery = (queryString) => {
|
55
|
+
const queryObj = {};
|
56
|
+
if (queryString.startsWith('?')) {
|
57
|
+
queryString = queryString.substring(1);
|
58
|
+
}
|
59
|
+
queryString.split('&').forEach(pair => {
|
60
|
+
if (!pair)
|
61
|
+
return;
|
62
|
+
const [key, value] = pair.split('=');
|
63
|
+
queryObj[decodeURIComponent(key)] = decodeURIComponent(value || '');
|
64
|
+
});
|
65
|
+
setQuery(queryObj);
|
66
|
+
};
|
67
|
+
// Navigate programmatically
|
68
|
+
const navigate = (path) => {
|
69
|
+
if (typeof window === 'undefined')
|
70
|
+
return;
|
71
|
+
window.history.pushState(null, '', path);
|
72
|
+
setCurrentPath(path);
|
73
|
+
parseQuery(window.location.search);
|
74
|
+
};
|
75
|
+
return jsx(RouterContext.Provider, {
|
76
|
+
value: { currentPath, navigate, params, query },
|
77
|
+
children
|
78
|
+
});
|
79
|
+
}
|
80
|
+
export function Router({ routes }) {
|
81
|
+
const router = useRouter();
|
82
|
+
const currentPath = router.currentPath;
|
83
|
+
// Find matching route
|
84
|
+
const matchedRoute = findMatchingRoute(routes, currentPath);
|
85
|
+
if (!matchedRoute) {
|
86
|
+
return jsx('div', { children: '404 - Page Not Found' });
|
87
|
+
}
|
88
|
+
return matchedRoute.component({ children: matchedRoute.children });
|
89
|
+
}
|
90
|
+
function findMatchingRoute(routes, path) {
|
91
|
+
for (const route of routes) {
|
92
|
+
const match = matchPath(path, route);
|
93
|
+
if (match) {
|
94
|
+
return {
|
95
|
+
...route,
|
96
|
+
params: match.params
|
97
|
+
};
|
98
|
+
}
|
99
|
+
}
|
100
|
+
return null;
|
101
|
+
}
|
102
|
+
function matchPath(pathname, route) {
|
103
|
+
const { path, exact = true } = route;
|
104
|
+
// Convert route pattern to regex
|
105
|
+
const pattern = path.replace(/:[a-zA-Z0-9_]+/g, '([^/]+)');
|
106
|
+
const regex = new RegExp(`^${pattern}${exact ? '$' : ''}`);
|
107
|
+
const match = pathname.match(regex);
|
108
|
+
if (!match) {
|
109
|
+
return null;
|
110
|
+
}
|
111
|
+
// Extract params
|
112
|
+
const params = {};
|
113
|
+
const paramNames = path.match(/:[a-zA-Z0-9_]+/g) || [];
|
114
|
+
paramNames.forEach((paramName, index) => {
|
115
|
+
params[paramName.substring(1)] = match[index + 1];
|
116
|
+
});
|
117
|
+
return { params };
|
118
|
+
}
|
119
|
+
export function Link({ to, children, ...rest }) {
|
120
|
+
const router = useRouter();
|
121
|
+
const navigate = router.navigate;
|
122
|
+
const handleClick = (e) => {
|
123
|
+
e.preventDefault();
|
124
|
+
navigate(to);
|
125
|
+
};
|
126
|
+
return jsx('a', {
|
127
|
+
href: to,
|
128
|
+
onClick: handleClick,
|
129
|
+
...rest,
|
130
|
+
children
|
131
|
+
});
|
132
|
+
}
|
133
|
+
export function Route({ path, component }) {
|
134
|
+
// This is a configuration component, not actually rendered
|
135
|
+
return null;
|
136
|
+
}
|
137
|
+
export function Switch({ children }) {
|
138
|
+
const router = useRouter();
|
139
|
+
const currentPath = router.currentPath;
|
140
|
+
// Find the first matching route
|
141
|
+
const child = Array.isArray(children)
|
142
|
+
? children.find(child => {
|
143
|
+
if (!child || !child.props)
|
144
|
+
return false;
|
145
|
+
const routeObj = {
|
146
|
+
path: child.props.path,
|
147
|
+
component: child.props.component,
|
148
|
+
exact: child.props.exact
|
149
|
+
};
|
150
|
+
return matchPath(currentPath, routeObj);
|
151
|
+
})
|
152
|
+
: children;
|
153
|
+
return child || null;
|
154
|
+
}
|
155
|
+
export default {
|
156
|
+
RouterProvider,
|
157
|
+
Router,
|
158
|
+
Link,
|
159
|
+
Route,
|
160
|
+
Switch,
|
161
|
+
useRouter,
|
162
|
+
useParams,
|
163
|
+
useNavigate,
|
164
|
+
useLocation
|
165
|
+
};
|
166
|
+
//# sourceMappingURL=router.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/router.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,12 @@
|
|
1
|
-
import { Express } from 'express';
|
1
|
+
import { Express, Request } from 'express';
|
2
2
|
import cors from 'cors';
|
3
3
|
import { SignOptions } from 'jsonwebtoken';
|
4
4
|
import { renderToString } from '../server-renderer.js';
|
5
5
|
import { Database } from './database.js';
|
6
6
|
import { AuthService } from './auth.js';
|
7
|
+
import { ApiRouter } from './api-router.js';
|
8
|
+
import { safeJsonParse, generateToken, hashString, getPagination, sendSuccess, sendError, validateFields, validateFileUpload, getEnvironmentInfo, isDirectoryEmpty, ensureDirectory, writeJsonFile, readJsonFile } from './utils.js';
|
9
|
+
import { generateDocument, generateErrorPage, generateLoadingPage } from './templates.js';
|
7
10
|
export interface ServerConfig {
|
8
11
|
port?: number;
|
9
12
|
apiDir?: string;
|
@@ -28,6 +31,10 @@ export declare class Server {
|
|
28
31
|
private auth;
|
29
32
|
constructor(config?: ServerConfig);
|
30
33
|
private setupApiRoutes;
|
34
|
+
private generateApiDocs;
|
35
|
+
private scanApiDirectory;
|
36
|
+
private getRoutePath;
|
37
|
+
private detectApiMethods;
|
31
38
|
private setupPageRoutes;
|
32
39
|
private renderPage;
|
33
40
|
getExpressApp(): Express;
|
@@ -35,7 +42,30 @@ export declare class Server {
|
|
35
42
|
getAuth(): AuthService | null;
|
36
43
|
start(): Promise<void>;
|
37
44
|
stop(): Promise<void>;
|
45
|
+
restart(): Promise<void>;
|
46
|
+
enableSSR(options?: {
|
47
|
+
hydratable?: boolean;
|
48
|
+
}): void;
|
49
|
+
registerPlugin(plugin: (server: Server) => void): void;
|
50
|
+
addShutdownHandler(): void;
|
38
51
|
}
|
52
|
+
/**
|
53
|
+
* Creates and configures a new server instance
|
54
|
+
*/
|
55
|
+
export declare function createServer(config?: ServerConfig): Server;
|
56
|
+
/**
|
57
|
+
* Creates a new server with sensible defaults for development
|
58
|
+
*/
|
59
|
+
export declare function createDevServer(options?: {
|
60
|
+
port?: number;
|
61
|
+
enableCors?: boolean;
|
62
|
+
}): Server;
|
63
|
+
/**
|
64
|
+
* Creates a production-ready server with optimized settings
|
65
|
+
*/
|
66
|
+
export declare function createProductionServer(config: ServerConfig): Server;
|
67
|
+
export declare function getRequestIp(req: Request): string;
|
68
|
+
export declare function parseCookies(req: Request): Record<string, string>;
|
39
69
|
export { Database } from './database.js';
|
40
70
|
export { AuthService } from './auth.js';
|
41
71
|
export { ApiRouter } from './api-router.js';
|
@@ -51,4 +81,47 @@ export declare const renderComponent: (Component: any, props?: any) => Promise<{
|
|
51
81
|
error: unknown;
|
52
82
|
}>;
|
53
83
|
export { initNodeWasm, loadGoWasmFromFile } from './wasm.js';
|
54
|
-
export
|
84
|
+
export * from './utils.js';
|
85
|
+
export * from './templates.js';
|
86
|
+
declare const _default: {
|
87
|
+
Server: typeof Server;
|
88
|
+
createServer: typeof createServer;
|
89
|
+
createDevServer: typeof createDevServer;
|
90
|
+
createProductionServer: typeof createProductionServer;
|
91
|
+
Database: typeof Database;
|
92
|
+
AuthService: typeof AuthService;
|
93
|
+
ApiRouter: typeof ApiRouter;
|
94
|
+
renderToString: typeof renderToString;
|
95
|
+
renderComponent: (Component: any, props?: any) => Promise<{
|
96
|
+
html: string;
|
97
|
+
success: boolean;
|
98
|
+
error?: undefined;
|
99
|
+
} | {
|
100
|
+
html: string;
|
101
|
+
success: boolean;
|
102
|
+
error: unknown;
|
103
|
+
}>;
|
104
|
+
templates: {
|
105
|
+
generateDocument: typeof generateDocument;
|
106
|
+
generateErrorPage: typeof generateErrorPage;
|
107
|
+
generateLoadingPage: typeof generateLoadingPage;
|
108
|
+
};
|
109
|
+
utils: {
|
110
|
+
getRequestIp: typeof getRequestIp;
|
111
|
+
parseCookies: typeof parseCookies;
|
112
|
+
safeJsonParse: typeof safeJsonParse;
|
113
|
+
generateToken: typeof generateToken;
|
114
|
+
hashString: typeof hashString;
|
115
|
+
getPagination: typeof getPagination;
|
116
|
+
sendSuccess: typeof sendSuccess;
|
117
|
+
sendError: typeof sendError;
|
118
|
+
validateFields: typeof validateFields;
|
119
|
+
validateFileUpload: typeof validateFileUpload;
|
120
|
+
getEnvironmentInfo: typeof getEnvironmentInfo;
|
121
|
+
isDirectoryEmpty: typeof isDirectoryEmpty;
|
122
|
+
ensureDirectory: typeof ensureDirectory;
|
123
|
+
writeJsonFile: typeof writeJsonFile;
|
124
|
+
readJsonFile: typeof readJsonFile;
|
125
|
+
};
|
126
|
+
};
|
127
|
+
export default _default;
|
@@ -2,10 +2,15 @@ import express from 'express';
|
|
2
2
|
import path from 'path';
|
3
3
|
import fs from 'fs';
|
4
4
|
import cors from 'cors';
|
5
|
-
import { renderToString } from '../server-renderer
|
6
|
-
import { Database } from './database
|
7
|
-
import { AuthService } from './auth
|
8
|
-
import { ApiRouter } from './api-router
|
5
|
+
import { renderToString } from '../server-renderer';
|
6
|
+
import { Database } from './database';
|
7
|
+
import { AuthService } from './auth';
|
8
|
+
import { ApiRouter } from './api-router';
|
9
|
+
import { requestLogger } from './middleware';
|
10
|
+
// Import the utility functions that were missing
|
11
|
+
import { safeJsonParse, generateToken, hashString, getPagination, sendSuccess, sendError, validateFields, validateFileUpload, getEnvironmentInfo, isDirectoryEmpty, ensureDirectory, writeJsonFile, readJsonFile } from './utils';
|
12
|
+
// Import the HTML template generators
|
13
|
+
import { generateDocument, generateErrorPage, generateLoadingPage } from './templates';
|
9
14
|
export class Server {
|
10
15
|
constructor(config = {}) {
|
11
16
|
Object.defineProperty(this, "app", {
|
@@ -79,7 +84,60 @@ export class Server {
|
|
79
84
|
}
|
80
85
|
setupApiRoutes() {
|
81
86
|
const apiRouter = new ApiRouter(this.config.apiDir, this.auth);
|
82
|
-
this.app.use('/api', apiRouter.router);
|
87
|
+
this.app.use('/api', requestLogger, apiRouter.router);
|
88
|
+
// Add API documentation route
|
89
|
+
this.app.get('/api-docs', (req, res) => {
|
90
|
+
const apiDocs = this.generateApiDocs();
|
91
|
+
res.json(apiDocs);
|
92
|
+
});
|
93
|
+
}
|
94
|
+
generateApiDocs() {
|
95
|
+
// Generate documentation based on API routes
|
96
|
+
const apiDir = path.resolve(process.cwd(), this.config.apiDir);
|
97
|
+
const docs = { endpoints: [] };
|
98
|
+
if (fs.existsSync(apiDir)) {
|
99
|
+
this.scanApiDirectory(apiDir, '', docs.endpoints);
|
100
|
+
}
|
101
|
+
return docs;
|
102
|
+
}
|
103
|
+
scanApiDirectory(dirPath, routePrefix, endpoints) {
|
104
|
+
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
105
|
+
for (const entry of entries) {
|
106
|
+
const fullPath = path.join(dirPath, entry.name);
|
107
|
+
if (entry.isDirectory()) {
|
108
|
+
this.scanApiDirectory(fullPath, `${routePrefix}/${entry.name}`, endpoints);
|
109
|
+
}
|
110
|
+
else if (entry.name.endsWith('.js') || entry.name.endsWith('.ts')) {
|
111
|
+
const routePath = this.getRoutePath(entry.name, routePrefix);
|
112
|
+
endpoints.push({
|
113
|
+
path: routePath,
|
114
|
+
file: path.relative(process.cwd(), fullPath),
|
115
|
+
methods: this.detectApiMethods(fullPath)
|
116
|
+
});
|
117
|
+
}
|
118
|
+
}
|
119
|
+
}
|
120
|
+
getRoutePath(filename, routePrefix) {
|
121
|
+
const baseName = path.basename(filename, path.extname(filename));
|
122
|
+
if (baseName === 'index') {
|
123
|
+
return routePrefix || '/';
|
124
|
+
}
|
125
|
+
const paramMatch = baseName.match(/^\[(.+)\]$/);
|
126
|
+
if (paramMatch) {
|
127
|
+
return `${routePrefix}/:${paramMatch[1]}`;
|
128
|
+
}
|
129
|
+
return `${routePrefix}/${baseName}`;
|
130
|
+
}
|
131
|
+
detectApiMethods(filePath) {
|
132
|
+
try {
|
133
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
134
|
+
const methods = ['get', 'post', 'put', 'delete', 'patch', 'options'];
|
135
|
+
return methods.filter(method => new RegExp(`export (async )?function ${method}\\s*\\(`).test(content) ||
|
136
|
+
new RegExp(`export const ${method}\\s*=`).test(content));
|
137
|
+
}
|
138
|
+
catch (error) {
|
139
|
+
return [];
|
140
|
+
}
|
83
141
|
}
|
84
142
|
setupPageRoutes() {
|
85
143
|
if (!fs.existsSync(path.resolve(process.cwd(), this.config.pagesDir))) {
|
@@ -136,6 +194,119 @@ export class Server {
|
|
136
194
|
});
|
137
195
|
});
|
138
196
|
}
|
197
|
+
// Add new utility methods for server management
|
198
|
+
restart() {
|
199
|
+
return this.stop().then(() => this.start());
|
200
|
+
}
|
201
|
+
enableSSR(options = {}) {
|
202
|
+
if (!fs.existsSync(path.resolve(process.cwd(), this.config.pagesDir))) {
|
203
|
+
fs.mkdirSync(path.resolve(process.cwd(), this.config.pagesDir), { recursive: true });
|
204
|
+
}
|
205
|
+
// Set up client-side JS for hydration if needed
|
206
|
+
if (options.hydratable) {
|
207
|
+
const staticDir = path.resolve(process.cwd(), this.config.staticDir);
|
208
|
+
if (!fs.existsSync(staticDir)) {
|
209
|
+
fs.mkdirSync(staticDir, { recursive: true });
|
210
|
+
}
|
211
|
+
// Generate or copy client hydration script
|
212
|
+
// This is a simplified example - would need more implementation
|
213
|
+
const clientJsPath = path.join(staticDir, 'client.js');
|
214
|
+
if (!fs.existsSync(clientJsPath)) {
|
215
|
+
const clientJsContent = `
|
216
|
+
// Auto-generated hydration script
|
217
|
+
import { hydrate } from 'frontend-hamroun';
|
218
|
+
|
219
|
+
// Find SSR content and hydrate it
|
220
|
+
document.addEventListener('DOMContentLoaded', () => {
|
221
|
+
const ssrRoots = document.querySelectorAll('[data-ssr-root]');
|
222
|
+
ssrRoots.forEach(root => {
|
223
|
+
const componentPath = root.getAttribute('data-component');
|
224
|
+
if (componentPath) {
|
225
|
+
import(componentPath).then(module => {
|
226
|
+
hydrate(module.default, root);
|
227
|
+
});
|
228
|
+
}
|
229
|
+
});
|
230
|
+
});
|
231
|
+
`;
|
232
|
+
fs.writeFileSync(clientJsPath, clientJsContent);
|
233
|
+
}
|
234
|
+
}
|
235
|
+
}
|
236
|
+
registerPlugin(plugin) {
|
237
|
+
plugin(this);
|
238
|
+
}
|
239
|
+
addShutdownHandler() {
|
240
|
+
// Handle graceful shutdown
|
241
|
+
const gracefulShutdown = async () => {
|
242
|
+
console.log('Received shutdown signal, closing server...');
|
243
|
+
try {
|
244
|
+
await this.stop();
|
245
|
+
if (this.db) {
|
246
|
+
await this.db.disconnect();
|
247
|
+
}
|
248
|
+
console.log('Server shut down gracefully');
|
249
|
+
process.exit(0);
|
250
|
+
}
|
251
|
+
catch (error) {
|
252
|
+
console.error('Error during shutdown:', error);
|
253
|
+
process.exit(1);
|
254
|
+
}
|
255
|
+
};
|
256
|
+
// Listen for termination signals
|
257
|
+
process.on('SIGTERM', gracefulShutdown);
|
258
|
+
process.on('SIGINT', gracefulShutdown);
|
259
|
+
}
|
260
|
+
}
|
261
|
+
// Add server utility functions
|
262
|
+
/**
|
263
|
+
* Creates and configures a new server instance
|
264
|
+
*/
|
265
|
+
export function createServer(config = {}) {
|
266
|
+
return new Server(config);
|
267
|
+
}
|
268
|
+
/**
|
269
|
+
* Creates a new server with sensible defaults for development
|
270
|
+
*/
|
271
|
+
export function createDevServer(options = {}) {
|
272
|
+
return new Server({
|
273
|
+
port: options.port || 3000,
|
274
|
+
enableCors: options.enableCors !== false,
|
275
|
+
apiDir: './src/api',
|
276
|
+
pagesDir: './src/pages',
|
277
|
+
staticDir: './public'
|
278
|
+
});
|
279
|
+
}
|
280
|
+
/**
|
281
|
+
* Creates a production-ready server with optimized settings
|
282
|
+
*/
|
283
|
+
export function createProductionServer(config) {
|
284
|
+
const server = new Server({
|
285
|
+
...config,
|
286
|
+
// Fix the PORT parsing
|
287
|
+
port: config.port || (process.env.PORT ? parseInt(process.env.PORT) : 8080)
|
288
|
+
});
|
289
|
+
// Add shutdown handler for production environments
|
290
|
+
server.addShutdownHandler();
|
291
|
+
return server;
|
292
|
+
}
|
293
|
+
// Export additional utility functions
|
294
|
+
export function getRequestIp(req) {
|
295
|
+
return req.ip ||
|
296
|
+
req.headers['x-forwarded-for']?.split(',')[0].trim() ||
|
297
|
+
req.socket.remoteAddress ||
|
298
|
+
'';
|
299
|
+
}
|
300
|
+
export function parseCookies(req) {
|
301
|
+
const cookies = {};
|
302
|
+
const cookieHeader = req.headers.cookie;
|
303
|
+
if (cookieHeader) {
|
304
|
+
cookieHeader.split(';').forEach(cookie => {
|
305
|
+
const [name, value] = cookie.split('=').map(c => c.trim());
|
306
|
+
cookies[name] = value;
|
307
|
+
});
|
308
|
+
}
|
309
|
+
return cookies;
|
139
310
|
}
|
140
311
|
// Server module main export file
|
141
312
|
// Export all server components
|
@@ -167,6 +338,51 @@ export const renderComponent = async (Component, props = {}) => {
|
|
167
338
|
};
|
168
339
|
// Export WASM utilities for server-side usage
|
169
340
|
export { initNodeWasm, loadGoWasmFromFile } from './wasm.js';
|
170
|
-
//
|
171
|
-
export
|
172
|
-
|
341
|
+
// Import and export server utilities
|
342
|
+
export * from './utils.js';
|
343
|
+
export * from './templates.js';
|
344
|
+
// Update the default export
|
345
|
+
export default {
|
346
|
+
Server,
|
347
|
+
createServer,
|
348
|
+
createDevServer,
|
349
|
+
createProductionServer,
|
350
|
+
Database,
|
351
|
+
AuthService,
|
352
|
+
ApiRouter,
|
353
|
+
renderToString,
|
354
|
+
renderComponent,
|
355
|
+
// Template utilities
|
356
|
+
templates: {
|
357
|
+
generateDocument,
|
358
|
+
generateErrorPage,
|
359
|
+
generateLoadingPage
|
360
|
+
},
|
361
|
+
// Server utilities
|
362
|
+
utils: {
|
363
|
+
getRequestIp,
|
364
|
+
parseCookies,
|
365
|
+
safeJsonParse,
|
366
|
+
generateToken,
|
367
|
+
hashString,
|
368
|
+
getPagination,
|
369
|
+
sendSuccess,
|
370
|
+
sendError,
|
371
|
+
validateFields,
|
372
|
+
validateFileUpload,
|
373
|
+
getEnvironmentInfo,
|
374
|
+
isDirectoryEmpty,
|
375
|
+
ensureDirectory,
|
376
|
+
writeJsonFile,
|
377
|
+
readJsonFile
|
378
|
+
}
|
379
|
+
};
|
380
|
+
//# sourceMappingURL=index.js.map
|
381
|
+
// This module is compatible with both ESM and CommonJS
|
382
|
+
if (typeof exports === 'object' && typeof module !== 'undefined') {
|
383
|
+
// CommonJS environment
|
384
|
+
module.exports = exports;
|
385
|
+
} else if (typeof define === 'function' && define.amd) {
|
386
|
+
// AMD environment
|
387
|
+
define(['exports'], factory);
|
388
|
+
} // ESM environment is handled by default exports
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/index.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import fs from 'fs';
|
2
2
|
import path from 'path';
|
3
|
-
import { renderComponent } from '../renderComponent
|
3
|
+
import { renderComponent } from '../renderComponent'; // Fixed import path with .js extension
|
4
4
|
class Server {
|
5
5
|
constructor(config) {
|
6
6
|
Object.defineProperty(this, "config", {
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/**
|
2
|
+
* HTML template generators for server-side rendering
|
3
|
+
*/
|
4
|
+
export interface DocumentOptions {
|
5
|
+
title?: string;
|
6
|
+
description?: string;
|
7
|
+
lang?: string;
|
8
|
+
charset?: string;
|
9
|
+
viewport?: string;
|
10
|
+
scripts?: string[];
|
11
|
+
styles?: string[];
|
12
|
+
meta?: Record<string, string>;
|
13
|
+
bodyClasses?: string;
|
14
|
+
htmlAttrs?: Record<string, string>;
|
15
|
+
bodyAttrs?: Record<string, string>;
|
16
|
+
}
|
17
|
+
/**
|
18
|
+
* Generate a complete HTML document
|
19
|
+
*/
|
20
|
+
export declare function generateDocument(content: string, options?: DocumentOptions): string;
|
21
|
+
/**
|
22
|
+
* Generate an error page
|
23
|
+
*/
|
24
|
+
export declare function generateErrorPage(statusCode: number, message: string, error?: Error): string;
|
25
|
+
/**
|
26
|
+
* Generate a loading page
|
27
|
+
*/
|
28
|
+
export declare function generateLoadingPage(message?: string): string;
|