oak-domain 4.0.1 → 4.0.3

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 (207) hide show
  1. package/lib/actions/action.d.ts +16 -16
  2. package/lib/actions/action.js +17 -17
  3. package/lib/actions/relation.d.ts +5 -5
  4. package/lib/actions/relation.js +25 -25
  5. package/lib/base-app-domain/ActionAuth/Schema.d.ts +186 -186
  6. package/lib/base-app-domain/ActionAuth/Storage.js +39 -39
  7. package/lib/base-app-domain/ActionDefDict.d.ts +8 -8
  8. package/lib/base-app-domain/ActionDefDict.js +9 -9
  9. package/lib/base-app-domain/EntityDict.d.ts +28 -28
  10. package/lib/base-app-domain/I18n/Schema.d.ts +129 -129
  11. package/lib/base-app-domain/I18n/Schema.js +2 -2
  12. package/lib/base-app-domain/I18n/Storage.d.ts +3 -3
  13. package/lib/base-app-domain/I18n/Storage.js +59 -59
  14. package/lib/base-app-domain/Modi/Action.d.ts +10 -10
  15. package/lib/base-app-domain/Modi/Action.js +14 -14
  16. package/lib/base-app-domain/Modi/Schema.d.ts +136 -136
  17. package/lib/base-app-domain/Modi/Storage.js +63 -63
  18. package/lib/base-app-domain/ModiEntity/Schema.d.ts +384 -384
  19. package/lib/base-app-domain/ModiEntity/Storage.js +30 -30
  20. package/lib/base-app-domain/Oper/Schema.d.ts +153 -153
  21. package/lib/base-app-domain/Oper/Storage.js +38 -38
  22. package/lib/base-app-domain/OperEntity/Schema.d.ts +373 -373
  23. package/lib/base-app-domain/OperEntity/Storage.js +30 -30
  24. package/lib/base-app-domain/Path/Schema.d.ts +149 -149
  25. package/lib/base-app-domain/Path/Schema.js +2 -2
  26. package/lib/base-app-domain/Path/Storage.d.ts +3 -3
  27. package/lib/base-app-domain/Path/Storage.js +54 -54
  28. package/lib/base-app-domain/Relation/Schema.d.ts +188 -188
  29. package/lib/base-app-domain/Relation/Storage.js +54 -54
  30. package/lib/base-app-domain/Relation.d.ts +2 -2
  31. package/lib/base-app-domain/Relation.js +4 -4
  32. package/lib/base-app-domain/RelationAuth/Schema.d.ts +214 -214
  33. package/lib/base-app-domain/RelationAuth/Storage.js +44 -44
  34. package/lib/base-app-domain/Storage.js +31 -31
  35. package/lib/base-app-domain/User/Action.d.ts +10 -10
  36. package/lib/base-app-domain/User/Action.js +12 -12
  37. package/lib/base-app-domain/User/Schema.d.ts +210 -210
  38. package/lib/base-app-domain/User/Storage.js +33 -33
  39. package/lib/base-app-domain/UserEntityClaim/Schema.d.ts +264 -264
  40. package/lib/base-app-domain/UserEntityClaim/Schema.js +2 -2
  41. package/lib/base-app-domain/UserEntityClaim/Storage.d.ts +3 -3
  42. package/lib/base-app-domain/UserEntityClaim/Storage.js +37 -37
  43. package/lib/base-app-domain/UserEntityGrant/Schema.d.ts +131 -131
  44. package/lib/base-app-domain/UserEntityGrant/Storage.js +25 -25
  45. package/lib/base-app-domain/UserRelation/Schema.d.ts +208 -208
  46. package/lib/base-app-domain/UserRelation/Storage.js +56 -56
  47. package/lib/base-app-domain/_SubQuery.d.ts +142 -142
  48. package/lib/base-app-domain/index.d.ts +4 -4
  49. package/lib/base-app-domain/index.js +7 -7
  50. package/lib/checkers/index.d.ts +5 -5
  51. package/lib/checkers/index.js +13 -13
  52. package/lib/compiler/entities.d.ts +2 -2
  53. package/lib/compiler/entities.js +7 -7
  54. package/lib/compiler/env.d.ts +13 -13
  55. package/lib/compiler/env.js +45 -45
  56. package/lib/compiler/localeBuilder.d.ts +1 -1
  57. package/lib/compiler/localeBuilder.js +49 -18
  58. package/lib/compiler/routerBuilder.d.ts +1 -0
  59. package/lib/compiler/routerBuilder.js +263 -0
  60. package/lib/compiler/schemalBuilder.d.ts +27 -27
  61. package/lib/compiler/schemalBuilder.js +3565 -3565
  62. package/lib/entities/ActionAuth.d.ts +10 -10
  63. package/lib/entities/ActionAuth.js +31 -31
  64. package/lib/entities/I18n.d.ts +9 -9
  65. package/lib/entities/I18n.js +36 -36
  66. package/lib/entities/Modi.js +49 -49
  67. package/lib/entities/ModiEntity.js +18 -18
  68. package/lib/entities/Oper.js +21 -21
  69. package/lib/entities/OperEntity.js +18 -18
  70. package/lib/entities/Path.d.ts +8 -8
  71. package/lib/entities/Path.js +35 -35
  72. package/lib/entities/Relation.d.ts +8 -8
  73. package/lib/entities/Relation.js +35 -35
  74. package/lib/entities/RelationAuth.d.ts +8 -8
  75. package/lib/entities/RelationAuth.js +34 -34
  76. package/lib/entities/User.js +31 -31
  77. package/lib/entities/UserEntityClaim.d.ts +13 -13
  78. package/lib/entities/UserEntityClaim.js +17 -17
  79. package/lib/entities/UserEntityGrant.d.ts +9 -9
  80. package/lib/entities/UserEntityGrant.js +15 -15
  81. package/lib/entities/UserRelation.d.ts +10 -10
  82. package/lib/entities/UserRelation.js +38 -38
  83. package/lib/index.d.ts +23 -23
  84. package/lib/index.js +37 -37
  85. package/lib/store/AsyncRowStore.d.ts +65 -65
  86. package/lib/store/AsyncRowStore.js +9 -5
  87. package/lib/store/CascadeStore.d.ts +109 -106
  88. package/lib/store/CascadeStore.js +1748 -1740
  89. package/lib/store/RelationAuth.d.ts +7 -0
  90. package/lib/store/RelationAuth.js +11 -4
  91. package/lib/store/SyncRowStore.d.ts +29 -29
  92. package/lib/store/SyncRowStore.js +50 -50
  93. package/lib/store/TriggerExecutor.d.ts +41 -41
  94. package/lib/store/TriggerExecutor.js +468 -468
  95. package/lib/store/actionAuth.d.ts +4 -4
  96. package/lib/store/actionAuth.js +25 -25
  97. package/lib/store/actionDef.d.ts +10 -10
  98. package/lib/store/actionDef.js +278 -278
  99. package/lib/store/checker.d.ts +26 -26
  100. package/lib/store/checker.js +2 -2
  101. package/lib/store/filter.d.ts +85 -85
  102. package/lib/store/filter.js +1652 -1652
  103. package/lib/store/modi.d.ts +13 -13
  104. package/lib/store/modi.js +254 -254
  105. package/lib/store/relation.d.ts +12 -12
  106. package/lib/store/relation.js +67 -67
  107. package/lib/timers/oper.d.ts +18 -18
  108. package/lib/timers/oper.js +57 -57
  109. package/lib/timers/vaccum.d.ts +20 -20
  110. package/lib/timers/vaccum.js +111 -111
  111. package/lib/triggers/index.d.ts +5 -5
  112. package/lib/triggers/index.js +8 -8
  113. package/lib/types/Action.d.ts +20 -20
  114. package/lib/types/AppLoader.d.ts +17 -17
  115. package/lib/types/AppLoader.js +10 -10
  116. package/lib/types/Auth.d.ts +70 -70
  117. package/lib/types/Cluster.d.ts +5 -5
  118. package/lib/types/Cluster.js +2 -2
  119. package/lib/types/Connector.d.ts +38 -38
  120. package/lib/types/Connector.js +2 -2
  121. package/lib/types/DataType.d.ts +25 -25
  122. package/lib/types/DataType.js +6 -6
  123. package/lib/types/Demand.d.ts +89 -89
  124. package/lib/types/Demand.js +10 -10
  125. package/lib/types/Endpoint.d.ts +11 -11
  126. package/lib/types/Entity.d.ts +209 -209
  127. package/lib/types/Entity.js +15 -15
  128. package/lib/types/EntityDesc.d.ts +9 -9
  129. package/lib/types/EntityDesc.js +2 -2
  130. package/lib/types/Environment.d.ts +90 -90
  131. package/lib/types/Environment.js +2 -2
  132. package/lib/types/Exception.d.ts +10 -2
  133. package/lib/types/Exception.js +32 -2
  134. package/lib/types/Expression.d.ts +163 -163
  135. package/lib/types/Expression.js +397 -397
  136. package/lib/types/Geo.d.ts +18 -18
  137. package/lib/types/Locale.d.ts +25 -25
  138. package/lib/types/Logger.d.ts +6 -6
  139. package/lib/types/Polyfill.d.ts +24 -24
  140. package/lib/types/Port.d.ts +18 -18
  141. package/lib/types/RowStore.d.ts +19 -19
  142. package/lib/types/RowStore.js +33 -33
  143. package/lib/types/Storage.d.ts +58 -58
  144. package/lib/types/Style.d.ts +11 -11
  145. package/lib/types/Timer.d.ts +20 -20
  146. package/lib/types/Trigger.d.ts +118 -118
  147. package/lib/types/Trigger.js +35 -35
  148. package/lib/types/Watcher.d.ts +19 -19
  149. package/lib/types/index.d.ts +26 -26
  150. package/lib/types/index.js +29 -29
  151. package/lib/types/schema/DataTypes.d.ts +34 -34
  152. package/lib/utils/SimpleConnector.d.ts +64 -64
  153. package/lib/utils/SimpleConnector.js +206 -206
  154. package/lib/utils/assert.d.ts +6 -5
  155. package/lib/utils/assert.js +9 -9
  156. package/lib/utils/concurrent.d.ts +15 -15
  157. package/lib/utils/concurrent.js +63 -63
  158. package/lib/utils/date.js +18 -18
  159. package/lib/utils/domain.d.ts +1 -1
  160. package/lib/utils/domain.js +11 -11
  161. package/lib/utils/geo.js +24 -24
  162. package/lib/utils/lodash.d.ts +24 -24
  163. package/lib/utils/lodash.js +46 -46
  164. package/lib/utils/mask.js +34 -34
  165. package/lib/utils/money.d.ts +6 -6
  166. package/lib/utils/money.js +51 -51
  167. package/lib/utils/projection.d.ts +4 -4
  168. package/lib/utils/projection.js +15 -15
  169. package/lib/utils/random/random.js +19 -19
  170. package/lib/utils/random/random.mp.js +14 -14
  171. package/lib/utils/random/random.native.d.ts +1 -1
  172. package/lib/utils/random/random.native.js +14 -14
  173. package/lib/utils/random/random.web.js +11 -11
  174. package/lib/utils/string.d.ts +28 -28
  175. package/lib/utils/string.js +69 -69
  176. package/lib/utils/url/index.d.ts +7 -7
  177. package/lib/utils/url/index.js +8 -8
  178. package/lib/utils/url/index.mp.d.ts +3 -3
  179. package/lib/utils/url/index.mp.js +8 -8
  180. package/lib/utils/url/index.native.d.ts +12 -12
  181. package/lib/utils/url/index.native.js +7 -7
  182. package/lib/utils/url/index.web.d.ts +12 -12
  183. package/lib/utils/url/index.web.js +7 -7
  184. package/lib/utils/url/whatwg-url/index.d.ts +3 -3
  185. package/lib/utils/url/whatwg-url/index.js +16 -16
  186. package/lib/utils/url/whatwg-url/lib/URL-impl.d.ts +20 -20
  187. package/lib/utils/url/whatwg-url/lib/URL-impl.js +175 -175
  188. package/lib/utils/url/whatwg-url/lib/URL.d.ts +1 -1
  189. package/lib/utils/url/whatwg-url/lib/URL.js +298 -298
  190. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.d.ts +19 -19
  191. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.js +126 -126
  192. package/lib/utils/url/whatwg-url/lib/URLSearchParams.d.ts +1 -1
  193. package/lib/utils/url/whatwg-url/lib/URLSearchParams.js +426 -426
  194. package/lib/utils/url/whatwg-url/lib/infra.d.ts +12 -12
  195. package/lib/utils/url/whatwg-url/lib/infra.js +25 -25
  196. package/lib/utils/url/whatwg-url/lib/url-state-machine.d.ts +24 -24
  197. package/lib/utils/url/whatwg-url/lib/url-state-machine.js +1238 -1238
  198. package/lib/utils/url/whatwg-url/lib/urlencoded.d.ts +15 -15
  199. package/lib/utils/url/whatwg-url/lib/urlencoded.js +162 -162
  200. package/lib/utils/url/whatwg-url/lib/utils.d.ts +37 -37
  201. package/lib/utils/url/whatwg-url/lib/utils.js +101 -101
  202. package/lib/utils/uuid.d.ts +17 -17
  203. package/lib/utils/uuid.js +218 -218
  204. package/lib/utils/validator.d.ts +26 -26
  205. package/lib/utils/validator.js +131 -131
  206. package/lib/utils/version.js +21 -21
  207. package/package.json +2 -1
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildRouter = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path_1 = require("path");
6
+ const fs_extra_1 = require("fs-extra");
7
+ const assert_1 = tslib_1.__importDefault(require("assert"));
8
+ const ts = tslib_1.__importStar(require("typescript"));
9
+ const node_watch_1 = tslib_1.__importDefault(require("node-watch"));
10
+ const { factory } = ts;
11
+ const NameSpaceDescDict = {};
12
+ function checkPageDir(dir, relativePath, ns, type) {
13
+ let changed = false;
14
+ const { pages } = NameSpaceDescDict[ns];
15
+ const subdirs = [];
16
+ const files = (0, fs_extra_1.readdirSync)(dir);
17
+ files.forEach((file) => {
18
+ const filepath = (0, path_1.join)(dir, file);
19
+ const stat = (0, fs_extra_1.statSync)(filepath);
20
+ if (stat.isFile() &&
21
+ ['web.tsx', 'web.pc.tsx', 'render.native.tsx', 'render.ios.tsx', 'render.android.tsx', 'index.xml'].includes(file)) {
22
+ if (!pages.hasOwnProperty(dir)) {
23
+ const indexJsonFile = (0, path_1.join)(dir, 'index.json');
24
+ let oakDisablePulldownRefresh = false;
25
+ if ((0, fs_extra_1.existsSync)(indexJsonFile)) {
26
+ const { enablePullDownRefresh = true, } = require(indexJsonFile);
27
+ oakDisablePulldownRefresh =
28
+ !enablePullDownRefresh;
29
+ }
30
+ pages[dir] = {
31
+ path: relativePath.replace(/\\/g, '/'),
32
+ oakDisablePulldownRefresh,
33
+ hasNative: ['render.native.tsx', 'render.ios.tsx', 'render.android.tsx'].includes(file),
34
+ hasWeb: ['web.tsx', 'web.pc.tsx'].includes(file),
35
+ hasWechatMp: file === 'index.xml',
36
+ };
37
+ changed = true;
38
+ }
39
+ else {
40
+ if (['render.native.tsx', 'render.ios.tsx', 'render.android.tsx'].includes(file) && type === 'native') {
41
+ if (pages[dir].hasNative === false) {
42
+ pages[dir].hasNative = true;
43
+ changed = true;
44
+ }
45
+ }
46
+ else if (['web.tsx', 'web.pc.tsx'].includes(file) && type === 'web') {
47
+ if (pages[dir].hasWeb === false) {
48
+ pages[dir].hasWeb = true;
49
+ changed = true;
50
+ }
51
+ }
52
+ else {
53
+ if (pages[dir].hasWechatMp === false && type === 'wechatMp') {
54
+ pages[dir].hasWechatMp = true;
55
+ }
56
+ }
57
+ }
58
+ }
59
+ else if (stat.isDirectory()) {
60
+ subdirs.push(file);
61
+ }
62
+ });
63
+ return {
64
+ subdirs,
65
+ changed,
66
+ };
67
+ }
68
+ function traverseNsDir(nsDir, ns, type) {
69
+ NameSpaceDescDict[ns] = {
70
+ pages: {}
71
+ };
72
+ const { pages } = NameSpaceDescDict[ns];
73
+ const traverse = (dir, relativePath) => {
74
+ const { subdirs } = checkPageDir(dir, relativePath, ns, type);
75
+ subdirs.forEach((subdir) => {
76
+ const dir2 = (0, path_1.join)(dir, subdir);
77
+ const relativePath2 = (0, path_1.join)(relativePath, subdir);
78
+ traverse(dir2, relativePath2);
79
+ });
80
+ };
81
+ traverse(nsDir, '');
82
+ }
83
+ function traversePageDir(projectDir, type) {
84
+ const pageDir = (0, path_1.join)(projectDir, 'src', 'pages');
85
+ const namespaces = (0, fs_extra_1.readdirSync)(pageDir);
86
+ namespaces.forEach((ns) => {
87
+ const nsDir = (0, path_1.join)(pageDir, ns);
88
+ const stat = (0, fs_extra_1.statSync)(nsDir);
89
+ if (stat.isDirectory()) {
90
+ traverseNsDir(nsDir, ns, type);
91
+ }
92
+ });
93
+ }
94
+ function makeWebAllRouters(namespaceDir, projectDir, routerFileDir) {
95
+ const nss = (0, fs_extra_1.readdirSync)(namespaceDir);
96
+ return factory.createArrayLiteralExpression(nss.map((ns) => {
97
+ (0, assert_1.default)(NameSpaceDescDict[ns], `${ns}在pages下没有对应的目录`);
98
+ const { pages } = NameSpaceDescDict[ns];
99
+ const nsIndexJsonFile = (0, path_1.join)(namespaceDir, ns, 'index.json');
100
+ let path2 = `/${ns}`;
101
+ let notFound2 = '', first2 = '';
102
+ if ((0, fs_extra_1.existsSync)(nsIndexJsonFile)) {
103
+ const { path, notFound, first } = require(nsIndexJsonFile);
104
+ if (path) {
105
+ path2 = path.replace(/\\/g, '/');
106
+ }
107
+ if (notFound) {
108
+ notFound2 = notFound.replace(/\\/g, '/');
109
+ }
110
+ if (first) {
111
+ first2 = first.replace(/\\/g, '/');
112
+ if (first2.startsWith('/')) {
113
+ first2 = first2.slice(1);
114
+ }
115
+ }
116
+ }
117
+ let firstPage;
118
+ const children = Object.values(pages).filter((ele) => ele.hasWeb).map(({ path, oakDisablePulldownRefresh }) => {
119
+ const properties = [
120
+ factory.createPropertyAssignment('path', factory.createStringLiteral(path)),
121
+ factory.createPropertyAssignment('namespace', factory.createStringLiteral(path2)),
122
+ factory.createPropertyAssignment('meta', factory.createObjectLiteralExpression([
123
+ factory.createPropertyAssignment('oakDisablePulldownRefresh', oakDisablePulldownRefresh ? factory.createTrue() : factory.createFalse())
124
+ ])),
125
+ factory.createPropertyAssignment(factory.createIdentifier("Component"), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("React"), factory.createIdentifier("lazy")), undefined, [factory.createArrowFunction(undefined, undefined, [], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createIdentifier('import'), undefined, [
126
+ factory.createStringLiteral((0, path_1.relative)(routerFileDir, (0, path_1.join)(projectDir, 'src', 'pages', ns, path)).replace(/\\/g, '/'))
127
+ ]))]))
128
+ ];
129
+ if (first2 === path) {
130
+ const firstProperties = [...properties];
131
+ firstProperties.push(factory.createPropertyAssignment('isFirst', factory.createTrue()));
132
+ firstPage = factory.createObjectLiteralExpression(firstProperties, true);
133
+ }
134
+ return factory.createObjectLiteralExpression(properties, true);
135
+ });
136
+ if (firstPage) {
137
+ children.push(firstPage);
138
+ }
139
+ if (notFound2) {
140
+ children.push(factory.createObjectLiteralExpression([
141
+ factory.createPropertyAssignment('path', factory.createStringLiteral('*')),
142
+ factory.createPropertyAssignment('namespace', factory.createStringLiteral(path2)),
143
+ factory.createPropertyAssignment(factory.createIdentifier("Component"), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("React"), factory.createIdentifier("lazy")), undefined, [factory.createArrowFunction(undefined, undefined, [], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createIdentifier('import'), undefined, [
144
+ factory.createStringLiteral((0, path_1.relative)(routerFileDir, (0, path_1.join)(projectDir, 'src', 'pages', ns, notFound2)).replace(/\\/g, '/'))
145
+ ]))]))
146
+ ], true));
147
+ }
148
+ return factory.createObjectLiteralExpression([
149
+ factory.createPropertyAssignment('path', factory.createStringLiteral(path2)),
150
+ factory.createPropertyAssignment('namespace', factory.createStringLiteral(path2)),
151
+ factory.createPropertyAssignment(factory.createIdentifier("Component"), factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier("React"), factory.createIdentifier("lazy")), undefined, [factory.createArrowFunction(undefined, undefined, [], undefined, factory.createToken(ts.SyntaxKind.EqualsGreaterThanToken), factory.createCallExpression(factory.createIdentifier('import'), undefined, [
152
+ factory.createStringLiteral((0, path_1.relative)(routerFileDir, (0, path_1.join)(namespaceDir, ns)).replace(/\\/g, '/'))
153
+ ]))])),
154
+ factory.createPropertyAssignment('children', factory.createArrayLiteralExpression(children))
155
+ ], true);
156
+ }), true);
157
+ }
158
+ function judgeUseOakRouterBuilder(statements) {
159
+ const stmt = statements[0];
160
+ return ts.isExpressionStatement(stmt) && ts.isStringLiteral(stmt.expression) && stmt.expression.text === 'use oak router builder';
161
+ }
162
+ function outputInWebAppDir(appDir) {
163
+ const routerFileName = (0, path_1.join)(appDir, 'router', 'allRouters.ts');
164
+ if ((0, fs_extra_1.existsSync)(routerFileName)) {
165
+ const program = ts.createProgram([routerFileName], {
166
+ removeComments: false,
167
+ });
168
+ const routerFile = program.getSourceFile(routerFileName);
169
+ (0, assert_1.default)(routerFile);
170
+ const namespaceDir = (0, path_1.join)(appDir, 'namespaces');
171
+ const { statements } = routerFile;
172
+ if (judgeUseOakRouterBuilder(statements)) {
173
+ statements.forEach((statement) => {
174
+ if (ts.isVariableStatement(statement)) {
175
+ const declaration = statement.declarationList.declarations.find(declaration => ts.isIdentifier(declaration.name) && declaration.name.text === 'allRouters');
176
+ if (declaration) {
177
+ Object.assign(declaration, {
178
+ initializer: makeWebAllRouters(namespaceDir, (0, path_1.join)(appDir, '../../../..'), (0, path_1.dirname)(routerFileName))
179
+ });
180
+ }
181
+ }
182
+ });
183
+ const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed, removeComments: false });
184
+ const result = printer.printNode(ts.EmitHint.Unspecified, routerFile, routerFile);
185
+ (0, fs_extra_1.writeFileSync)(routerFileName, result);
186
+ }
187
+ }
188
+ else {
189
+ console.warn(`${appDir}的目录结构未按照标准建立,缺少了${routerFileName}`);
190
+ }
191
+ }
192
+ function outputInWebDir(dir) {
193
+ const srcAppDir = (0, path_1.join)(dir, 'src', 'app');
194
+ const apps = (0, fs_extra_1.readdirSync)(srcAppDir);
195
+ apps.forEach((app) => {
196
+ const appDir = (0, path_1.join)(srcAppDir, app);
197
+ const stat = (0, fs_extra_1.statSync)(appDir);
198
+ if (stat.isDirectory()) {
199
+ outputInWebAppDir(appDir);
200
+ }
201
+ });
202
+ }
203
+ function watchDir(projectDir, startupDir, type) {
204
+ const srcPageDir = (0, path_1.join)(projectDir, 'src', 'pages');
205
+ console.log('watch dir ', srcPageDir);
206
+ if (startupDir.startsWith('web')) {
207
+ const srcAppDir = (0, path_1.join)(projectDir, startupDir, 'src', 'app');
208
+ const apps = (0, fs_extra_1.readdirSync)(srcAppDir);
209
+ const tryOutputAppDir = (ns) => {
210
+ apps.forEach((app) => {
211
+ const appDir = (0, path_1.join)(srcAppDir, app);
212
+ const namespaceDir = (0, path_1.join)(appDir, 'namespaces');
213
+ const namespaces = (0, fs_extra_1.readdirSync)(namespaceDir);
214
+ if (namespaces.includes(ns)) {
215
+ outputInWebAppDir(appDir);
216
+ }
217
+ });
218
+ };
219
+ (0, node_watch_1.default)(srcPageDir, {
220
+ recursive: true,
221
+ filter: new RegExp('web\.tsx|web\.pc\.tsx|index\.xml|render\.(native|ios|android)\.tsx'),
222
+ }, (evt, filepath) => {
223
+ const dir = (0, path_1.dirname)(filepath);
224
+ const relativeDir = (0, path_1.relative)((0, path_1.join)(projectDir, 'src', 'pages'), filepath);
225
+ const ns = relativeDir.split('\\')[0];
226
+ const relativePath = (0, path_1.relative)(ns, (0, path_1.dirname)(relativeDir));
227
+ const { pages } = NameSpaceDescDict[ns];
228
+ console.log(filepath, dir, ns);
229
+ if (evt === 'remove') {
230
+ if ((0, fs_extra_1.existsSync)(dir)) {
231
+ const { changed } = checkPageDir(dir, relativePath, ns, type);
232
+ if (changed) {
233
+ tryOutputAppDir(ns);
234
+ }
235
+ }
236
+ else {
237
+ delete pages[dir];
238
+ tryOutputAppDir(ns);
239
+ }
240
+ }
241
+ else {
242
+ const { changed } = checkPageDir(dir, relativePath, ns, type);
243
+ if (changed) {
244
+ tryOutputAppDir(ns);
245
+ }
246
+ }
247
+ });
248
+ }
249
+ }
250
+ function buildRouter(projectDir, startupDir, watch) {
251
+ const type = startupDir.startsWith('web') ? 'web' : (startupDir.startsWith('native') ? 'native' : 'wechatMp');
252
+ traversePageDir(projectDir, type);
253
+ const subDir = (0, fs_extra_1.readdirSync)(projectDir);
254
+ (0, assert_1.default)(subDir.includes(startupDir));
255
+ if (startupDir.startsWith('web')) {
256
+ outputInWebDir((0, path_1.join)(projectDir, startupDir));
257
+ }
258
+ // todo native
259
+ if (watch) {
260
+ watchDir(projectDir, startupDir, type);
261
+ }
262
+ }
263
+ exports.buildRouter = buildRouter;
@@ -1,27 +1,27 @@
1
- /**
2
- * 此函数不再使用
3
- * @param map
4
- */
5
- export declare function registerIgnoredForeignKeyMap(map: Record<string, string[]>): void;
6
- /**
7
- * 此函数不再使用
8
- * @param map
9
- */
10
- export declare function registerFreeEntities(selectFreeEntities?: string[], createFreeEntities?: string[], updateFreeEntities?: string[]): void;
11
- /**
12
- * 此函数不再使用
13
- * @param map
14
- */
15
- export declare function registerIgnoredRelationPathMap(map: Record<string, string[]>): void;
16
- /**
17
- * 很多路径虽然最后指向同一对象,但不能封掉,封了会导致查询的时候找不到对应的路径path
18
- * @param map
19
- */
20
- export declare function registerFixedDestinationPathMap(map: Record<string, string[]>): void;
21
- /**
22
- * 此函数不再使用
23
- * @param map
24
- */
25
- export declare function registerDeducedRelationMap(map: Record<string, string>): void;
26
- export declare function analyzeEntities(inputDir: string, relativePath?: string): void;
27
- export declare function buildSchema(outputDir: string): void;
1
+ /**
2
+ * 此函数不再使用
3
+ * @param map
4
+ */
5
+ export declare function registerIgnoredForeignKeyMap(map: Record<string, string[]>): void;
6
+ /**
7
+ * 此函数不再使用
8
+ * @param map
9
+ */
10
+ export declare function registerFreeEntities(selectFreeEntities?: string[], createFreeEntities?: string[], updateFreeEntities?: string[]): void;
11
+ /**
12
+ * 此函数不再使用
13
+ * @param map
14
+ */
15
+ export declare function registerIgnoredRelationPathMap(map: Record<string, string[]>): void;
16
+ /**
17
+ * 很多路径虽然最后指向同一对象,但不能封掉,封了会导致查询的时候找不到对应的路径path
18
+ * @param map
19
+ */
20
+ export declare function registerFixedDestinationPathMap(map: Record<string, string[]>): void;
21
+ /**
22
+ * 此函数不再使用
23
+ * @param map
24
+ */
25
+ export declare function registerDeducedRelationMap(map: Record<string, string>): void;
26
+ export declare function analyzeEntities(inputDir: string, relativePath?: string): void;
27
+ export declare function buildSchema(outputDir: string): void;