@gaias/basenode 0.0.1

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 (132) hide show
  1. package/.dockerignore +12 -0
  2. package/.drone.yml +54 -0
  3. package/.eslintignore +4 -0
  4. package/.ncurc.json +8 -0
  5. package/Dockerfile +15 -0
  6. package/README.adoc +44 -0
  7. package/README.md +47 -0
  8. package/dist/deps/Libs.d.ts +10 -0
  9. package/dist/deps/Libs.js +46 -0
  10. package/dist/deps/Libs.js.map +1 -0
  11. package/dist/deps/index.d.ts +1 -0
  12. package/dist/deps/index.js +18 -0
  13. package/dist/deps/index.js.map +1 -0
  14. package/dist/index.d.ts +4 -0
  15. package/dist/index.js +21 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/libs/ApiGatewayLoader.d.ts +3 -0
  18. package/dist/libs/ApiGatewayLoader.js +82 -0
  19. package/dist/libs/ApiGatewayLoader.js.map +1 -0
  20. package/dist/libs/ApiRegisterController.d.ts +12 -0
  21. package/dist/libs/ApiRegisterController.js +245 -0
  22. package/dist/libs/ApiRegisterController.js.map +1 -0
  23. package/dist/libs/ApplicationConfig.d.ts +12 -0
  24. package/dist/libs/ApplicationConfig.js +3 -0
  25. package/dist/libs/ApplicationConfig.js.map +1 -0
  26. package/dist/libs/BizError.d.ts +8 -0
  27. package/dist/libs/BizError.js +14 -0
  28. package/dist/libs/BizError.js.map +1 -0
  29. package/dist/libs/CacheService.d.ts +57 -0
  30. package/dist/libs/CacheService.js +309 -0
  31. package/dist/libs/CacheService.js.map +1 -0
  32. package/dist/libs/ConfigManager.d.ts +19 -0
  33. package/dist/libs/ConfigManager.js +52 -0
  34. package/dist/libs/ConfigManager.js.map +1 -0
  35. package/dist/libs/Converter.d.ts +32 -0
  36. package/dist/libs/Converter.js +148 -0
  37. package/dist/libs/Converter.js.map +1 -0
  38. package/dist/libs/CurrentUserToken.d.ts +7 -0
  39. package/dist/libs/CurrentUserToken.js +3 -0
  40. package/dist/libs/CurrentUserToken.js.map +1 -0
  41. package/dist/libs/DistributedEvents.d.ts +13 -0
  42. package/dist/libs/DistributedEvents.js +102 -0
  43. package/dist/libs/DistributedEvents.js.map +1 -0
  44. package/dist/libs/DistributedEventsLoader.d.ts +6 -0
  45. package/dist/libs/DistributedEventsLoader.js +30 -0
  46. package/dist/libs/DistributedEventsLoader.js.map +1 -0
  47. package/dist/libs/EventsManager.d.ts +16 -0
  48. package/dist/libs/EventsManager.js +56 -0
  49. package/dist/libs/EventsManager.js.map +1 -0
  50. package/dist/libs/HealthCheckController.d.ts +24 -0
  51. package/dist/libs/HealthCheckController.js +83 -0
  52. package/dist/libs/HealthCheckController.js.map +1 -0
  53. package/dist/libs/HttpMethods.d.ts +8 -0
  54. package/dist/libs/HttpMethods.js +80 -0
  55. package/dist/libs/HttpMethods.js.map +1 -0
  56. package/dist/libs/IdGenerator.d.ts +1 -0
  57. package/dist/libs/IdGenerator.js +7 -0
  58. package/dist/libs/IdGenerator.js.map +1 -0
  59. package/dist/libs/KoaControllerReturnHandler.d.ts +6 -0
  60. package/dist/libs/KoaControllerReturnHandler.js +83 -0
  61. package/dist/libs/KoaControllerReturnHandler.js.map +1 -0
  62. package/dist/libs/KoaLoader.d.ts +20 -0
  63. package/dist/libs/KoaLoader.js +177 -0
  64. package/dist/libs/KoaLoader.js.map +1 -0
  65. package/dist/libs/Leader.d.ts +39 -0
  66. package/dist/libs/Leader.js +145 -0
  67. package/dist/libs/Leader.js.map +1 -0
  68. package/dist/libs/Logger.d.ts +8 -0
  69. package/dist/libs/Logger.js +48 -0
  70. package/dist/libs/Logger.js.map +1 -0
  71. package/dist/libs/Pagination.d.ts +23 -0
  72. package/dist/libs/Pagination.js +120 -0
  73. package/dist/libs/Pagination.js.map +1 -0
  74. package/dist/libs/RedisClient.d.ts +15 -0
  75. package/dist/libs/RedisClient.js +84 -0
  76. package/dist/libs/RedisClient.js.map +1 -0
  77. package/dist/libs/RedisLoader.d.ts +3 -0
  78. package/dist/libs/RedisLoader.js +31 -0
  79. package/dist/libs/RedisLoader.js.map +1 -0
  80. package/dist/libs/ResRegTypes.d.ts +17 -0
  81. package/dist/libs/ResRegTypes.js +3 -0
  82. package/dist/libs/ResRegTypes.js.map +1 -0
  83. package/dist/libs/Timer.d.ts +13 -0
  84. package/dist/libs/Timer.js +62 -0
  85. package/dist/libs/Timer.js.map +1 -0
  86. package/dist/libs/TypeormLoader.d.ts +8 -0
  87. package/dist/libs/TypeormLoader.js +49 -0
  88. package/dist/libs/TypeormLoader.js.map +1 -0
  89. package/dist/libs/ValidationHelper.d.ts +13 -0
  90. package/dist/libs/ValidationHelper.js +73 -0
  91. package/dist/libs/ValidationHelper.js.map +1 -0
  92. package/dist/libs/apisix/ApisixTemplate.d.ts +6 -0
  93. package/dist/libs/apisix/ApisixTemplate.js +88 -0
  94. package/dist/libs/apisix/ApisixTemplate.js.map +1 -0
  95. package/dist/libs/apisix/HttpPutter.d.ts +1 -0
  96. package/dist/libs/apisix/HttpPutter.js +51 -0
  97. package/dist/libs/apisix/HttpPutter.js.map +1 -0
  98. package/dist/libs/apisix/index.d.ts +2 -0
  99. package/dist/libs/apisix/index.js +19 -0
  100. package/dist/libs/apisix/index.js.map +1 -0
  101. package/dist/libs/i18nValidator.d.ts +3 -0
  102. package/dist/libs/i18nValidator.js +38 -0
  103. package/dist/libs/i18nValidator.js.map +1 -0
  104. package/dist/libs/index.d.ts +28 -0
  105. package/dist/libs/index.js +45 -0
  106. package/dist/libs/index.js.map +1 -0
  107. package/dist/libs/types.d.ts +3 -0
  108. package/dist/libs/types.js +3 -0
  109. package/dist/libs/types.js.map +1 -0
  110. package/dist/server/bootstrap.d.ts +14 -0
  111. package/dist/server/bootstrap.js +63 -0
  112. package/dist/server/bootstrap.js.map +1 -0
  113. package/dist/server/index.d.ts +1 -0
  114. package/dist/server/index.js +18 -0
  115. package/dist/server/index.js.map +1 -0
  116. package/dist/utils/YamlUtil.d.ts +1 -0
  117. package/dist/utils/YamlUtil.js +43 -0
  118. package/dist/utils/YamlUtil.js.map +1 -0
  119. package/dist/utils/crypto.d.ts +9 -0
  120. package/dist/utils/crypto.js +34 -0
  121. package/dist/utils/crypto.js.map +1 -0
  122. package/dist/utils/index.d.ts +4 -0
  123. package/dist/utils/index.js +21 -0
  124. package/dist/utils/index.js.map +1 -0
  125. package/dist/utils/jwtUtil.d.ts +9 -0
  126. package/dist/utils/jwtUtil.js +41 -0
  127. package/dist/utils/jwtUtil.js.map +1 -0
  128. package/dist/utils/transformer.d.ts +9 -0
  129. package/dist/utils/transformer.js +44 -0
  130. package/dist/utils/transformer.js.map +1 -0
  131. package/gen_db.json +7 -0
  132. package/package.json +127 -0
