@pylonts/dsl 1.1.12 → 1.1.13

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 (48) hide show
  1. package/dist/convert.d.ts +6 -8
  2. package/dist/curd.js +1 -1
  3. package/dist/dao.d.ts +10 -7
  4. package/dist/dao.js +20 -7
  5. package/dist/dsl.d.ts +18 -1
  6. package/dist/dsl.js +40 -0
  7. package/dist/dto.d.ts +13 -8
  8. package/dist/dto.js +68 -13
  9. package/dist/entity.d.ts +4 -3
  10. package/dist/entity.js +1 -1
  11. package/dist/filter.d.ts +6 -4
  12. package/dist/filter.js +1 -1
  13. package/dist/flow-script.js +8 -2
  14. package/dist/flow.d.ts +10 -2
  15. package/dist/flow.js +44 -4
  16. package/dist/mermaid-driver.js +2 -2
  17. package/dist/service.d.ts +13 -8
  18. package/dist/service.js +1 -1
  19. package/dist/third-service.d.ts +10 -53
  20. package/dist/third-service.js +3 -78
  21. package/dist/typebox-driver.d.ts +0 -6
  22. package/dist/typebox-driver.js +8 -36
  23. package/dist/utils.d.ts +2 -2
  24. package/docs/curd.md +146 -146
  25. package/docs/dao-generation.md +477 -477
  26. package/docs/project.md +31 -31
  27. package/docs/token.md +326 -326
  28. package/package.json +1 -1
  29. package/src/action.ts +51 -51
  30. package/src/controller.ts +53 -53
  31. package/src/convert.ts +76 -78
  32. package/src/curd.ts +104 -104
  33. package/src/dao.ts +504 -485
  34. package/src/dsl.ts +296 -257
  35. package/src/dto.ts +323 -266
  36. package/src/entity.ts +43 -42
  37. package/src/expr.ts +64 -64
  38. package/src/filter.ts +71 -69
  39. package/src/flow-script.ts +702 -695
  40. package/src/flow.ts +1272 -1226
  41. package/src/index.ts +46 -46
  42. package/src/mermaid-driver.ts +339 -339
  43. package/src/mysql-driver.ts +108 -108
  44. package/src/project.ts +138 -138
  45. package/src/service.ts +112 -107
  46. package/src/third-service.ts +68 -191
  47. package/src/typebox-driver.ts +234 -268
  48. package/src/utils.ts +74 -74
