oak-domain 4.0.0 → 4.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.
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 +27 -27
  57. package/lib/compiler/localeBuilder.js +37 -8
  58. package/lib/compiler/routerBuilder.d.ts +1 -0
  59. package/lib/compiler/routerBuilder.js +257 -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 -60
  86. package/lib/store/AsyncRowStore.js +176 -118
  87. package/lib/store/CascadeStore.d.ts +10 -5
  88. package/lib/store/CascadeStore.js +102 -42
  89. package/lib/store/RelationAuth.d.ts +96 -96
  90. package/lib/store/RelationAuth.js +1336 -1336
  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 -38
  94. package/lib/store/TriggerExecutor.js +133 -124
  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 +4 -4
  99. package/lib/store/checker.d.ts +26 -26
  100. package/lib/store/checker.js +487 -487
  101. package/lib/store/filter.d.ts +85 -85
  102. package/lib/store/filter.js +1652 -1651
  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 -88
  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 -203
  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 -88
  131. package/lib/types/Environment.js +2 -2
  132. package/lib/types/Exception.d.ts +147 -147
  133. package/lib/types/Exception.js +406 -406
  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 -18
  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 -14
  146. package/lib/types/Trigger.d.ts +118 -124
  147. package/lib/types/Trigger.js +35 -58
  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 +2 -2
  154. package/lib/utils/assert.d.ts +1 -0
  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 -4
  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 -0
  185. package/lib/utils/url/whatwg-url/index.js +16 -0
  186. package/lib/utils/url/whatwg-url/lib/URL-impl.d.ts +20 -0
  187. package/lib/utils/url/whatwg-url/lib/URL-impl.js +175 -0
  188. package/lib/utils/url/whatwg-url/lib/URL.d.ts +1 -0
  189. package/lib/utils/url/whatwg-url/lib/URL.js +298 -0
  190. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.d.ts +19 -0
  191. package/lib/utils/url/whatwg-url/lib/URLSearchParams-impl.js +126 -0
  192. package/lib/utils/url/whatwg-url/lib/URLSearchParams.d.ts +1 -0
  193. package/lib/utils/url/whatwg-url/lib/URLSearchParams.js +426 -0
  194. package/lib/utils/url/whatwg-url/lib/infra.d.ts +12 -0
  195. package/lib/utils/url/whatwg-url/lib/infra.js +25 -0
  196. package/lib/utils/url/whatwg-url/lib/url-state-machine.d.ts +24 -0
  197. package/lib/utils/url/whatwg-url/lib/url-state-machine.js +1238 -0
  198. package/lib/utils/url/whatwg-url/lib/urlencoded.d.ts +15 -0
  199. package/lib/utils/url/whatwg-url/lib/urlencoded.js +162 -0
  200. package/lib/utils/url/whatwg-url/lib/utils.d.ts +37 -0
  201. package/lib/utils/url/whatwg-url/lib/utils.js +101 -0
  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 +3 -3
