@_tc/template-core 0.0.1-bate.29 → 0.0.1-bate.30

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 (183) hide show
  1. package/cjs/_virtual/_rolldown/runtime.js +37 -0
  2. package/cjs/app/controller/base.js +28 -20
  3. package/cjs/app/controller/project.js +59 -49
  4. package/cjs/app/controller/view.js +14 -13
  5. package/cjs/app/data/signKey.js +23 -4
  6. package/cjs/app/extend/db.js +6 -10
  7. package/cjs/app/extend/generateErrorMessage.js +15 -13
  8. package/cjs/app/extend/logger.js +34 -71
  9. package/cjs/app/extend/parsingParamsOnUrl.js +21 -21
  10. package/cjs/app/extend/render-view.js +23 -22
  11. package/cjs/app/middleware/api-params-verify.js +61 -61
  12. package/cjs/app/middleware/api-sign-verify.js +22 -27
  13. package/cjs/app/middleware/error-handle.js +31 -32
  14. package/cjs/app/middleware/project-handler.js +20 -20
  15. package/cjs/app/middleware.js +30 -56
  16. package/cjs/app/router/project.js +9 -7
  17. package/cjs/app/router/view.js +6 -4
  18. package/cjs/app/router-schema/project.js +15 -32
  19. package/cjs/app/service/bese.js +16 -16
  20. package/cjs/app/service/project.js +32 -41
  21. package/cjs/app/type.js +1 -2
  22. package/cjs/app/typings.js +1 -2
  23. package/cjs/bundler/dev.js +16 -16
  24. package/cjs/bundler/index.js +16 -16
  25. package/cjs/bundler/prod.js +18 -17
  26. package/cjs/bundler/utils.js +144 -212
  27. package/cjs/index.js +25 -18
  28. package/cjs/packages/core/env.js +26 -24
  29. package/cjs/packages/core/index.js +101 -113
  30. package/cjs/packages/core/loader/config.js +39 -43
  31. package/cjs/packages/core/loader/controller.js +25 -32
  32. package/cjs/packages/core/loader/extend.js +29 -39
  33. package/cjs/packages/core/loader/middleware.js +28 -36
  34. package/cjs/packages/core/loader/model.js +98 -123
  35. package/cjs/packages/core/loader/router-schema.js +32 -33
  36. package/cjs/packages/core/loader/router.js +46 -61
  37. package/cjs/packages/core/loader/service.js +21 -22
  38. package/cjs/packages/core/paths.js +8 -6
  39. package/cjs/packages/core/types.js +1 -2
  40. package/cjs/packages/utils/getAllFilesInFolder.js +12 -43
  41. package/cjs/packages/utils/getAllFnReturnValue.js +1 -6
  42. package/cjs/packages/utils/index.js +11 -20
  43. package/cjs/packages/utils/loadFile.js +52 -62
  44. package/cjs/packages/utils/path.js +25 -58
  45. package/cjs/packages/utils/runFileFn.js +5 -4
  46. package/esm/_virtual/_rolldown/runtime.js +32 -0
  47. package/esm/app/controller/base.js +27 -20
  48. package/esm/app/controller/project.js +58 -41
  49. package/esm/app/controller/view.js +13 -11
  50. package/esm/app/data/signKey.js +10 -1
  51. package/esm/app/extend/db.js +6 -8
  52. package/esm/app/extend/generateErrorMessage.js +14 -11
  53. package/esm/app/extend/logger.js +33 -36
  54. package/esm/app/extend/parsingParamsOnUrl.js +20 -19
  55. package/esm/app/extend/render-view.js +18 -15
  56. package/esm/app/middleware/api-params-verify.js +58 -55
  57. package/esm/app/middleware/api-sign-verify.js +20 -21
  58. package/esm/app/middleware/error-handle.js +30 -30
  59. package/esm/app/middleware/project-handler.js +19 -18
  60. package/esm/app/middleware.js +22 -47
  61. package/esm/app/router/project.js +8 -5
  62. package/esm/app/router/view.js +5 -2
  63. package/esm/app/router-schema/project.js +14 -30
  64. package/esm/app/service/bese.js +13 -10
  65. package/esm/app/service/project.js +31 -33
  66. package/esm/app/type.js +0 -1
  67. package/esm/app/typings.js +0 -1
  68. package/esm/bundler/dev.js +15 -14
  69. package/esm/bundler/index.js +13 -11
  70. package/esm/bundler/prod.js +17 -15
  71. package/esm/bundler/utils.js +136 -169
  72. package/esm/index.js +16 -11
  73. package/esm/packages/core/env.js +25 -22
  74. package/esm/packages/core/index.js +98 -106
  75. package/esm/packages/core/loader/config.js +39 -41
  76. package/esm/packages/core/loader/controller.js +25 -30
  77. package/esm/packages/core/loader/extend.js +28 -36
  78. package/esm/packages/core/loader/middleware.js +28 -34
  79. package/esm/packages/core/loader/model.js +97 -118
  80. package/esm/packages/core/loader/router-schema.js +32 -31
  81. package/esm/packages/core/loader/router.js +44 -55
  82. package/esm/packages/core/loader/service.js +21 -20
  83. package/esm/packages/core/paths.js +7 -4
  84. package/esm/packages/core/types.js +0 -1
  85. package/esm/packages/utils/getAllFilesInFolder.js +8 -5
  86. package/esm/packages/utils/getAllFnReturnValue.js +0 -6
  87. package/esm/packages/utils/index.js +5 -4
  88. package/esm/packages/utils/loadFile.js +44 -58
  89. package/esm/packages/utils/path.js +23 -22
  90. package/esm/packages/utils/runFileFn.js +4 -1
  91. package/package.json +10 -8
  92. package/cjs/app/controller/base.d.ts +0 -12
  93. package/cjs/app/controller/project.d.ts +0 -10
  94. package/cjs/app/controller/view.d.ts +0 -7
  95. package/cjs/app/data/signKey.d.ts +0 -1
  96. package/cjs/app/extend/db.d.ts +0 -2
  97. package/cjs/app/extend/generateErrorMessage.d.ts +0 -7
  98. package/cjs/app/extend/logger.d.ts +0 -11
  99. package/cjs/app/extend/parsingParamsOnUrl.d.ts +0 -2
  100. package/cjs/app/extend/render-view.d.ts +0 -3
  101. package/cjs/app/middleware/api-params-verify.d.ts +0 -4
  102. package/cjs/app/middleware/api-sign-verify.d.ts +0 -4
  103. package/cjs/app/middleware/error-handle.d.ts +0 -4
  104. package/cjs/app/middleware/project-handler.d.ts +0 -4
  105. package/cjs/app/middleware.d.ts +0 -3
  106. package/cjs/app/router/project.d.ts +0 -4
  107. package/cjs/app/router/view.d.ts +0 -4
  108. package/cjs/app/router-schema/project.d.ts +0 -3
  109. package/cjs/app/service/bese.d.ts +0 -10
  110. package/cjs/app/service/project.d.ts +0 -27
  111. package/cjs/app/type.d.ts +0 -2
  112. package/cjs/app/typings.d.ts +0 -50
  113. package/cjs/bundler/dev.d.ts +0 -1
  114. package/cjs/bundler/index.d.ts +0 -1
  115. package/cjs/bundler/prod.d.ts +0 -1
  116. package/cjs/bundler/utils.d.ts +0 -9
  117. package/cjs/index.d.ts +0 -28
  118. package/cjs/packages/core/env.d.ts +0 -15
  119. package/cjs/packages/core/index.d.ts +0 -6
  120. package/cjs/packages/core/loader/config.d.ts +0 -9
  121. package/cjs/packages/core/loader/controller.d.ts +0 -17
  122. package/cjs/packages/core/loader/extend.d.ts +0 -8
  123. package/cjs/packages/core/loader/middleware.d.ts +0 -11
  124. package/cjs/packages/core/loader/model.d.ts +0 -36
  125. package/cjs/packages/core/loader/router-schema.d.ts +0 -18
  126. package/cjs/packages/core/loader/router.d.ts +0 -8
  127. package/cjs/packages/core/loader/service.d.ts +0 -17
  128. package/cjs/packages/core/paths.d.ts +0 -11
  129. package/cjs/packages/core/types.d.ts +0 -74
  130. package/cjs/packages/utils/getAllFilesInFolder.d.ts +0 -9
  131. package/cjs/packages/utils/getAllFnReturnValue.d.ts +0 -0
  132. package/cjs/packages/utils/index.d.ts +0 -4
  133. package/cjs/packages/utils/loadFile.d.ts +0 -20
  134. package/cjs/packages/utils/path.d.ts +0 -24
  135. package/cjs/packages/utils/runFileFn.d.ts +0 -5
  136. package/cjs/typings/type.d.ts +0 -4
  137. package/cjs/typings/type.js +0 -2
  138. package/esm/app/controller/base.d.ts +0 -13
  139. package/esm/app/controller/project.d.ts +0 -11
  140. package/esm/app/controller/view.d.ts +0 -8
  141. package/esm/app/data/signKey.d.ts +0 -2
  142. package/esm/app/extend/db.d.ts +0 -3
  143. package/esm/app/extend/generateErrorMessage.d.ts +0 -8
  144. package/esm/app/extend/logger.d.ts +0 -12
  145. package/esm/app/extend/parsingParamsOnUrl.d.ts +0 -3
  146. package/esm/app/extend/render-view.d.ts +0 -4
  147. package/esm/app/middleware/api-params-verify.d.ts +0 -5
  148. package/esm/app/middleware/api-sign-verify.d.ts +0 -5
  149. package/esm/app/middleware/error-handle.d.ts +0 -5
  150. package/esm/app/middleware/project-handler.d.ts +0 -5
  151. package/esm/app/middleware.d.ts +0 -4
  152. package/esm/app/router/project.d.ts +0 -5
  153. package/esm/app/router/view.d.ts +0 -5
  154. package/esm/app/router-schema/project.d.ts +0 -4
  155. package/esm/app/service/bese.d.ts +0 -11
  156. package/esm/app/service/project.d.ts +0 -28
  157. package/esm/app/type.d.ts +0 -3
  158. package/esm/app/typings.d.ts +0 -51
  159. package/esm/bundler/dev.d.ts +0 -2
  160. package/esm/bundler/index.d.ts +0 -2
  161. package/esm/bundler/prod.d.ts +0 -2
  162. package/esm/bundler/utils.d.ts +0 -10
  163. package/esm/index.d.ts +0 -29
  164. package/esm/packages/core/env.d.ts +0 -16
  165. package/esm/packages/core/index.d.ts +0 -7
  166. package/esm/packages/core/loader/config.d.ts +0 -10
  167. package/esm/packages/core/loader/controller.d.ts +0 -18
  168. package/esm/packages/core/loader/extend.d.ts +0 -9
  169. package/esm/packages/core/loader/middleware.d.ts +0 -12
  170. package/esm/packages/core/loader/model.d.ts +0 -37
  171. package/esm/packages/core/loader/router-schema.d.ts +0 -19
  172. package/esm/packages/core/loader/router.d.ts +0 -9
  173. package/esm/packages/core/loader/service.d.ts +0 -18
  174. package/esm/packages/core/paths.d.ts +0 -12
  175. package/esm/packages/core/types.d.ts +0 -75
  176. package/esm/packages/utils/getAllFilesInFolder.d.ts +0 -10
  177. package/esm/packages/utils/getAllFnReturnValue.d.ts +0 -1
  178. package/esm/packages/utils/index.d.ts +0 -5
  179. package/esm/packages/utils/loadFile.d.ts +0 -21
  180. package/esm/packages/utils/path.d.ts +0 -25
  181. package/esm/packages/utils/runFileFn.d.ts +0 -6
  182. package/esm/typings/type.d.ts +0 -5
  183. package/esm/typings/type.js +0 -1
