@moudle/start 0.0.1 → 0.0.2

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/lib.d.ts CHANGED
@@ -1,15 +1,12 @@
1
- import { Request, Response } from "express";
2
1
  import { JSX } from "react";
3
- export type APIType = (req: Request, res: Response) => void;
4
- export type PageType = JSX.Element;
5
- export type ListAPIType = {
6
- [key: string]: APIType;
7
- }[];
8
- export type ListPageType = {
2
+ type PageType = JSX.Element;
3
+ export declare let list_page: {
9
4
  [key: string]: PageType;
10
- }[];
11
- export declare function start(param: {
12
- list_api: ListAPIType;
13
- list_page: ListPageType;
14
- }): Promise<void>;
5
+ };
6
+ export interface StartParam {
7
+ config_api_path: string;
8
+ config_page_path: string;
9
+ }
10
+ export declare function start(param: StartParam): void;
11
+ export {};
15
12
  //# sourceMappingURL=lib.d.ts.map
package/dist/lib.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../lib.tsx"],"names":[],"mappings":"AACA,OAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAErD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAE5B,MAAM,MAAM,OAAO,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,KAAK,IAAI,CAAC;AAC5D,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AACnC,MAAM,MAAM,WAAW,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,EAAE,CAAC;AAEzD,wBAAsB,KAAK,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE,iBAyCpF"}
1
+ {"version":3,"file":"lib.d.ts","sourceRoot":"","sources":["../lib.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAM5B,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC;AAE5B,eAAO,IAAI,SAAS,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAO,CAAC;AACvD,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AACD,wBAAgB,KAAK,CAAC,KAAK,EAAE,UAAU,QAuEtC"}
package/dist/lib.js CHANGED
@@ -1,39 +1,113 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.list_page = void 0;
6
40
  exports.start = start;
7
- const jsx_runtime_1 = require("react/jsx-runtime");
8
- const react_router_1 = require("react-router");
9
41
  const express_1 = __importDefault(require("express"));
10
- const server_1 = __importDefault(require("react-dom/server"));
11
- async function start(param) {
12
- const all_kv_page = param.list_page.reduce((acc, kv_page) => ({ ...acc, ...kv_page }), {});
13
- const all_kv_api = param.list_api.reduce((acc, kv_api) => ({ ...acc, ...kv_api }), {});
14
- const pages = ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: Object.keys(all_kv_page).map(page_path => ((0, jsx_runtime_1.jsx)(react_router_1.Route, { path: page_path, element: all_kv_page[page_path] }))) }));
15
- async function pageHandler(req, res) {
16
- const routes = (0, react_router_1.createRoutesFromElements)(pages);
17
- const handler = (0, react_router_1.createStaticHandler)(routes);
18
- const context = await handler.query(new Request(`http://localhost${req.url}`));
19
- if (context instanceof Response) {
20
- res.status(context.status);
21
- context.headers.forEach((v, k) => res.setHeader(k, v));
22
- res.send(await context.text());
23
- return;
24
- }
25
- const router = (0, react_router_1.createStaticRouter)(handler.dataRoutes, context);
26
- res.send(server_1.default.renderToString((0, jsx_runtime_1.jsx)(react_router_1.StaticRouterProvider, { router: router, context: context })));
27
- }
28
- const x = (0, express_1.default)();
29
- for (const method_path of Object.keys(all_kv_api)) {
42
+ const esbuild = __importStar(require("esbuild"));
43
+ const fs_1 = __importDefault(require("fs"));
44
+ const path_1 = __importDefault(require("path"));
45
+ exports.list_page = {};
46
+ function start(param) {
47
+ const app = (0, express_1.default)();
48
+ const all_kv_api = require(param.config_api_path).default;
49
+ Object.entries(all_kv_api).forEach(([method_path, api]) => {
30
50
  const [method, path] = method_path.trim().split(/\s+/g);
31
- const strict_method = method.toLocaleLowerCase();
32
- x[strict_method](path, all_kv_api[method_path]);
33
- }
34
- x.use(pageHandler);
35
- x.listen(5000, '0.0.0.0', () => {
36
- console.log('Server running on port 5000');
51
+ const ac_method = method.toLowerCase();
52
+ app[ac_method](path, api);
53
+ });
54
+ app.get('/client.js', async (req, res) => {
55
+ try {
56
+ fs_1.default.writeFileSync(path_1.default.resolve(process.cwd(), './lib-web-generated.tsx'), `
57
+ import { createBrowserRouter } from "react-router";
58
+ import { RouterProvider } from "react-router/dom";
59
+ const pages: Object = require('${path_1.default.resolve(param.config_page_path)}').default;
60
+ export const App = () => {
61
+ return <RouterProvider router={createBrowserRouter(Object.entries(pages).map(([path, element]) => ({ path, element })))} />
62
+ };
63
+ `);
64
+ const clientScript = `
65
+ import React from 'react';
66
+ import { createRoot } from 'react-dom/client';
67
+ import { App } from './lib-web-generated';
68
+ createRoot(document.getElementById('root')).render(<App />);
69
+ `;
70
+ const result = await esbuild.build({
71
+ stdin: {
72
+ contents: clientScript,
73
+ resolveDir: process.cwd(),
74
+ loader: 'tsx',
75
+ },
76
+ bundle: true,
77
+ minify: false,
78
+ write: false,
79
+ format: 'esm',
80
+ target: 'es2020',
81
+ define: {
82
+ 'process.env.NODE_ENV': '"development"'
83
+ }
84
+ });
85
+ res.type('application/javascript');
86
+ res.send(result.outputFiles[0].text);
87
+ }
88
+ catch (err) {
89
+ console.error("Esbuild compilation error:", err);
90
+ res.status(500).type('text/plain').send(err.toString());
91
+ }
92
+ });
93
+ app.use((req, res) => {
94
+ res.send(`
95
+ <!DOCTYPE html>
96
+ <html lang="en">
97
+ <head>
98
+ <meta charset="UTF-8">
99
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
100
+ <title>Test</title>
101
+ </head>
102
+ <body>
103
+ <div id="root"></div>
104
+ <script type="module" src="/client.js"></script>
105
+ </body>
106
+ </html>
107
+ `);
108
+ });
109
+ app.listen(5000, () => {
110
+ console.log('Server running at http://localhost:5000');
37
111
  });
38
112
  }
39
113
  //# sourceMappingURL=lib.js.map
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sourceRoot":"","sources":["../lib.tsx"],"names":[],"mappings":";;;;;AAUA,sBAyCC;;AAnDD,+CAA8H;AAC9H,sDAAqD;AACrD,8DAA8C;AAQvC,KAAK,UAAU,KAAK,CAAC,KAAyD;IACnF,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3F,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvF,MAAM,KAAK,GAAG,CACZ,2DAEI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CACxC,uBAAC,oBAAK,IAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,GAAI,CAC5D,CAAC,GAEH,CACJ,CAAA;IAED,KAAK,UAAU,WAAW,CAAC,GAAY,EAAE,GAAa;QACpD,MAAM,MAAM,GAAG,IAAA,uCAAwB,EAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,OAAO,GAAG,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,mBAAmB,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAE/E,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;YAChC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAA,iCAAkB,EAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,gBAAc,CAAC,cAAc,CAAC,uBAAC,mCAAoB,IAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAI,CAAC,CAAC,CAAC;IACtG,CAAC;IAED,MAAM,CAAC,GAAG,IAAA,iBAAO,GAAE,CAAC;IACpB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,MAAM,CAAC,iBAAiB,EAAiD,CAAC;QAChG,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAClD,CAAC;IACD,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACnB,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE;QAC7B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"lib.js","sourceRoot":"","sources":["../lib.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,sBAuEC;AArFD,sDAAqD;AAErD,iDAAmC;AACnC,4CAAoB;AACpB,gDAAwB;AAKb,QAAA,SAAS,GAAgC,EAAE,CAAC;AAKvD,SAAgB,KAAK,CAAC,KAAiB;IACrC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,UAAU,GAA+B,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;IACtF,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,EAAE;QACxD,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAiD,CAAC;QACtF,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,yBAAyB,CAAC,EAAE;;;yCAGtC,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;;;;OAItE,CAAC,CAAC;YACH,MAAM,YAAY,GAAG;;;;;OAKpB,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;gBACjC,KAAK,EAAE;oBACL,QAAQ,EAAE,YAAY;oBACtB,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;oBACzB,MAAM,EAAE,KAAK;iBACd;gBACD,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE;oBACN,sBAAsB,EAAE,eAAe;iBACxC;aACF,CAAC,CAAC;YAEH,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;YACjD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACnB,GAAG,CAAC,IAAI,CAAC;;;;;;;;;;;;;GAaV,CAAC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACpB,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moudle/start",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "",
5
5
  "main": "dist/lib.js",
6
6
  "publishConfig": {
@@ -23,12 +23,14 @@
23
23
  "@types/node": "^25.8.0",
24
24
  "@types/react": "^19.2.14",
25
25
  "@types/react-dom": "^19.2.3",
26
+ "@types/react-router-dom": "^5.3.3",
26
27
  "typescript": "^6.0.3"
27
28
  },
28
29
  "dependencies": {
29
30
  "@moudle/test": "^0.0.1",
30
31
  "@react-router/express": "^7.15.1",
31
32
  "express": "^5.2.1",
32
- "react-dom": "^19.2.6"
33
+ "react-dom": "^19.2.6",
34
+ "react-router-dom": "^7.15.1"
33
35
  }
34
36
  }