@@ -0,0 +1,257 @@
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
+ const children = Object.values(pages).filter((ele) => ele.hasWeb).map(({ path, oakDisablePulldownRefresh }) => {
118
+ const properties = [
119
+ factory.createPropertyAssignment('path', factory.createStringLiteral(path)),
120
+ factory.createPropertyAssignment('namespace', factory.createStringLiteral(path2)),
121
+ factory.createPropertyAssignment('meta', factory.createObjectLiteralExpression([
122
+ factory.createPropertyAssignment('oakDisablePulldownRefresh', oakDisablePulldownRefresh ? factory.createTrue() : factory.createFalse())
123
+ ])),
124
+ 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, [
125
+ factory.createStringLiteral((0, path_1.relative)(routerFileDir, (0, path_1.join)(projectDir, 'src', 'pages', ns, path)).replace(/\\/g, '/'))
126
+ ]))]))
127
+ ];
128
+ if (first2 === path) {
129
+ properties.push(factory.createPropertyAssignment('isFirst', factory.createTrue()));
130
+ }
131
+ return factory.createObjectLiteralExpression(properties, true);
132
+ });
133
+ if (notFound2) {
134
+ children.push(factory.createObjectLiteralExpression([
135
+ factory.createPropertyAssignment('path', factory.createStringLiteral('*')),
136
+ factory.createPropertyAssignment('namespace', factory.createStringLiteral(path2)),
137
+ 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, [
138
+ factory.createStringLiteral((0, path_1.relative)(routerFileDir, (0, path_1.join)(projectDir, 'src', 'pages', ns, notFound2)).replace(/\\/g, '/'))
139
+ ]))]))
140
+ ], true));
141
+ }
142
+ return factory.createObjectLiteralExpression([
143
+ factory.createPropertyAssignment('path', factory.createStringLiteral(path2)),
144
+ factory.createPropertyAssignment('namespace', factory.createStringLiteral(path2)),
145
+ 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, [
146
+ factory.createStringLiteral((0, path_1.relative)(routerFileDir, (0, path_1.join)(namespaceDir, ns)).replace(/\\/g, '/'))
147
+ ]))])),
148
+ factory.createPropertyAssignment('children', factory.createArrayLiteralExpression(children))
149
+ ], true);
150
+ }), true);
151
+ }
152
+ function judgeUseOakRouterBuilder(statements) {
153
+ const stmt = statements[0];
154
+ return ts.isExpressionStatement(stmt) && ts.isStringLiteral(stmt.expression) && stmt.expression.text === 'use oak router builder';
155
+ }
156
+ function outputInWebAppDir(appDir) {
157
+ const routerFileName = (0, path_1.join)(appDir, 'router', 'allRouters.ts');
158
+ if ((0, fs_extra_1.existsSync)(routerFileName)) {
159
+ const program = ts.createProgram([routerFileName], {
160
+ removeComments: false,
161
+ });
162
+ const routerFile = program.getSourceFile(routerFileName);
163
+ (0, assert_1.default)(routerFile);
164
+ const namespaceDir = (0, path_1.join)(appDir, 'namespaces');
165
+ const { statements } = routerFile;
166
+ if (judgeUseOakRouterBuilder(statements)) {
167
+ statements.forEach((statement) => {
168
+ if (ts.isVariableStatement(statement)) {
169
+ const declaration = statement.declarationList.declarations.find(declaration => ts.isIdentifier(declaration.name) && declaration.name.text === 'allRouters');
170
+ if (declaration) {
171
+ Object.assign(declaration, {
172
+ initializer: makeWebAllRouters(namespaceDir, (0, path_1.join)(appDir, '../../../..'), (0, path_1.dirname)(routerFileName))
173
+ });
174
+ }
175
+ }
176
+ });
177
+ const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed, removeComments: false });
178
+ const result = printer.printNode(ts.EmitHint.Unspecified, routerFile, routerFile);
179
+ (0, fs_extra_1.writeFileSync)(routerFileName, result);
180
+ }
181
+ }
182
+ else {
183
+ console.warn(`${appDir}的目录结构未按照标准建立,缺少了${routerFileName}`);
184
+ }
185
+ }
186
+ function outputInWebDir(dir) {
187
+ const srcAppDir = (0, path_1.join)(dir, 'src', 'app');
188
+ const apps = (0, fs_extra_1.readdirSync)(srcAppDir);
189
+ apps.forEach((app) => {
190
+ const appDir = (0, path_1.join)(srcAppDir, app);
191
+ const stat = (0, fs_extra_1.statSync)(appDir);
192
+ if (stat.isDirectory()) {
193
+ outputInWebAppDir(appDir);
194
+ }
195
+ });
196
+ }
197
+ function watchDir(projectDir, startupDir, type) {
198
+ const srcPageDir = (0, path_1.join)(projectDir, 'src', 'pages');
199
+ console.log('watch dir ', srcPageDir);
200
+ if (startupDir.startsWith('web')) {
201
+ const srcAppDir = (0, path_1.join)(projectDir, startupDir, 'src', 'app');
202
+ const apps = (0, fs_extra_1.readdirSync)(srcAppDir);
203
+ const tryOutputAppDir = (ns) => {
204
+ apps.forEach((app) => {
205
+ const appDir = (0, path_1.join)(srcAppDir, app);
206
+ const namespaceDir = (0, path_1.join)(appDir, 'namespaces');
207
+ const namespaces = (0, fs_extra_1.readdirSync)(namespaceDir);
208
+ if (namespaces.includes(ns)) {
209
+ outputInWebAppDir(appDir);
210
+ }
211
+ });
212
+ };
213
+ (0, node_watch_1.default)(srcPageDir, {
214
+ recursive: true,
215
+ filter: new RegExp('web\.tsx|web\.pc\.tsx|index\.xml|render\.(native|ios|android)\.tsx'),
216
+ }, (evt, filepath) => {
217
+ const dir = (0, path_1.dirname)(filepath);
218
+ const relativeDir = (0, path_1.relative)((0, path_1.join)(projectDir, 'src', 'pages'), filepath);
219
+ const ns = relativeDir.split('\\')[0];
220
+ const relativePath = (0, path_1.relative)(ns, (0, path_1.dirname)(relativeDir));
221
+ const { pages } = NameSpaceDescDict[ns];
222
+ console.log(filepath, dir, ns);
223
+ if (evt === 'remove') {
224
+ if ((0, fs_extra_1.existsSync)(dir)) {
225
+ const { changed } = checkPageDir(dir, relativePath, ns, type);
226
+ if (changed) {
227
+ tryOutputAppDir(ns);
228
+ }
229
+ }
230
+ else {
231
+ delete pages[dir];
232
+ tryOutputAppDir(ns);
233
+ }
234
+ }
235
+ else {
236
+ const { changed } = checkPageDir(dir, relativePath, ns, type);
237
+ if (changed) {
238
+ tryOutputAppDir(ns);
239
+ }
240
+ }
241
+ });
242
+ }
243
+ }
244
+ function buildRouter(projectDir, startupDir, watch) {
245
+ const type = startupDir.startsWith('web') ? 'web' : (startupDir.startsWith('native') ? 'native' : 'wechatMp');
246
+ traversePageDir(projectDir, type);
247
+ const subDir = (0, fs_extra_1.readdirSync)(projectDir);
248
+ (0, assert_1.default)(subDir.includes(startupDir));
249
+ if (startupDir.startsWith('web')) {
250
+ outputInWebDir((0, path_1.join)(projectDir, startupDir));
251
+ }
252
+ // todo native
253
+ if (watch) {
254
+ watchDir(projectDir, startupDir, type);
255
+ }
256
+ }
257
+ 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;