package/.dockerignore ADDED
@@ -0,0 +1,12 @@
1
+ .husky
2
+ node_modules
3
+ dist
4
+ .cache
5
+ .vscode
6
+ .git
7
+ tools
8
+ *.log
9
+ report.*.json
10
+ temp
11
+ redisdata
12
+ mysqldata
package/.drone.yml ADDED
@@ -0,0 +1,54 @@
1
+ kind: pipeline
2
+ type: docker
3
+ name: default
4
+
5
+ steps:
6
+ # - name: build docker image
7
+ # image: plugins/docker
8
+ # settings:
9
+ # username:
10
+ # from_secret: docker_username_alicloud
11
+ # password:
12
+ # from_secret: docker_password_alicloud
13
+ # repo: registry.cn-hongkong.aliyuncs.com/fotsg/${DRONE_REPO_NAME,,}
14
+ # registry: registry.cn-hongkong.aliyuncs.com
15
+ # tags: latest
16
+ # debug: false
17
+ # insecure: false
18
+ - name: build Base Node builder image
19
+ image: plugins/docker
20
+ settings:
21
+ username:
22
+ from_secret: docker_username_dockerhub
23
+ password:
24
+ from_secret: docker_password_dockerhub
25
+ repo: teedywang/base_node_builder
26
+ # registry: registry.cn-hongkong.aliyuncs.com
27
+ tags: latest
28
+ debug: false
29
+ insecure: false
30
+
31
+ ---
32
+ kind: secret
33
+ name: docker_username_dockerhub
34
+ get:
35
+ path: cicd/infra
36
+ name: docker_username_dockerhub
37
+ ---
38
+ kind: secret
39
+ name: docker_password_dockerhub
40
+ get:
41
+ path: cicd/infra
42
+ name: docker_password_dockerhub
43
+ ---
44
+ kind: secret
45
+ name: docker_username_alicloud
46
+ get:
47
+ path: cicd/infra
48
+ name: docker_username_alicloud
49
+ ---
50
+ kind: secret
51
+ name: docker_password_alicloud
52
+ get:
53
+ path: cicd/infra
54
+ name: docker_password_alicloud
package/.eslintignore ADDED
@@ -0,0 +1,4 @@
1
+ node_modules/*
2
+ dist/*
3
+ temp/*
4
+ .next/*
package/.ncurc.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "upgrade": true,
3
+ "reject": [
4
+ "internal-ip",
5
+ "pino",
6
+ "pino-pretty"
7
+ ]
8
+ }
package/Dockerfile ADDED
@@ -0,0 +1,15 @@
1
+ FROM node:14-alpine as installer
2
+
3
+ RUN apk add --no-cache alpine-sdk python3
4
+
5
+ WORKDIR /fot.sg/build
6
+ ENV YARN_CACHE_FOLDER=/.yarn/cache
7
+ COPY package.json .
8
+ RUN yarn install --ignore-scripts
9
+
10
+ FROM node:14-alpine
11
+
12
+ WORKDIR /fot.sg/build
13
+ ENV YARN_CACHE_FOLDER=/.yarn/cache
14
+ COPY --from=installer /.yarn/cache /.yarn/cache
15
+ COPY --from=installer /fot.sg/build/node_modules /fot.sg/build/node_modules
package/README.adoc ADDED
@@ -0,0 +1,44 @@
1
+ # README #
2
+
3
+ ## Please follow the step by step to startup your fotapi project.
4
+
5
+ * Set fot npm private repository
6
+ ++++
7
+ Already set configs in project level .npmrc & .yarnrc.
8
+ Change the npm password by setting env if you need to submit code.
9
+ ++++
10
+ [source, shell]
11
+ ----
12
+ echo -n 'myuser:mypassword' | openssl base64
13
+ npm_config__auth=xxxxxx yarn publish
14
+ ----
15
+
16
+ * Install yarn packages
17
+ [source, shell]
18
+ ----
19
+ yarn install
20
+ ----
21
+
22
+ * Set up your marinedb and import the sql data in file mysqlsampledatabase.sql, then change the db address in ./cfg/database.development.yaml
23
+
24
+ * Run project
25
+ [source, shell]
26
+ ----
27
+ yarn dev
28
+ ----
29
+
30
+
31
+
32
+ ## Document links
33
+ * Restful controller:
34
+ https://github.com/typestack/routing-controllers/blob/master/README.md[routing-controllers]
35
+ * Socket.io controller:
36
+ https://github.com/typestack/socket-controllers/blob/master/README.md[socket-controllers]
37
+ * Validation: https://github.com/typestack/class-validator/blob/master/README.md[class-validator]
38
+ * Json <-> Object: https://github.com/typestack/class-transformer/blob/develop/README.md[class-transformer]
39
+ * socket.io: https://socket.io/docs/[socket.io]
40
+ * IoC: https://github.com/typestack/typedi/blob/master/README.md[typedi]
41
+ * ORM:
42
+ ** https://typeorm.io/[typeorm]
43
+ ** https://github.com/odavid/typeorm-transactional-cls-hooked/blob/master/README.md[tx decorators]
44
+ ** https://github.com/typeorm/typeorm-typedi-extensions/blob/master/README.md[inject repo/conn]
package/README.md ADDED
@@ -0,0 +1,47 @@
1
+ # basenode
2
+
3
+
4
+ # README #
5
+
6
+ ## Please follow the step by step to startup your fotapi project.
7
+
8
+ * Set fot npm private repository
9
+ ++++
10
+ Already set configs in project level .npmrc & .yarnrc.
11
+ Change the npm password by setting env if you need to submit code.
12
+ ++++
13
+ [source, shell]
14
+ ----
15
+ echo -n 'myuser:mypassword' | openssl base64
16
+ npm_config__auth=xxxxxx yarn publish
17
+ ----
18
+
19
+ * Install yarn packages
20
+ [source, shell]
21
+ ----
22
+ yarn install
23
+ ----
24
+
25
+ * Set up your marinedb and import the sql data in file mysqlsampledatabase.sql, then change the db address in ./cfg/database.development.yaml
26
+
27
+ * Run project
28
+ [source, shell]
29
+ ----
30
+ yarn dev
31
+ ----
32
+
33
+
34
+
35
+ ## Document links
36
+ * Restful controller:
37
+ https://github.com/typestack/routing-controllers/blob/master/README.md[routing-controllers]
38
+ * Socket.io controller:
39
+ https://github.com/typestack/socket-controllers/blob/master/README.md[socket-controllers]
40
+ * Validation: https://github.com/typestack/class-validator/blob/master/README.md[class-validator]
41
+ * Json <-> Object: https://github.com/typestack/class-transformer/blob/develop/README.md[class-transformer]
42
+ * socket.io: https://socket.io/docs/[socket.io]
43
+ * IoC: https://github.com/typestack/typedi/blob/master/README.md[typedi]
44
+ * ORM:
45
+ ** https://typeorm.io/[typeorm]
46
+ ** https://github.com/odavid/typeorm-transactional-cls-hooked/blob/master/README.md[tx decorators]
47
+ ** https://github.com/typeorm/typeorm-typedi-extensions/blob/master/README.md[inject repo/conn]
@@ -0,0 +1,10 @@
1
+ import ctl from 'routing-controllers';
2
+ export declare const rest: typeof ctl;
3
+ export * as ct from 'class-transformer';
4
+ export * as cv from 'class-validator';
5
+ export * as api from 'routing-controllers-openapi';
6
+ export * as ws from 'socket-controllers';
7
+ export * as di from 'typedi';
8
+ export * as orm from 'typeorm';
9
+ export * as tx from 'typeorm-transactional-cls-hooked';
10
+ export * as repo from 'typeorm-typedi-extensions';
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.repo = exports.tx = exports.orm = exports.di = exports.ws = exports.api = exports.cv = exports.ct = exports.rest = void 0;
27
+ exports.rest = Object.assign({}, require('routing-controllers'));
28
+ exports.ct = __importStar(require("class-transformer"));
29
+ exports.cv = __importStar(require("class-validator"));
30
+ exports.api = __importStar(require("routing-controllers-openapi"));
31
+ exports.ws = __importStar(require("socket-controllers"));
32
+ exports.di = __importStar(require("typedi"));
33
+ exports.orm = __importStar(require("typeorm"));
34
+ exports.tx = __importStar(require("typeorm-transactional-cls-hooked"));
35
+ exports.repo = __importStar(require("typeorm-typedi-extensions"));
36
+ const _body = exports.rest.Body;
37
+ exports.rest.Body = (options) => {
38
+ if (options && options.transform && options.transform.excludeExtraneousValues !== false) {
39
+ options.transform.excludeExtraneousValues = true;
40
+ }
41
+ if (!options) {
42
+ options = { transform: { excludeExtraneousValues: true } };
43
+ }
44
+ return _body(options);
45
+ };
46
+ //# sourceMappingURL=Libs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Libs.js","sourceRoot":"","sources":["../../../src/deps/Libs.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEa,QAAA,IAAI,GAAG,kBAAK,OAAO,CAAC,qBAAqB,CAAC,CAAgB,CAAC;AAExE,wDAAwC;AACxC,sDAAsC;AACtC,mEAAmD;AACnD,yDAAyC;AACzC,6CAA6B;AAC7B,+CAA+B;AAC/B,uEAAuD;AACvD,kEAAkD;AAElD,MAAM,KAAK,GAAG,YAAI,CAAC,IAAI,CAAC;AACxB,YAAI,CAAC,IAAI,GAAG,CAAC,OAAa,EAAE,EAAE;IAC5B,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,uBAAuB,KAAK,KAAK,EAAE;QACvF,OAAO,CAAC,SAAS,CAAC,uBAAuB,GAAG,IAAI,CAAC;KAClD;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,GAAG,EAAE,SAAS,EAAE,EAAE,uBAAuB,EAAE,IAAI,EAAE,EAAE,CAAC;KAC5D;IACD,OAAO,KAAK,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './Libs';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Libs"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/deps/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,yCAAuB"}
@@ -0,0 +1,4 @@
1
+ export * from './deps';
2
+ export * from './libs';
3
+ export * from './server';
4
+ export * from './utils';
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./deps"), exports);
18
+ __exportStar(require("./libs"), exports);
19
+ __exportStar(require("./server"), exports);
20
+ __exportStar(require("./utils"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,yCAAuB;AACvB,yCAAuB;AACvB,2CAAyB;AACzB,0CAAwB"}
@@ -0,0 +1,3 @@
1
+ import { MicroframeworkSettings } from 'microframework';
2
+ export declare type ApiGatewayLoaderOption = unknown;
3
+ export declare const apiGatewayLoader: (option: ApiGatewayLoaderOption) => (settings?: MicroframeworkSettings) => Promise<void>;
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.apiGatewayLoader = void 0;
39
+ const lodash_1 = __importDefault(require("lodash"));
40
+ const tpl = __importStar(require("./apisix/ApisixTemplate"));
41
+ const HttpPutter_1 = require("./apisix/HttpPutter");
42
+ const ConfigManager_1 = require("./ConfigManager");
43
+ const Logger_1 = require("./Logger");
44
+ const sleep = (ms) => {
45
+ return new Promise((resolve) => setTimeout(resolve, ms));
46
+ };
47
+ const apiGatewayLoader = (option) => (settings) => __awaiter(void 0, void 0, void 0, function* () {
48
+ var _a, _b;
49
+ const enableApiGateway = process.env['ENABLE_API_GATEWAY'];
50
+ const enableApiGatewayAuth = 'true' === process.env['ENABLE_API_GATEWAY_AUTH'];
51
+ if (!ConfigManager_1.ConfigManager.isDevelopment() && lodash_1.default.isEqual((enableApiGateway !== null && enableApiGateway !== void 0 ? enableApiGateway : '').toLowerCase().trim(), 'true')) {
52
+ const apiGatewayHostPort = (_a = process.env['API_GATEWAY_HOST_PORT']) !== null && _a !== void 0 ? _a : '';
53
+ const [host, _port] = apiGatewayHostPort.split(':');
54
+ const hostPort = lodash_1.default.parseInt(_port !== null && _port !== void 0 ? _port : '80');
55
+ const domains = ((_b = process.env['DOMAINS']) !== null && _b !== void 0 ? _b : '')
56
+ .split(',')
57
+ .map((domain) => lodash_1.default.trim(domain))
58
+ .filter((domain) => !lodash_1.default.isEmpty(domain));
59
+ const cfg = ConfigManager_1.ConfigManager.getConfig('application');
60
+ const appName = cfg.appName;
61
+ const appPort = cfg.port;
62
+ const apiVersion = cfg.version;
63
+ const build = ConfigManager_1.ConfigManager.getBuildNumber();
64
+ const version = ConfigManager_1.ConfigManager.getPkgVersion();
65
+ const { apiKey } = ConfigManager_1.ConfigManager.getConfig('apisix');
66
+ const upstreamUri = tpl.upstreamUriTemplate(appName);
67
+ const upstreamReqData = tpl.upstreamTemplate(appName, apiVersion, appPort);
68
+ const serviceUri = tpl.serviceUriTemplate(appName);
69
+ const serviceReqData = tpl.serviceTemplate(appName, enableApiGatewayAuth);
70
+ const routeUri = tpl.routeUriTemplate(appName);
71
+ const routeReqData = tpl.routeTemplate(appName, domains, apiVersion, build, version);
72
+ const logger = Logger_1.Logger.getLogger('ApiGatewayLoader');
73
+ yield (0, HttpPutter_1.httpPut)(host, hostPort, upstreamUri, upstreamReqData, apiKey);
74
+ yield sleep(1000);
75
+ yield (0, HttpPutter_1.httpPut)(host, hostPort, serviceUri, serviceReqData, apiKey);
76
+ yield sleep(1000);
77
+ yield (0, HttpPutter_1.httpPut)(host, hostPort, routeUri, routeReqData, apiKey);
78
+ logger.info(`🔗API Gateway routes mapping updated.`);
79
+ }
80
+ });
81
+ exports.apiGatewayLoader = apiGatewayLoader;
82
+ //# sourceMappingURL=ApiGatewayLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiGatewayLoader.js","sourceRoot":"","sources":["../../../src/libs/ApiGatewayLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare const API_EXPORT_EXCLUSION: never[];
2
+ export declare class ApiRegisterController {
3
+ private logger;
4
+ showAllApisOfThisModule(): Promise<import("./Converter").ApiData>;
5
+ index(): Promise<string>;
6
+ restClientConfigWebCommonApiParamWeb(): Promise<string>;
7
+ restClientConfigWeb(): Promise<string>;
8
+ restClientWebApis(): Promise<{}>;
9
+ restClientConfigWebCommonApiParamSvc(): Promise<string>;
10
+ restClientConfigService(): Promise<string>;
11
+ restClientSvcApi(): Promise<{}>;
12
+ }