package/docs/project.md CHANGED
@@ -1,32 +1,32 @@
1
- # 项目拓扑 (Project)
2
-
3
- Project 是仓库的地图:描述有哪些前端应用、哪些后端 API,以及每个 API 服务哪些前端。
4
-
5
- ```ts
6
- import { defineProject, FrontAppSchema, ProjectApiSchema } from '@pylonts/dsl';
7
-
8
- // Export-symbol rule: the export name equals the schema name kebab-camel
9
- // (name 'admin' exports 'admin', 'mini-user' exports 'miniUser').
10
- export const admin: FrontAppSchema = { name: 'admin', type: 'admin', dir: 'admin/', description: '管理后台' };
11
- export const miniUser: FrontAppSchema = { name: 'mini-user', type: 'wxmini', dir: 'mini-user/', description: 'C端小程序' };
12
- export const miniVerify: FrontAppSchema = { name: 'mini-verify', type: 'wxmini', dir: 'mini-verify/', description: '核销小程序' };
13
-
14
- // The first api must be named 'api'; a second api may use a prefixed name
15
- // like 'xx-api' with dir 'xx-api/'.
16
- export const api: ProjectApiSchema = { name: 'api', description: '商城主后端', dir: 'api/', contextPath: '/mall', apps: [admin, miniUser, miniVerify] };
17
-
18
- export const mall = defineProject('mall', {
19
- description: '合作商户权益兑换商城',
20
- apps: [admin, miniUser, miniVerify],
21
- apis: [api],
22
- });
23
- ```
24
-
25
- - `FrontAppSchema`:`name` / `description` / `type`(admin | wxmini)/ `dir`(相对仓库根目录的源码目录)。
26
- - `ProjectApiSchema`:`name` / `description` / `dir` / `apps`(直接引用共享的 FrontAppSchema 实例——一个 app 被多个 API 服务就定义一次、引用多次)/ `contextPath`(API 基础 URL 前缀,如 `/mall`,空串表示无前缀)。
27
- - **直接对象引用优先**:`api.apps` 与 `project.apps` 指向同一实例,不写字符串。
28
- - **contextPath 解析**:前端 app 的 API 前缀由服务它的 api 决定——`api.apps` 必须恰好包含该 app(零个或多个都报错),app 本身不声明 contextPath。
29
- - **命名约定(defineProject 运行时强制,违反即抛错)**:
30
- - 每个 app / api / thirdApi 的 `dir` 必须等于 `name`(尾斜杠可有可无,`'api/'` == `'api'`)。
31
- - `apis` 的第一个 api 必须命名为 `api`(导出符号即 `api`);带前缀的名字(如 `xx-api`)只允许从第二个 api 起。
1
+ # 项目拓扑 (Project)
2
+
3
+ Project 是仓库的地图:描述有哪些前端应用、哪些后端 API,以及每个 API 服务哪些前端。
4
+
5
+ ```ts
6
+ import { defineProject, FrontAppSchema, ProjectApiSchema } from '@pylonts/dsl';
7
+
8
+ // Export-symbol rule: the export name equals the schema name kebab-camel
9
+ // (name 'admin' exports 'admin', 'mini-user' exports 'miniUser').
10
+ export const admin: FrontAppSchema = { name: 'admin', type: 'admin', dir: 'admin/', description: '管理后台' };
11
+ export const miniUser: FrontAppSchema = { name: 'mini-user', type: 'wxmini', dir: 'mini-user/', description: 'C端小程序' };
12
+ export const miniVerify: FrontAppSchema = { name: 'mini-verify', type: 'wxmini', dir: 'mini-verify/', description: '核销小程序' };
13
+
14
+ // The first api must be named 'api'; a second api may use a prefixed name
15
+ // like 'xx-api' with dir 'xx-api/'.
16
+ export const api: ProjectApiSchema = { name: 'api', description: '商城主后端', dir: 'api/', contextPath: '/mall', apps: [admin, miniUser, miniVerify] };
17
+
18
+ export const mall = defineProject('mall', {
19
+ description: '合作商户权益兑换商城',
20
+ apps: [admin, miniUser, miniVerify],
21
+ apis: [api],
22
+ });
23
+ ```
24
+
25
+ - `FrontAppSchema`:`name` / `description` / `type`(admin | wxmini)/ `dir`(相对仓库根目录的源码目录)。
26
+ - `ProjectApiSchema`:`name` / `description` / `dir` / `apps`(直接引用共享的 FrontAppSchema 实例——一个 app 被多个 API 服务就定义一次、引用多次)/ `contextPath`(API 基础 URL 前缀,如 `/mall`,空串表示无前缀)。
27
+ - **直接对象引用优先**:`api.apps` 与 `project.apps` 指向同一实例,不写字符串。
28
+ - **contextPath 解析**:前端 app 的 API 前缀由服务它的 api 决定——`api.apps` 必须恰好包含该 app(零个或多个都报错),app 本身不声明 contextPath。
29
+ - **命名约定(defineProject 运行时强制,违反即抛错)**:
30
+ - 每个 app / api / thirdApi 的 `dir` 必须等于 `name`(尾斜杠可有可无,`'api/'` == `'api'`)。
31
+ - `apis` 的第一个 api 必须命名为 `api`(导出符号即 `api`);带前缀的名字(如 `xx-api`)只允许从第二个 api 起。
32
32
  - 实例导出符号 = 名字的 kebab-camel(`mini-user` → `miniUser`),loader 强制。