pwi-plata-type 0.4.166 → 0.4.167

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 (101) hide show
  1. package/README.md +2 -2
  2. package/__BUILD__/libs/sql.js +4 -1
  3. package/__BUILD__/libs/sql.js.map +1 -1
  4. package/package.json +53 -53
  5. package/src/@types/build.d.ts +26 -26
  6. package/src/@types/cluster.actions.d.ts +27 -27
  7. package/src/@types/cluster.d.ts +55 -55
  8. package/src/@types/create-cli.d.ts +8 -8
  9. package/src/@types/exported.d.ts +31 -31
  10. package/src/@types/fs.d.ts +6 -6
  11. package/src/@types/global.d.ts +113 -113
  12. package/src/@types/knex.d.ts +13 -13
  13. package/src/@types/model.d.ts +143 -143
  14. package/src/@types/router.d.ts +107 -107
  15. package/src/@types/sql.d.ts +75 -75
  16. package/src/@types/swagger.d.ts +22 -22
  17. package/src/bin/extras/create-api-cli.ts +218 -218
  18. package/src/bin/extras/create-cluster-cli.ts +160 -160
  19. package/src/bin/extras/create-lib-cli.ts +84 -84
  20. package/src/bin/extras/plata-create-tools.ts +97 -97
  21. package/src/bin/plata-api.ts +189 -189
  22. package/src/bin/plata-build.ts +17 -17
  23. package/src/bin/plata-cluster.ts +42 -42
  24. package/src/bin/plata-cmd.ts +18 -18
  25. package/src/bin/plata-create.ts +49 -49
  26. package/src/bin/plata-runtime.ts +131 -131
  27. package/src/bin/plata-swagger.ts +99 -99
  28. package/src/bin/runtime/_setupRuntime.ts +48 -48
  29. package/src/bin/runtime/_types.d.ts +7 -7
  30. package/src/bin/runtime/class.ts +20 -20
  31. package/src/bin/runtime/dirs.ts +25 -25
  32. package/src/bin/runtime/effect.ts +60 -60
  33. package/src/bin/runtime/fs.ts +10 -10
  34. package/src/bin/runtime/promises.ts +18 -18
  35. package/src/bin/runtime/require.ts +113 -113
  36. package/src/bin/runtime/sql.ts +12 -12
  37. package/src/bin/runtime/switch.ts +60 -60
  38. package/src/index.ts +19 -19
  39. package/src/libs/axios.ts +51 -51
  40. package/src/libs/build.ts +162 -162
  41. package/src/libs/cluster/cluster-controller.ts +93 -93
  42. package/src/libs/cluster.ts +330 -330
  43. package/src/libs/custom.ts +15 -15
  44. package/src/libs/env.ts +10 -10
  45. package/src/libs/fs.ts +399 -399
  46. package/src/libs/hot-reload.ts +63 -63
  47. package/src/libs/models/index.ts +4 -4
  48. package/src/libs/models/model-template-combine.ts +93 -93
  49. package/src/libs/models/model-template-env.ts +58 -58
  50. package/src/libs/models/model-template-union.ts +83 -83
  51. package/src/libs/models/model-template.ts +107 -107
  52. package/src/libs/models/model-validations.ts +443 -443
  53. package/src/libs/models/tools.ts +194 -194
  54. package/src/libs/router.ts +185 -185
  55. package/src/libs/sql.ts +792 -788
  56. package/src/libs/swagger.ts +81 -81
  57. package/src/libs/tools.ts +240 -240
  58. package/src/scripts/post-install/api.ts +32 -32
  59. package/src/scripts/post-install/cluster.ts +28 -28
  60. package/src/scripts/post-install/lib.ts +25 -25
  61. package/src/scripts/post-install.ts +64 -64
  62. package/src/scripts/pre-test.ts +33 -33
  63. package/src/tests/assets/sql/example.sql +76 -76
  64. package/src/tests/config.test.ts +12 -12
  65. package/src/tests/effect.test.ts +62 -62
  66. package/src/tests/model.env.test.ts +66 -66
  67. package/src/tests/model.test.ts +141 -141
  68. package/src/tests/model.union.test.ts +160 -160
  69. package/src/tests/router.test.ts +44 -44
  70. package/src/tests/sql.test.ts +502 -502
  71. package/src/tests/switch.test.ts +76 -76
  72. package/templates/create-cli/class.ts +13 -13
  73. package/templates/create-cli/cluster.ts +14 -14
  74. package/templates/create-cli/cmd.ts +3 -3
  75. package/templates/create-cli/config.ts +2 -2
  76. package/templates/create-cli/lib.ts +3 -3
  77. package/templates/create-cli/model.ts +14 -14
  78. package/templates/create-cli/route.ts +8 -8
  79. package/templates/create-cli/task.ts +13 -13
  80. package/templates/postinstall/api/.vscode/launch.json +20 -20
  81. package/templates/postinstall/api/Dockerfile +24 -24
  82. package/templates/postinstall/api/configs/env.ts +2 -2
  83. package/templates/postinstall/api/envs/debug.env +15 -15
  84. package/templates/postinstall/api/envs/homolog.env +15 -15
  85. package/templates/postinstall/api/envs/prod.env +15 -15
  86. package/templates/postinstall/api/tsconfig.json +24 -24
  87. package/templates/postinstall/cluster/.vscode/launch.json +20 -20
  88. package/templates/postinstall/cluster/Dockerfile +24 -24
  89. package/templates/postinstall/cluster/configs/env.ts +2 -2
  90. package/templates/postinstall/cluster/envs/debug.env +10 -10
  91. package/templates/postinstall/cluster/envs/homolog.env +10 -10
  92. package/templates/postinstall/cluster/envs/prod.env +10 -10
  93. package/templates/postinstall/cluster/tsconfig.json +24 -24
  94. package/templates/postinstall/lib/postinstall-tools.mjs +111 -111
  95. package/templates/postinstall/lib/postinstall.js +33 -33
  96. package/templates/postinstall/lib/tsconfig.json +22 -22
  97. package/templates/swagger-cli/header.json +21 -21
  98. package/templates/swagger-cli/route/body.json +14 -14
  99. package/templates/swagger-cli/route/header.json +18 -18
  100. package/templates/swagger-cli/route/response.json +53 -53
  101. package/tsconfig.json +28 -28