@@ -1,180 +1,147 @@
1
+ import { resolve as resolve$1 } from "../packages/utils/path.js";
2
+ import "../packages/utils/index.js";
1
3
  import path from "path";
2
4
  import * as glob from "glob";
3
5
  import { build } from "vite";
4
- import { resolve } from "../packages/utils.js";
5
- import { copyFileSync, existsSync, readdirSync, readFileSync, rmdirSync, unlinkSync, writeFileSync, } from "fs";
6
- const base = process.cwd();
7
- // 瞄准输出后的产物路径
8
- const framePath = path.resolve(__dirname, "../../");
9
- const frameNodePath = path.resolve(__dirname, "../");
10
- const frameFEPath = path.resolve(framePath, "./fe/frontend");
11
- const runPath = path.resolve(base, ".");
12
- const runFEPath = path.resolve(runPath, "./frontend");
6
+ import { copyFileSync, existsSync, readFileSync, readdirSync, rmdirSync, unlinkSync, writeFileSync } from "fs";
7
+ import tailwindcss from "@tailwindcss/vite";
8
+ //#region bundler/utils.ts
9
+ var base = process.cwd();
10
+ var framePath = path.resolve(__dirname, "../../");
11
+ var frameNodePath = path.resolve(__dirname, "../");
12
+ var frameFEPath = path.resolve(framePath, "./fe/frontend");
13
+ var runPath = path.resolve(base, ".");
14
+ var runFEPath = path.resolve(runPath, "./frontend");
13
15
  /**
14
- *
15
- * 寻找 frontend\/**\/*.entry.[j|t]s(x)?
16
- * 生成入口
17
- */
18
- export function entries() {
19
- console.log("frameFEPath: ", frameFEPath);
20
- console.log("runFEPath: ", runFEPath);
21
- /**
22
- * 所有包含 entry 的文件
23
- */
24
- const files = [frameFEPath, runFEPath].reduce((o, fileDir) => {
25
- const fileType = ["js", "jsx", "ts", "tsx"].map((fileExtension) => resolve(fileDir, "/**", "/*." + fileExtension));
26
- const files = glob
27
- .sync(fileType)
28
- .filter((fileName) => fileName.includes(".entry."))
29
- .filter((fileName) => !fileName.includes(".d.ts"));
30
- return [...o, ...files];
31
- }, []);
32
- const input = {};
33
- if (!files.length)
34
- return input;
35
- /**
36
- * 查找 file 同级是否存在 .html 文件
37
- * 如果存在直接使用 如果不存在 生成一份
38
- */
39
- let templateHtml;
40
- for (let index = 0; index < files.length; index++) {
41
- const filePath = files[index];
42
- const fileDIr = path.resolve(filePath, "../");
43
- const fileHtml = glob.sync(resolve(fileDIr, "*.html"))[0];
44
- if (!fileHtml) {
45
- if (!templateHtml) {
46
- templateHtml = readFileSync(path.resolve(frameNodePath, "./app/view/entry.tpl"), "utf-8");
47
- }
48
- //
49
- const scriptStr = filePath.split(path.sep).at(-1);
50
- const content = templateHtml.replace(`<!-- {{InsertScript}} -->`, `<script type="module" src="./${scriptStr}"></script>`);
51
- const htmlName = fileDIr.split(path.sep).at(-1);
52
- const htmlPath = path.join(fileDIr, htmlName + ".html");
53
- writeFileSync(htmlPath, content);
54
- input[htmlName] = htmlPath;
55
- }
56
- else {
57
- fileHtml;
58
- const key = path.basename(fileHtml, ".html");
59
- input[key] = path.resolve(base, fileHtml);
60
- }
61
- }
62
- // for (const file of readdirSync(base)) {
63
- // if (!file.endsWith(".html")) continue;
64
- // const key = path.basename(file, ".html");
65
- // input[key] = path.resolve(base, file);
66
- // }
67
- return input;
16
+ *
17
+ * 寻找 frontend\/**\/*.entry.[j|t]s(x)?
18
+ * 生成入口
19
+ */
20
+ function entries() {
21
+ console.log("frameFEPath: ", frameFEPath);
22
+ console.log("runFEPath: ", runFEPath);
23
+ /**
24
+ * 所有包含 entry 的文件
25
+ */
26
+ const files = [frameFEPath, runFEPath].reduce((o, fileDir) => {
27
+ const fileType = [
28
+ "js",
29
+ "jsx",
30
+ "ts",
31
+ "tsx"
32
+ ].map((fileExtension) => resolve$1(fileDir, "/**", "/*." + fileExtension));
33
+ const files = glob.sync(fileType).filter((fileName) => fileName.includes(".entry.")).filter((fileName) => !fileName.includes(".d.ts"));
34
+ return [...o, ...files];
35
+ }, []);
36
+ const input = {};
37
+ if (!files.length) return input;
38
+ /**
39
+ * 查找 file 同级是否存在 .html 文件
40
+ * 如果存在直接使用 如果不存在 生成一份
41
+ */
42
+ let templateHtml;
43
+ for (let index = 0; index < files.length; index++) {
44
+ const filePath = files[index];
45
+ const fileDIr = path.resolve(filePath, "../");
46
+ const fileHtml = glob.sync(resolve$1(fileDIr, "*.html"))[0];
47
+ if (!fileHtml) {
48
+ if (!templateHtml) templateHtml = readFileSync(path.resolve(frameNodePath, "./app/view/entry.tpl"), "utf-8");
49
+ const scriptStr = filePath.split(path.sep).at(-1);
50
+ const content = templateHtml.replace(`<!-- {{InsertScript}} -->`, `<script type="module" src="./${scriptStr}"><\/script>`);
51
+ const htmlName = fileDIr.split(path.sep).at(-1);
52
+ const htmlPath = path.join(fileDIr, htmlName + ".html");
53
+ writeFileSync(htmlPath, content);
54
+ input[htmlName] = htmlPath;
55
+ } else {
56
+ const key = path.basename(fileHtml, ".html");
57
+ input[key] = path.resolve(base, fileHtml);
58
+ }
59
+ }
60
+ return input;
68
61
  }
69
- export function outDir() {
70
- // // 为了保持代码 能见性 输出地址应该为 runPath/app/public/dist
71
- // 放在框架路径比较保险
72
- return path.join(frameNodePath, "./app/public/dist");
62
+ function outDir() {
63
+ return path.join(frameNodePath, "./app/public/dist");
73
64
  }
74
- export const watchFiles = async (callback) => {
75
- const chokidar = await import("chokidar");
76
- // 在实际使用时 只有使用方的文件会变化
77
- const watcher = chokidar.watch(runFEPath, {
78
- ignored: /(^|[\/\\])\../,
79
- persistent: true,
80
- ignoreInitial: true,
81
- });
82
- let building = false;
83
- watcher.on("change", async (filePath) => {
84
- if (building)
85
- return;
86
- building = true;
87
- console.log(`changed: ${filePath}`);
88
- await callback?.();
89
- console.log("rebuild done");
90
- building = false;
91
- });
92
- console.log(`watching ${runFEPath}/...`);
65
+ var watchFiles = async (callback) => {
66
+ const watcher = (await import("chokidar")).watch(runFEPath, {
67
+ ignored: /(^|[\/\\])\../,
68
+ persistent: true,
69
+ ignoreInitial: true
70
+ });
71
+ let building = false;
72
+ watcher.on("change", async (filePath) => {
73
+ if (building) return;
74
+ building = true;
75
+ console.log(`changed: ${filePath}`);
76
+ await callback?.();
77
+ console.log("rebuild done");
78
+ building = false;
79
+ });
80
+ console.log(`watching ${runFEPath}/...`);
93
81
  };
94
82
  /**
95
- *
96
- * 1. 在 build 结束后
97
- * 2. 获取输出目录下的html文件
98
- * 3. 移动内部的html 至 输出目录的根节点
99
- */
83
+ *
84
+ * 1. 在 build 结束后
85
+ * 2. 获取输出目录下的html文件
86
+ * 3. 移动内部的html 至 输出目录的根节点
87
+ */
100
88
  function flattenHtmlPlugin(suffix = ".html") {
101
- return {
102
- name: "flatten-html",
103
- apply: "build",
104
- closeBundle() {
105
- const feDir = outDir();
106
- if (!existsSync(feDir))
107
- return;
108
- // 移动文件
109
- const htmlFiles = glob.sync("**/*.html", { cwd: feDir });
110
- for (const file of htmlFiles) {
111
- const src = path.join(feDir, file);
112
- let fileOName = path.basename(file, ".html");
113
- // 如果文件名没有 entry 补上后缀
114
- const entrySuffix = ".entry";
115
- if (fileOName.indexOf(entrySuffix) === -1) {
116
- fileOName = fileOName + entrySuffix;
117
- }
118
- const fileName = fileOName + suffix;
119
- const dest = path.join(feDir, fileName);
120
- if (src !== dest) {
121
- copyFileSync(src, dest);
122
- unlinkSync(src);
123
- }
124
- }
125
- const parents = [...new Set(htmlFiles.map((f) => path.dirname(f)))]
126
- .sort()
127
- .reverse();
128
- /**
129
- *
130
- * 删除空的目录
131
- */
132
- const delEmptyDir = (pathStr) => {
133
- const currentDir = existsSync(pathStr) ? readdirSync(pathStr) : [1];
134
- if (!currentDir.length) {
135
- rmdirSync(pathStr);
136
- const pa = pathStr.split(path.sep).slice(0, -1);
137
- pa.length && delEmptyDir(pa.join(path.sep));
138
- }
139
- };
140
- for (const dir of parents) {
141
- if (dir && dir !== ".") {
142
- const fullPath = path.join(feDir, dir);
143
- delEmptyDir(fullPath);
144
- }
145
- }
146
- /**
147
- * ------------------
148
- */
149
- // 输出最终的 文件路径
150
- const endFiles = glob.sync("**/*" + suffix, { cwd: feDir });
151
- for (const f of endFiles) {
152
- console.log("final file path -----> ", f);
153
- }
154
- },
155
- };
89
+ return {
90
+ name: "flatten-html",
91
+ apply: "build",
92
+ closeBundle() {
93
+ const feDir = outDir();
94
+ if (!existsSync(feDir)) return;
95
+ const htmlFiles = glob.sync("**/*.html", { cwd: feDir });
96
+ for (const file of htmlFiles) {
97
+ const src = path.join(feDir, file);
98
+ let fileOName = path.basename(file, ".html");
99
+ const entrySuffix = ".entry";
100
+ if (fileOName.indexOf(entrySuffix) === -1) fileOName = fileOName + entrySuffix;
101
+ const fileName = fileOName + suffix;
102
+ const dest = path.join(feDir, fileName);
103
+ if (src !== dest) {
104
+ copyFileSync(src, dest);
105
+ unlinkSync(src);
106
+ }
107
+ }
108
+ const parents = [...new Set(htmlFiles.map((f) => path.dirname(f)))].sort().reverse();
109
+ /**
110
+ *
111
+ * 删除空的目录
112
+ */
113
+ const delEmptyDir = (pathStr) => {
114
+ if (!(existsSync(pathStr) ? readdirSync(pathStr) : [1]).length) {
115
+ rmdirSync(pathStr);
116
+ const pa = pathStr.split(path.sep).slice(0, -1);
117
+ pa.length && delEmptyDir(pa.join(path.sep));
118
+ }
119
+ };
120
+ for (const dir of parents) if (dir && dir !== ".") delEmptyDir(path.join(feDir, dir));
121
+ /**
122
+ * ------------------
123
+ */
124
+ const endFiles = glob.sync("**/*" + suffix, { cwd: feDir });
125
+ for (const f of endFiles) console.log("final file path -----> ", f);
126
+ }
127
+ };
156
128
  }
157
- export const VBuildFE = async (input) => {
158
- // 根据入口构建
159
- await build({
160
- configFile: false,
161
- base: 'dist',
162
- plugins: [
163
- (await import("@vitejs/plugin-react")).default(),
164
- flattenHtmlPlugin(".tpl"),
165
- ],
166
- build: {
167
- outDir: outDir(),
168
- emptyOutDir: true,
169
- rollupOptions: {
170
- input,
171
- },
172
- },
173
- resolve: {
174
- alias: {
175
- // 需要配置打包后的文件地址
176
- "@tc/ui-react": path.resolve(__dirname, "../../fe/packages/ui/react/"),
177
- },
178
- },
179
- });
129
+ var VBuildFE = async (input) => {
130
+ await build({
131
+ configFile: false,
132
+ base: "dist",
133
+ plugins: [
134
+ (await import("@vitejs/plugin-react")).default(),
135
+ flattenHtmlPlugin(".tpl"),
136
+ tailwindcss()
137
+ ],
138
+ build: {
139
+ outDir: outDir(),
140
+ emptyOutDir: true,
141
+ rollupOptions: { input }
142
+ },
143
+ resolve: { alias: { "@tc/ui-react": path.resolve(__dirname, "../../fe/packages/ui/react/") } }
144
+ });
180
145
  };
146
+ //#endregion
147
+ export { VBuildFE, entries, outDir, watchFiles };
package/esm/index.js CHANGED
@@ -1,13 +1,18 @@
1
- import { start } from "./packages/core/index.js";
2
- import "./app/typings.js";
3
- import { resolve } from "./packages/utils/index.js";
4
- import baseControllerFn from "./app/controller/base.js";
5
- import baseServiceFn from "./app/service/bese.js";
6
- export const serverStart = (options) => {
7
- return start({ ...options, frameBaseDir: resolve(__dirname, ".") });
1
+ import base_default from "./app/controller/base.js";
2
+ import bese_default from "./app/service/bese.js";
3
+ import { start } from "@tc/core";
4
+ import { resolve } from "@tc/utils";
5
+ import modelLoader from "@tc/core/loader/model";
6
+ //#region index.ts
7
+ var serverStart = (options) => {
8
+ return start({
9
+ ...options,
10
+ frameBaseDir: resolve(__dirname, ".")
11
+ });
8
12
  };
9
- export const baseFn = {
10
- baseControllerFn,
11
- baseServiceFn,
13
+ var baseFn = {
14
+ baseControllerFn: base_default,
15
+ baseServiceFn: bese_default
12
16
  };
13
- export { default as modelLoader } from "./packages/core/loader/model.js";
17
+ //#endregion
18
+ export { baseFn, modelLoader, serverStart };
@@ -1,23 +1,26 @@
1
- export default () => {
2
- return {
3
- isLocal() {
4
- return process.env._ENV === 'local';
5
- },
6
- isBate() {
7
- return process.env._ENV === 'bate';
8
- },
9
- isProd() {
10
- return process.env._ENV === 'prod';
11
- },
12
- get() {
13
- return (process.env._ENV ?? 'local');
14
- },
15
- getEnvKeys() {
16
- return {
17
- local: 'local',
18
- bate: 'bate',
19
- prod: 'prod',
20
- };
21
- },
22
- };
1
+ //#region packages/core/env.ts
2
+ var env_default = () => {
3
+ return {
4
+ isLocal() {
5
+ return process.env._ENV === "local";
6
+ },
7
+ isBate() {
8
+ return process.env._ENV === "bate";
9
+ },
10
+ isProd() {
11
+ return process.env._ENV === "prod";
12
+ },
13
+ get() {
14
+ return process.env._ENV ?? "local";
15
+ },
16
+ getEnvKeys() {
17
+ return {
18
+ local: "local",
19
+ bate: "bate",
20
+ prod: "prod"
21
+ };
22
+ }
23
+ };
23
24
  };
25
+ //#endregion
26
+ export { env_default as default };
@@ -1,109 +1,101 @@
1
- import Koa from "koa";
2
- import "./types.js";
3
- import "../../app/typings.js";
4
- import env from "./env.js";
5
- import middlewareLoader from "./loader/middleware.js";
6
- import routerSchemaLoader from "./loader/router-schema.js";
7
- import routerLoader from "./loader/router.js";
8
- import controllerLoader from "./loader/controller.js";
9
- import serviceLoader from "./loader/service.js";
10
- import configLoader from "./loader/config.js";
11
- import extendLoader from "./loader/extend.js";
1
+ import { __require } from "../../_virtual/_rolldown/runtime.js";
2
+ import env_default from "./env.js";
3
+ import middleware_default from "./loader/middleware.js";
4
+ import router_schema_default from "./loader/router-schema.js";
5
+ import router_default from "./loader/router.js";
6
+ import controller_default from "./loader/controller.js";
7
+ import service_default from "./loader/service.js";
8
+ import config_default from "./loader/config.js";
9
+ import extend_default from "./loader/extend.js";
12
10
  import modelLoader from "./loader/model.js";
13
- import { resolve } from "../utils/path.js";
14
- import { runFileFn } from "../utils/index.js";
15
- export const loaderModel = modelLoader;
16
- export const start = (options = {}) => {
17
- const app = new Koa();
18
- const { frameBaseDir: _frameBaseDir, ..._options } = options;
19
- app.options = _options;
20
- const baseDir = (app.baseDir = process.cwd());
21
- const frameBaseDir = (app.frameBaseDir =
22
- _frameBaseDir ?? resolve(__dirname, ".."));
23
- app.businessPath = resolve(baseDir, "app");
24
- app.framePath = resolve(frameBaseDir, "app");
25
- app.paths = [
26
- { type: "frame", path: app.framePath },
27
- { type: "business", path: app.businessPath },
28
- ];
29
- app.envs = env();
30
- console.log(`-- [start] env: ${app.envs.get()} --`);
31
- /**
32
- * 第一个挂载
33
- * 方便后续 所有带有app的方法中可以通过 app.config 获取配置
34
- */
35
- configLoader(app);
36
- console.log(`-- [start] loader config done --`);
37
- /**
38
- * 第二个挂载 扩展的方法
39
- * 因不确定会在何处调用 app.[extendFN]
40
- * 所以需要调高挂载顺序
41
- */
42
- extendLoader(app);
43
- console.log(`-- [start] loader extend done --`);
44
- /**
45
- * 参数校验规则,在中间件之前即可
46
- */
47
- routerSchemaLoader(app);
48
- console.log(`-- [start] loader routerSchema done --`);
49
- /**
50
- * service 在 controller 之前即可
51
- * 以下俩loader在router前即可
52
- */
53
- serviceLoader(app);
54
- console.log(`-- [start] loader service done --`);
55
- controllerLoader(app);
56
- console.log(`-- [start] loader controller done --`);
57
- /**
58
- * 挂载中间件文件
59
- */
60
- middlewareLoader(app);
61
- console.log(`-- [start] loader middleware done --`);
62
- // 加载全局中间件
63
- mountMiddleware(app);
64
- // 最后加载路由
65
- routerLoader(app);
66
- console.log(`-- [start] loader router done --`);
67
- // modelLoader(app);
68
- // console.log(`-- [start] loader model done --`);
69
- // 启动服务
70
- try {
71
- const _p = app.config.port || process.env.PORT || "8080";
72
- const port = parseInt(_p + "", 10);
73
- const host = process.env.IP || "0.0.0.0";
74
- app.listen(port, host);
75
- console.log(`Server port:${port}`);
76
- }
77
- catch (error) {
78
- console.error(error);
79
- }
80
- return app;
11
+ import { runFileFn } from "@tc/utils";
12
+ import Koa from "koa";
13
+ import { resolve as resolve$1 } from "@tc/utils/path";
14
+ //#region packages/core/index.ts
15
+ var loaderModel = modelLoader;
16
+ var start = (options = {}) => {
17
+ const app = new Koa();
18
+ const { frameBaseDir: _frameBaseDir, ..._options } = options;
19
+ app.options = _options;
20
+ const baseDir = app.baseDir = process.cwd();
21
+ const frameBaseDir = app.frameBaseDir = _frameBaseDir ?? resolve$1(__dirname, "..");
22
+ app.businessPath = resolve$1(baseDir, "app");
23
+ app.framePath = resolve$1(frameBaseDir, "app");
24
+ app.paths = [{
25
+ type: "frame",
26
+ path: app.framePath
27
+ }, {
28
+ type: "business",
29
+ path: app.businessPath
30
+ }];
31
+ app.envs = env_default();
32
+ console.log(`-- [start] env: ${app.envs.get()} --`);
33
+ /**
34
+ * 第一个挂载
35
+ * 方便后续 所有带有app的方法中可以通过 app.config 获取配置
36
+ */
37
+ config_default(app);
38
+ console.log(`-- [start] loader config done --`);
39
+ /**
40
+ * 第二个挂载 扩展的方法
41
+ * 因不确定会在何处调用 app.[extendFN]
42
+ * 所以需要调高挂载顺序
43
+ */
44
+ extend_default(app);
45
+ console.log(`-- [start] loader extend done --`);
46
+ /**
47
+ * 参数校验规则,在中间件之前即可
48
+ */
49
+ router_schema_default(app);
50
+ console.log(`-- [start] loader routerSchema done --`);
51
+ /**
52
+ * service controller 之前即可
53
+ * 以下俩loader在router前即可
54
+ */
55
+ service_default(app);
56
+ console.log(`-- [start] loader service done --`);
57
+ controller_default(app);
58
+ console.log(`-- [start] loader controller done --`);
59
+ /**
60
+ * 挂载中间件文件
61
+ */
62
+ middleware_default(app);
63
+ console.log(`-- [start] loader middleware done --`);
64
+ mountMiddleware(app);
65
+ router_default(app);
66
+ console.log(`-- [start] loader router done --`);
67
+ try {
68
+ const _p = app.config.port || process.env.PORT || "8080";
69
+ const port = parseInt(_p + "", 10);
70
+ const host = process.env.IP || "0.0.0.0";
71
+ app.listen(port, host);
72
+ console.log(`Server port:${port}`);
73
+ } catch (error) {
74
+ console.error(error);
75
+ }
76
+ return app;
81
77
  };
82
- const mountMiddleware = (app) => {
83
- app.paths.forEach((pathInfo) => {
84
- let loaded = false;
85
- let lastError = undefined;
86
- for (const fileSymbol of ["ts", "js"]) {
87
- const fileName = `middleware.${fileSymbol}`;
88
- try {
89
- const fn = runFileFn(require(resolve(pathInfo.path, fileName)));
90
- fn?.(app);
91
- console.log(`-- [start] loader ${pathInfo.type} appMiddlerare ${fileName} done -- (${pathInfo.path})`);
92
- loaded = true;
93
- break;
94
- }
95
- catch (error) {
96
- const err = error;
97
- const moduleNotFound = err?.code === "MODULE_NOT_FOUND" &&
98
- typeof err?.message === "string" &&
99
- err.message.includes(fileName);
100
- if (!moduleNotFound)
101
- lastError = error;
102
- }
103
- }
104
- if (!loaded && lastError) {
105
- console.log(`-- [error] loader ${pathInfo.type} appMiddlerare middleware.(ts|js) error -- (${pathInfo.path})`);
106
- console.log(lastError);
107
- }
108
- });
78
+ var mountMiddleware = (app) => {
79
+ app.paths.forEach((pathInfo) => {
80
+ let loaded = false;
81
+ let lastError = void 0;
82
+ for (const fileSymbol of ["ts", "js"]) {
83
+ const fileName = `middleware.${fileSymbol}`;
84
+ try {
85
+ runFileFn(__require(resolve$1(pathInfo.path, fileName)))?.(app);
86
+ console.log(`-- [start] loader ${pathInfo.type} appMiddlerare ${fileName} done -- (${pathInfo.path})`);
87
+ loaded = true;
88
+ break;
89
+ } catch (error) {
90
+ const err = error;
91
+ if (!(err?.code === "MODULE_NOT_FOUND" && typeof err?.message === "string" && err.message.includes(fileName))) lastError = error;
92
+ }
93
+ }
94
+ if (!loaded && lastError) {
95
+ console.log(`-- [error] loader ${pathInfo.type} appMiddlerare middleware.(ts|js) error -- (${pathInfo.path})`);
96
+ console.log(lastError);
97
+ }
98
+ });
109
99
  };
100
+ //#endregion
101
+ export { loaderModel, start };