@@ -1,108 +1,108 @@
1
- /// <reference types="express" />
2
-
3
- import express from 'express'
4
-
5
- declare global {
6
- namespace Router {
7
- type ListRouteParams<TRoute extends string> =
8
- TRoute extends `/${infer TPart}/${infer TNextRoute}` ?
9
- TPart extends `:${infer TParam}?` ? `${TParam}_O` | ListRouteParams<`/${TNextRoute}`>
10
- : TPart extends `:${infer TParam}` ? `${TParam}_R` | ListRouteParams<`/${TNextRoute}`>
11
- : undefined | ListRouteParams<`/${TNextRoute}`>
12
- : TRoute extends `/${infer TPart}` ?
13
- TPart extends `:${infer TParam}?` ? `${TParam}_O`
14
- : TPart extends `:${infer TParam}` ? `${TParam}_R`
15
- : undefined
16
- : undefined
17
- ;
18
-
19
- type GetRouteParams<TRoute extends string> = Exclude<ListRouteParams<TRoute>, undefined>
20
-
21
- type GetUrlParams<TRoute extends string, TParams extends string = GetRouteParams<TRoute>> = {
22
- [K in LooseAutocomplete<TParams> as K extends `${infer N}_${string}` ? N : string]: K extends `${string}_O` ? string | undefined : string
23
- }
24
-
25
- type expressRequest = Omit<express.Request, 'params'>
26
-
27
- interface Request<T extends string = string> extends expressRequest {
28
- user: any
29
- extras: any
30
- _onResponseEvent: PlataOnResponseEvent[]
31
- params: GetUrlParams<T>
32
- }
33
-
34
- interface Response extends express.Response {
35
- oldJson(body?: any): this
36
- error(error: PlataError | PlataError[]): this
37
- addOnResponseEvent<T = any>(callback: PlataOnResponseEvent<T>): void
38
- }
39
-
40
- type RequestHandler<T extends string = string> = (req: Request<T>, res: Response, next: express.NextFunction) => Promise<any>
41
-
42
- type HttpPlataMethods =
43
- "all"
44
- | "get"
45
- | "post"
46
- | "put"
47
- | "delete"
48
- | "patch"
49
- | "options"
50
- | "head"
51
- | "checkout"
52
- | "connect"
53
- | "copy"
54
- | "lock"
55
- | "merge"
56
- | "mkactivity"
57
- | "mkcol"
58
- | "move"
59
- | "notify"
60
- | "propfind"
61
- | "proppatch"
62
- | "purge"
63
- | "report"
64
- | "search"
65
- | "subscribe"
66
- | "trace"
67
- | "unlock"
68
- | "unsubscribe"
69
- | "use"
70
- ;
71
-
72
- interface CustomHttpMethods {}
73
-
74
- type HttpMethods =
75
- HttpPlataMethods
76
- | keyof CustomHttpMethods
77
- ;
78
-
79
- interface Route {
80
- path?: string
81
- method: string
82
- handlers: RequestHandler[],
83
- swaggerHide?: boolean | undefined
84
- }
85
-
86
- type RouterConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
87
- swaggerHide?: boolean
88
- routes: Route[]
89
- httpRoute: string
90
- mark: T
91
- }
92
-
93
- type Router = RouterConfig & {
94
- [method in HttpMethods]:
95
- method extends keyof CustomHttpMethods ?
96
- CustomHttpMethods[method]
97
- : <T extends string>(path: T | RequestHandler, ...handlers: RequestHandler<T>[]) => void | Promise<void>
98
- }
99
-
100
- type RouterBuilder = (r: Router) => Promise<Router>
101
-
102
- export interface RequiredRoute extends RequiredInterface<RouterBuilder> {
103
- httpRoute: string
104
- }
105
-
106
- type PlataOnResponseEvent<T = any> = (aReq: Request, aRes?: Response, body?: T, error?: PlataError | PlataError[]) => Promise<any>
107
- }
1
+ /// <reference types="express" />
2
+
3
+ import express from 'express'
4
+
5
+ declare global {
6
+ namespace Router {
7
+ type ListRouteParams<TRoute extends string> =
8
+ TRoute extends `/${infer TPart}/${infer TNextRoute}` ?
9
+ TPart extends `:${infer TParam}?` ? `${TParam}_O` | ListRouteParams<`/${TNextRoute}`>
10
+ : TPart extends `:${infer TParam}` ? `${TParam}_R` | ListRouteParams<`/${TNextRoute}`>
11
+ : undefined | ListRouteParams<`/${TNextRoute}`>
12
+ : TRoute extends `/${infer TPart}` ?
13
+ TPart extends `:${infer TParam}?` ? `${TParam}_O`
14
+ : TPart extends `:${infer TParam}` ? `${TParam}_R`
15
+ : undefined
16
+ : undefined
17
+ ;
18
+
19
+ type GetRouteParams<TRoute extends string> = Exclude<ListRouteParams<TRoute>, undefined>
20
+
21
+ type GetUrlParams<TRoute extends string, TParams extends string = GetRouteParams<TRoute>> = {
22
+ [K in LooseAutocomplete<TParams> as K extends `${infer N}_${string}` ? N : string]: K extends `${string}_O` ? string | undefined : string
23
+ }
24
+
25
+ type expressRequest = Omit<express.Request, 'params'>
26
+
27
+ interface Request<T extends string = string> extends expressRequest {
28
+ user: any
29
+ extras: any
30
+ _onResponseEvent: PlataOnResponseEvent[]
31
+ params: GetUrlParams<T>
32
+ }
33
+
34
+ interface Response extends express.Response {
35
+ oldJson(body?: any): this
36
+ error(error: PlataError | PlataError[]): this
37
+ addOnResponseEvent<T = any>(callback: PlataOnResponseEvent<T>): void
38
+ }
39
+
40
+ type RequestHandler<T extends string = string> = (req: Request<T>, res: Response, next: express.NextFunction) => Promise<any>
41
+
42
+ type HttpPlataMethods =
43
+ "all"
44
+ | "get"
45
+ | "post"
46
+ | "put"
47
+ | "delete"
48
+ | "patch"
49
+ | "options"
50
+ | "head"
51
+ | "checkout"
52
+ | "connect"
53
+ | "copy"
54
+ | "lock"
55
+ | "merge"
56
+ | "mkactivity"
57
+ | "mkcol"
58
+ | "move"
59
+ | "notify"
60
+ | "propfind"
61
+ | "proppatch"
62
+ | "purge"
63
+ | "report"
64
+ | "search"
65
+ | "subscribe"
66
+ | "trace"
67
+ | "unlock"
68
+ | "unsubscribe"
69
+ | "use"
70
+ ;
71
+
72
+ interface CustomHttpMethods {}
73
+
74
+ type HttpMethods =
75
+ HttpPlataMethods
76
+ | keyof CustomHttpMethods
77
+ ;
78
+
79
+ interface Route {
80
+ path?: string
81
+ method: string
82
+ handlers: RequestHandler[],
83
+ swaggerHide?: boolean | undefined
84
+ }
85
+
86
+ type RouterConfig<T extends Record<string, unknown> = Record<string, unknown>> = {
87
+ swaggerHide?: boolean
88
+ routes: Route[]
89
+ httpRoute: string
90
+ mark: T
91
+ }
92
+
93
+ type Router = RouterConfig & {
94
+ [method in HttpMethods]:
95
+ method extends keyof CustomHttpMethods ?
96
+ CustomHttpMethods[method]
97
+ : <T extends string>(path: T | RequestHandler, ...handlers: RequestHandler<T>[]) => void | Promise<void>
98
+ }
99
+
100
+ type RouterBuilder = (r: Router) => Promise<Router>
101
+
102
+ export interface RequiredRoute extends RequiredInterface<RouterBuilder> {
103
+ httpRoute: string
104
+ }
105
+
106
+ type PlataOnResponseEvent<T = any> = (aReq: Request, aRes?: Response, body?: T, error?: PlataError | PlataError[]) => Promise<any>
107
+ }
108
108
  }
@@ -1,76 +1,76 @@
1
- import { Knex } from 'knex'
2
- import moment from 'moment'
3
-
4
- import "@total-typescript/ts-reset/dist/filter-boolean"
5
- import { ModelTemplate } from '++/libs/models'
6
- import { PlataSql } from '..'
7
-
8
-
9
- declare global {
10
- namespace Sql {
11
- type SqlGetFunc<const T extends ModelTemplate,const D extends boolean = false> =
12
- (builder: Sql.Builder<T['template']>, sql: PlataSql.Driver<D>) => PlataPromise<T['type'][]>
13
- ;
14
-
15
- interface CacheTable {
16
- coluns: Record<string | number | symbol, Knex.ColumnInfo>
17
- date: Date
18
- }
19
-
20
- interface InsertOptions {
21
- ignoreTrigger?: true
22
- }
23
-
24
- type ModelQueryBuilder<T extends Model.Template> =
25
- Knex.QueryBuilder<Model.ExtractTemplateType<T>, Model.ExtractTemplateType<T>[]>
26
- ;
27
-
28
- type Builder<T extends Model.Template> =
29
- (s: ModelQueryBuilder<T>) => ModelQueryBuilder<T>
30
- ;
31
-
32
- interface StreamHandler {
33
- close: <Y>() => PlataPromise<Y>
34
- row: <T>(row: T) => Promise<boolean>
35
- error?: (err) => Promise<void>
36
- }
37
-
38
- type ModelList<T extends Model.Template> = PlataPromise<{
39
- errors: undefined
40
- itens: Model.ExtractTemplateType<T>[]
41
- } | {
42
- errors: PlataError[]
43
- itens: Model.ExtractTemplateTypeNotValid<T>[]
44
- }>
45
-
46
- type EachRowCallBack<T extends Model.Template> =
47
- (x: Model.ModelValidateReturn<T>) => PlataPromise<true>
48
- ;
49
-
50
- type TimeZoneDate = Date & { __type: 'sql' }
51
-
52
- type TransactionFunction<T, Y> = (sql: T) => Promise<Y>
53
-
54
- type TransactionReturn =
55
- | boolean
56
- | string
57
- | number
58
- | Record<string, any>
59
- | ((...args: any[]) => any)
60
- ;
61
- type TransactionResultFunction<T, Y extends TransactionReturn> = (sql: T) => PlataPromise<Y>
62
-
63
- type Joins =
64
- 'JOIN'
65
- | `${
66
- 'LEFT'
67
- | 'CROSS'
68
- | 'INNER'
69
- | 'OUTER'
70
- | 'RIGHT'
71
- | 'FULL OUTER'
72
- | 'LEFT OUTER'
73
- } JOIN`
74
- ;
75
- }
1
+ import { Knex } from 'knex'
2
+ import moment from 'moment'
3
+
4
+ import "@total-typescript/ts-reset/dist/filter-boolean"
5
+ import { ModelTemplate } from '++/libs/models'
6
+ import { PlataSql } from '..'
7
+
8
+
9
+ declare global {
10
+ namespace Sql {
11
+ type SqlGetFunc<const T extends ModelTemplate,const D extends boolean = false> =
12
+ (builder: Sql.Builder<T['template']>, sql: PlataSql.Driver<D>) => PlataPromise<T['type'][]>
13
+ ;
14
+
15
+ interface CacheTable {
16
+ coluns: Record<string | number | symbol, Knex.ColumnInfo>
17
+ date: Date
18
+ }
19
+
20
+ interface InsertOptions {
21
+ ignoreTrigger?: true
22
+ }
23
+
24
+ type ModelQueryBuilder<T extends Model.Template> =
25
+ Knex.QueryBuilder<Model.ExtractTemplateType<T>, Model.ExtractTemplateType<T>[]>
26
+ ;
27
+
28
+ type Builder<T extends Model.Template> =
29
+ (s: ModelQueryBuilder<T>) => ModelQueryBuilder<T>
30
+ ;
31
+
32
+ interface StreamHandler {
33
+ close: <Y>() => PlataPromise<Y>
34
+ row: <T>(row: T) => Promise<boolean>
35
+ error?: (err) => Promise<void>
36
+ }
37
+
38
+ type ModelList<T extends Model.Template> = PlataPromise<{
39
+ errors: undefined
40
+ itens: Model.ExtractTemplateType<T>[]
41
+ } | {
42
+ errors: PlataError[]
43
+ itens: Model.ExtractTemplateTypeNotValid<T>[]
44
+ }>
45
+
46
+ type EachRowCallBack<T extends Model.Template> =
47
+ (x: Model.ModelValidateReturn<T>) => PlataPromise<true>
48
+ ;
49
+
50
+ type TimeZoneDate = Date & { __type: 'sql' }
51
+
52
+ type TransactionFunction<T, Y> = (sql: T) => Promise<Y>
53
+
54
+ type TransactionReturn =
55
+ | boolean
56
+ | string
57
+ | number
58
+ | Record<string, any>
59
+ | ((...args: any[]) => any)
60
+ ;
61
+ type TransactionResultFunction<T, Y extends TransactionReturn> = (sql: T) => PlataPromise<Y>
62
+
63
+ type Joins =
64
+ 'JOIN'
65
+ | `${
66
+ 'LEFT'
67
+ | 'CROSS'
68
+ | 'INNER'
69
+ | 'OUTER'
70
+ | 'RIGHT'
71
+ | 'FULL OUTER'
72
+ | 'LEFT OUTER'
73
+ } JOIN`
74
+ ;
75
+ }
76
76
  }
@@ -1,23 +1,23 @@
1
- declare namespace SwaggerGen {
2
- interface RouteParameter {
3
- name: string,
4
- required: boolean,
5
- in: 'path',
6
- type: 'string'
7
- }
8
-
9
- interface Route {
10
- httpRoute: string
11
- method: string
12
- params: RouteParameter[]
13
- }
14
-
15
- interface Files {
16
- swaggerHeader: any
17
- route: {
18
- header: any,
19
- body: any,
20
- response: any,
21
- }
22
- }
1
+ declare namespace SwaggerGen {
2
+ interface RouteParameter {
3
+ name: string,
4
+ required: boolean,
5
+ in: 'path',
6
+ type: 'string'
7
+ }
8
+
9
+ interface Route {
10
+ httpRoute: string
11
+ method: string
12
+ params: RouteParameter[]
13
+ }
14
+
15
+ interface Files {
16
+ swaggerHeader: any
17
+ route: {
18
+ header: any,
19
+ body: any,
20
+ response: any,
21
+ }
22
+ }
23
23
  }