@webda/core 1.2.1 → 1.6.0-beta.0

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 (199) hide show
  1. package/lib/application.d.ts +3 -0
  2. package/lib/application.js +26 -22
  3. package/lib/application.js.map +1 -1
  4. package/lib/application.spec.js +185 -2
  5. package/lib/application.spec.js.map +1 -1
  6. package/lib/core.d.ts +62 -6
  7. package/lib/core.js +127 -86
  8. package/lib/core.js.map +1 -1
  9. package/lib/core.spec.js +151 -6
  10. package/lib/core.spec.js.map +1 -1
  11. package/lib/index.d.ts +4 -0
  12. package/lib/index.js +4 -0
  13. package/lib/index.js.map +1 -1
  14. package/lib/models/aclmodel.d.ts +42 -3
  15. package/lib/models/aclmodel.js +58 -3
  16. package/lib/models/aclmodel.js.map +1 -1
  17. package/lib/models/aclmodel.spec.js +46 -0
  18. package/lib/models/aclmodel.spec.js.map +1 -1
  19. package/lib/models/coremodel.d.ts +58 -10
  20. package/lib/models/coremodel.js +39 -32
  21. package/lib/models/coremodel.js.map +1 -1
  22. package/lib/models/coremodel.spec.js +68 -6
  23. package/lib/models/coremodel.spec.js.map +1 -1
  24. package/lib/models/ident.d.ts +8 -2
  25. package/lib/models/ident.js.map +1 -1
  26. package/lib/models/ident.spec.js +16 -0
  27. package/lib/models/ident.spec.js.map +1 -1
  28. package/lib/models/ownermodel.d.ts +1 -1
  29. package/lib/models/ownermodel.js.map +1 -1
  30. package/lib/models/ownermodel.spec.js +22 -19
  31. package/lib/models/ownermodel.spec.js.map +1 -1
  32. package/lib/models/user.d.ts +2 -0
  33. package/lib/models/user.js +4 -2
  34. package/lib/models/user.js.map +1 -1
  35. package/lib/models/user.spec.js +9 -2
  36. package/lib/models/user.spec.js.map +1 -1
  37. package/lib/queues/filequeue.d.ts +63 -0
  38. package/lib/queues/filequeue.js +161 -0
  39. package/lib/queues/filequeue.js.map +1 -0
  40. package/lib/queues/filequeue.spec.d.ts +1 -0
  41. package/lib/queues/filequeue.spec.js +90 -0
  42. package/lib/queues/filequeue.spec.js.map +1 -0
  43. package/lib/queues/memoryqueue.d.ts +18 -4
  44. package/lib/queues/memoryqueue.js +20 -13
  45. package/lib/queues/memoryqueue.js.map +1 -1
  46. package/lib/queues/memoryqueue.spec.js +142 -39
  47. package/lib/queues/memoryqueue.spec.js.map +1 -1
  48. package/lib/queues/pubsubservice.d.ts +27 -0
  49. package/lib/queues/pubsubservice.js +21 -0
  50. package/lib/queues/pubsubservice.js.map +1 -0
  51. package/lib/queues/queue.spec.js +16 -7
  52. package/lib/queues/queue.spec.js.map +1 -1
  53. package/lib/queues/queueservice.d.ts +108 -13
  54. package/lib/queues/queueservice.js +100 -36
  55. package/lib/queues/queueservice.js.map +1 -1
  56. package/lib/router.js +4 -6
  57. package/lib/router.js.map +1 -1
  58. package/lib/router.spec.js +27 -2
  59. package/lib/router.spec.js.map +1 -1
  60. package/lib/services/asyncevents.d.ts +110 -5
  61. package/lib/services/asyncevents.js +134 -39
  62. package/lib/services/asyncevents.js.map +1 -1
  63. package/lib/services/asyncevents.spec.js +58 -4
  64. package/lib/services/asyncevents.spec.js.map +1 -1
  65. package/lib/services/authentication.d.ts +57 -5
  66. package/lib/services/authentication.js +93 -84
  67. package/lib/services/authentication.js.map +1 -1
  68. package/lib/services/authentication.spec.js +118 -82
  69. package/lib/services/authentication.spec.js.map +1 -1
  70. package/lib/services/binary.d.ts +175 -48
  71. package/lib/services/binary.js +205 -170
  72. package/lib/services/binary.js.map +1 -1
  73. package/lib/services/binary.spec.d.ts +22 -3
  74. package/lib/services/binary.spec.js +327 -22
  75. package/lib/services/binary.spec.js.map +1 -1
  76. package/lib/services/configuration.d.ts +94 -13
  77. package/lib/services/configuration.js +98 -28
  78. package/lib/services/configuration.js.map +1 -1
  79. package/lib/services/configuration.spec.js +40 -1
  80. package/lib/services/configuration.spec.js.map +1 -1
  81. package/lib/services/cron.d.ts +4 -4
  82. package/lib/services/cron.js +37 -53
  83. package/lib/services/cron.js.map +1 -1
  84. package/lib/services/cron.spec.d.ts +1 -0
  85. package/lib/services/cron.spec.js +76 -0
  86. package/lib/services/cron.spec.js.map +1 -0
  87. package/lib/services/debugmailer.spec.js +18 -4
  88. package/lib/services/debugmailer.spec.js.map +1 -1
  89. package/lib/services/echo.js +22 -13
  90. package/lib/services/echo.js.map +1 -1
  91. package/lib/services/echo.spec.d.ts +1 -0
  92. package/lib/services/echo.spec.js +52 -0
  93. package/lib/services/echo.spec.js.map +1 -0
  94. package/lib/services/filebinary.d.ts +16 -9
  95. package/lib/services/filebinary.js +58 -73
  96. package/lib/services/filebinary.js.map +1 -1
  97. package/lib/services/filebinary.spec.d.ts +8 -1
  98. package/lib/services/filebinary.spec.js +133 -7
  99. package/lib/services/filebinary.spec.js.map +1 -1
  100. package/lib/services/fileconfiguration.d.ts +9 -3
  101. package/lib/services/fileconfiguration.js +13 -6
  102. package/lib/services/fileconfiguration.js.map +1 -1
  103. package/lib/services/fileconfiguration.spec.js +100 -5
  104. package/lib/services/fileconfiguration.spec.js.map +1 -1
  105. package/lib/services/kubernetesconfiguration.d.ts +8 -2
  106. package/lib/services/kubernetesconfiguration.js +16 -5
  107. package/lib/services/kubernetesconfiguration.js.map +1 -1
  108. package/lib/services/kubernetesconfiguration.spec.js +53 -16
  109. package/lib/services/kubernetesconfiguration.spec.js.map +1 -1
  110. package/lib/services/mailer.d.ts +11 -2
  111. package/lib/services/mailer.js +28 -34
  112. package/lib/services/mailer.js.map +1 -1
  113. package/lib/services/mailer.spec.js +69 -23
  114. package/lib/services/mailer.spec.js.map +1 -1
  115. package/lib/services/oauth.d.ts +5 -2
  116. package/lib/services/oauth.js +22 -8
  117. package/lib/services/oauth.js.map +1 -1
  118. package/lib/services/oauth.spec.js +33 -3
  119. package/lib/services/oauth.spec.js.map +1 -1
  120. package/lib/services/resource.spec.js +39 -2
  121. package/lib/services/resource.spec.js.map +1 -1
  122. package/lib/services/service.d.ts +16 -0
  123. package/lib/services/service.js +47 -6
  124. package/lib/services/service.js.map +1 -1
  125. package/lib/services/service.spec.d.ts +1 -0
  126. package/lib/services/service.spec.js +119 -0
  127. package/lib/services/service.spec.js.map +1 -0
  128. package/lib/stores/aggregator.d.ts +43 -0
  129. package/lib/stores/aggregator.js +106 -0
  130. package/lib/stores/aggregator.js.map +1 -0
  131. package/lib/stores/file.d.ts +49 -11
  132. package/lib/stores/file.js +84 -81
  133. package/lib/stores/file.js.map +1 -1
  134. package/lib/stores/file.spec.d.ts +6 -1
  135. package/lib/stores/file.spec.js +134 -9
  136. package/lib/stores/file.spec.js.map +1 -1
  137. package/lib/stores/mapper.d.ts +151 -0
  138. package/lib/stores/mapper.js +294 -0
  139. package/lib/stores/mapper.js.map +1 -0
  140. package/lib/stores/mapper.spec.d.ts +1 -0
  141. package/lib/stores/mapper.spec.js +55 -0
  142. package/lib/stores/mapper.spec.js.map +1 -0
  143. package/lib/stores/memory.d.ts +52 -7
  144. package/lib/stores/memory.js +71 -33
  145. package/lib/stores/memory.js.map +1 -1
  146. package/lib/stores/memory.spec.d.ts +6 -1
  147. package/lib/stores/memory.spec.js +65 -4
  148. package/lib/stores/memory.spec.js.map +1 -1
  149. package/lib/stores/store.d.ts +263 -126
  150. package/lib/stores/store.js +285 -493
  151. package/lib/stores/store.js.map +1 -1
  152. package/lib/stores/store.spec.d.ts +20 -0
  153. package/lib/stores/store.spec.js +242 -18
  154. package/lib/stores/store.spec.js.map +1 -1
  155. package/lib/test.d.ts +1 -7
  156. package/lib/test.js +3 -12
  157. package/lib/test.js.map +1 -1
  158. package/lib/utils/abstractdeployer.spec.d.ts +1 -0
  159. package/lib/utils/abstractdeployer.spec.js +23 -0
  160. package/lib/utils/abstractdeployer.spec.js.map +1 -0
  161. package/lib/utils/context.d.ts +25 -2
  162. package/lib/utils/context.js +33 -12
  163. package/lib/utils/context.js.map +1 -1
  164. package/lib/utils/context.spec.js +81 -11
  165. package/lib/utils/context.spec.js.map +1 -1
  166. package/lib/utils/cookie.d.ts +12 -0
  167. package/lib/utils/cookie.js +13 -1
  168. package/lib/utils/cookie.js.map +1 -1
  169. package/lib/utils/cookie.spec.js +42 -11
  170. package/lib/utils/cookie.spec.js.map +1 -1
  171. package/lib/utils/logger.d.ts +23 -4
  172. package/lib/utils/logger.js +29 -6
  173. package/lib/utils/logger.js.map +1 -1
  174. package/lib/utils/logger.spec.js +8 -0
  175. package/lib/utils/logger.spec.js.map +1 -1
  176. package/lib/utils/serializers.d.ts +5 -5
  177. package/lib/utils/serializers.js +10 -10
  178. package/lib/utils/serializers.js.map +1 -1
  179. package/lib/utils/serializers.spec.js +41 -16
  180. package/lib/utils/serializers.spec.js.map +1 -1
  181. package/lib/utils/waiter.d.ts +59 -1
  182. package/lib/utils/waiter.js +86 -3
  183. package/lib/utils/waiter.js.map +1 -1
  184. package/lib/utils/waiter.spec.js +48 -4
  185. package/lib/utils/waiter.spec.js.map +1 -1
  186. package/package.json +16 -11
  187. package/test/badapp/package.json +4 -0
  188. package/test/badapp/webda.config.json +1 -0
  189. package/test/cachedapp/webda.config.json +7 -0
  190. package/test/config-file-no-reload.json +70 -0
  191. package/test/config-file-reload.json +7 -1
  192. package/test/config-kube-reload.json +7 -1
  193. package/test/config.json +45 -21
  194. package/test/config.old-default.json +0 -16
  195. package/test/config.old.json +0 -16
  196. package/test/deployments/invalid.json +1 -0
  197. package/test/moddas/fakeservice.js +5 -0
  198. package/test/models/ident.js +10 -14
  199. package/test/models/task.js +2 -4
@@ -17,7 +17,7 @@ class ConfigurationServiceParameters extends service_1.ServiceParameters {
17
17
  constructor(params) {
18
18
  var _a;
19
19
  super(params);
20
- this.checkInterval = (_a = this.checkInterval) !== null && _a !== void 0 ? _a : 3600;
20
+ (_a = this.checkInterval) !== null && _a !== void 0 ? _a : (this.checkInterval = 3600);
21
21
  }
22
22
  }
23
23
  exports.ConfigurationServiceParameters = ConfigurationServiceParameters;
@@ -27,12 +27,18 @@ exports.ConfigurationServiceParameters = ConfigurationServiceParameters;
27
27
  *
28
28
  * Load configuration from another service
29
29
  *
30
+ * If the result contains `webda.services` in his object then webda configuration will
31
+ * be dynamically reloaded
32
+ *
30
33
  * @category CoreServices
31
34
  */
32
35
  class ConfigurationService extends service_1.Service {
33
36
  constructor() {
34
37
  super(...arguments);
35
- this.watches = [];
38
+ /**
39
+ * Watchs for configuration update
40
+ */
41
+ this.watchs = [];
36
42
  }
37
43
  /**
38
44
  * Load parameters
@@ -43,6 +49,9 @@ class ConfigurationService extends service_1.Service {
43
49
  loadParameters(params) {
44
50
  return new ConfigurationServiceParameters(params);
45
51
  }
52
+ /**
53
+ * @inheritdoc
54
+ */
46
55
  init() {
47
56
  return __awaiter(this, void 0, void 0, function* () {
48
57
  // Check interval by default every hour
@@ -50,60 +59,108 @@ class ConfigurationService extends service_1.Service {
50
59
  throw new core_1.WebdaError("CONFIGURATION_SOURCE_MISSING", "Need a source for ConfigurationService");
51
60
  }
52
61
  let source = this.parameters.source.split(":");
53
- this._sourceService = this.getService(source[0]);
54
- if (!this._sourceService) {
62
+ this.sourceService = this.getService(source[0]);
63
+ if (!this.sourceService) {
55
64
  throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", 'Need a valid service for source ("sourceService:sourceId")');
56
65
  }
57
- this._sourceId = source[1];
58
- if (!this._sourceId) {
66
+ this.sourceId = source[1];
67
+ if (!this.sourceId) {
59
68
  throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", 'Need a valid source ("sourceService:sourceId")');
60
69
  }
61
- if (!this._sourceService.getConfiguration) {
62
- throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", `Service ${source[0]} is not implementing ConfigurationProvider interface`);
70
+ if (!this.sourceService.getConfiguration) {
71
+ throw new core_1.WebdaError("CONFIGURATION_SOURCE_INVALID", `Service '${source[0]}' is not implementing ConfigurationProvider interface`);
63
72
  }
64
- this._configuration = JSON.stringify(this.parameters.default);
65
- yield this._checkUpdate();
66
- if (!this._sourceService.canTriggerConfiguration(this._sourceId, this._checkUpdate.bind(this))) {
67
- this._interval = setInterval(this._checkUpdate.bind(this), 1000);
73
+ this.serializedConfiguration = JSON.stringify(this.parameters.default);
74
+ yield this.checkUpdate();
75
+ if (!this.sourceService.canTriggerConfiguration(this.sourceId, this.checkUpdate.bind(this, true))) {
76
+ this.interval = setInterval(this.checkUpdate.bind(this), 1000);
68
77
  }
69
78
  // Add webda info
70
79
  this.watch("$.webda.services", this._webda.reinit.bind(this._webda));
71
80
  });
72
81
  }
73
- watch(path, callback, defaultValue = undefined) {
74
- this.watches.push({ path, callback, defaultValue });
82
+ /**
83
+ * Watch a specific configuration modification
84
+ *
85
+ * @param jsonPath JSON Path to the object to watch
86
+ * @param callback Method to call with the updated version
87
+ * @param defaultValue Default value of the jsonPath if it does not exist
88
+ */
89
+ watch(jsonPath, callback, defaultValue = undefined) {
90
+ this.watchs.push({ path: jsonPath, callback, defaultValue });
75
91
  }
92
+ /**
93
+ * Clear the check interval if exist
94
+ */
76
95
  stop() {
77
- // @ts-ignore
78
- clearInterval(this._interval);
96
+ if (this.interval !== undefined) {
97
+ // @ts-ignore
98
+ clearInterval(this.interval);
99
+ }
79
100
  }
101
+ /**
102
+ *
103
+ * @returns current configuration
104
+ */
80
105
  getConfiguration() {
81
106
  return this.configuration || {};
82
107
  }
108
+ /**
109
+ * We cannot reinit the configurationService by itself
110
+ *
111
+ * @inheritdoc
112
+ */
83
113
  reinit(config) {
84
114
  return __awaiter(this, void 0, void 0, function* () {
85
115
  // Need to prevent any reinit
86
116
  });
87
117
  }
88
- _loadConfiguration() {
118
+ /**
119
+ * Load the configuration by calling the source service with the source id
120
+ * @returns
121
+ */
122
+ loadConfiguration() {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ return this.sourceService.getConfiguration(this.sourceId);
125
+ });
126
+ }
127
+ initConfiguration() {
89
128
  return __awaiter(this, void 0, void 0, function* () {
90
- return this._sourceService.getConfiguration(this._sourceId);
129
+ throw new Error("ConfigurationService with dependencies cannot be used");
91
130
  });
92
131
  }
93
- _checkUpdate() {
132
+ /**
133
+ * Checking for configuration updates
134
+ *
135
+ * If configuration is updated, it will trigger all the watchs accordingly
136
+ *
137
+ * @returns
138
+ */
139
+ checkUpdate(dynamic = false) {
94
140
  return __awaiter(this, void 0, void 0, function* () {
95
141
  // If the ConfigurationProvider cannot trigger we check at interval
96
- if (this._interval && this._nextCheck > new Date().getTime())
142
+ if (!dynamic && this.interval && this.nextCheck > Date.now()) {
97
143
  return;
144
+ }
98
145
  this.log("DEBUG", "Refreshing configuration");
99
- let newConfig = (yield this._loadConfiguration()) || this.parameters.default;
100
- if (JSON.stringify(newConfig) !== this._configuration) {
146
+ const newConfig = (yield this.loadConfiguration()) || this.parameters.default;
147
+ const serializedConfig = JSON.stringify(newConfig);
148
+ if (serializedConfig !== this.serializedConfiguration) {
101
149
  this.emit("Configuration.Applying");
102
150
  this.log("DEBUG", "Apply new configuration");
103
- this._configuration = JSON.stringify(newConfig);
151
+ this.serializedConfiguration = serializedConfig;
104
152
  this.configuration = newConfig;
153
+ // Add the webda parameters logical
154
+ if (this.configuration.webda && this.configuration.webda.services) {
155
+ // Merge parameters with each service
156
+ for (let i in this.configuration.webda.services) {
157
+ if (this.getWebda().getService(i)) {
158
+ this.configuration.webda.services[i] = this.getWebda().getServiceParams(i, this.configuration.webda);
159
+ }
160
+ }
161
+ }
105
162
  let promises = [];
106
- this.watches.forEach(w => {
163
+ this.watchs.forEach(w => {
107
164
  this.log("TRACE", "Apply new configuration value", jsonpath.query(newConfig, w.path).pop() || w.defaultValue);
108
165
  let p = w.callback(jsonpath.query(newConfig, w.path).pop() || w.defaultValue);
109
166
  if (p) {
@@ -114,14 +171,27 @@ class ConfigurationService extends service_1.Service {
114
171
  this.emit("Configuration.Applied");
115
172
  }
116
173
  // If the ConfigurationProvider cannot trigger we check at interval
117
- if (this._interval) {
118
- this._updateNextCheck();
174
+ if (this.interval) {
175
+ this.updateNextCheck();
119
176
  this.log("DEBUG", "Next configuration refresh in", this.parameters.checkInterval, "s");
120
177
  }
121
178
  });
122
179
  }
123
- _updateNextCheck() {
124
- this._nextCheck = new Date().getTime() + this.parameters.checkInterval * 1000;
180
+ /**
181
+ * Update the next check time
182
+ */
183
+ updateNextCheck() {
184
+ this.nextCheck = Date.now() + this.parameters.checkInterval * 1000;
185
+ }
186
+ /**
187
+ * Read the file and store it
188
+ */
189
+ loadAndStoreConfiguration() {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ let res = yield this.loadConfiguration();
192
+ this.serializedConfiguration = JSON.stringify(res);
193
+ return res;
194
+ });
125
195
  }
126
196
  }
127
197
  exports.default = ConfigurationService;
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/services/configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/services/configuration.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  const assert = require("assert");
19
19
  const mocha_1 = require("@testdeck/mocha");
20
20
  const test_1 = require("../test");
21
+ const configuration_1 = require("./configuration");
22
+ const sinon_1 = require("sinon");
21
23
  let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.WebdaTest {
22
24
  getTestConfiguration() {
23
25
  return __dirname + "/../../test/config-reload.json";
@@ -38,6 +40,23 @@ let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.Web
38
40
  this.webda.getService("ConfigurationService").stop();
39
41
  });
40
42
  }
43
+ init() {
44
+ return __awaiter(this, void 0, void 0, function* () {
45
+ let service = new configuration_1.ConfigurationService(this.webda, "name", {});
46
+ assert.deepStrictEqual(service.getConfiguration(), {});
47
+ // @ts-ignore
48
+ service.configuration = { test: "plop" };
49
+ assert.deepStrictEqual(service.getConfiguration(), { test: "plop" });
50
+ yield assert.rejects(() => service.init(), /Need a source for ConfigurationService/);
51
+ service.getParameters().source = "none:plopId";
52
+ yield assert.rejects(() => service.init(), /Need a valid service for source/);
53
+ service.getParameters().source = "DefinedMailer";
54
+ yield assert.rejects(() => service.init(), /Need a valid source/);
55
+ service.getParameters().source = "DefinedMailer:none";
56
+ yield assert.rejects(() => service.init(), /Service 'DefinedMailer' is not implementing ConfigurationProvider interface/);
57
+ yield assert.rejects(() => service.initConfiguration(), /ConfigurationService with dependencies cannot be used/);
58
+ });
59
+ }
41
60
  initialLoad() {
42
61
  return __awaiter(this, void 0, void 0, function* () {
43
62
  assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Test");
@@ -46,7 +65,13 @@ let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.Web
46
65
  uuid: "test",
47
66
  webda: {
48
67
  services: {
49
- "Authentication.providers.email.text": "Plop"
68
+ Authentication: {
69
+ providers: {
70
+ email: {
71
+ text: "Plop"
72
+ }
73
+ }
74
+ }
50
75
  }
51
76
  }
52
77
  };
@@ -57,9 +82,23 @@ let ConfigurationServiceTest = class ConfigurationServiceTest extends test_1.Web
57
82
  }));
58
83
  assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.text, "Plop");
59
84
  assert.strictEqual(this.webda.getConfiguration().services.Authentication.providers.email.mailer, "DefinedMailer");
85
+ let service = this.webda.getService("ConfigurationService");
86
+ // @ts-ignore
87
+ yield service.checkUpdate();
88
+ let mock = (0, sinon_1.stub)(service, "loadConfiguration").callsFake(() => { });
89
+ // @ts-ignore
90
+ service.nextCheck = Date.now() + 86400000;
91
+ // @ts-ignore
92
+ service.interval = 1;
93
+ // @ts-ignore
94
+ yield service.checkUpdate();
95
+ assert.strictEqual(mock.callCount, 0);
60
96
  });
61
97
  }
62
98
  };
99
+ __decorate([
100
+ mocha_1.test
101
+ ], ConfigurationServiceTest.prototype, "init", null);
63
102
  __decorate([
64
103
  mocha_1.test
65
104
  ], ConfigurationServiceTest.prototype, "initialLoad", null);
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.spec.js","sourceRoot":"","sources":["../../src/services/configuration.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAG9C,kCAAoC;AAIpC,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,gBAAS;IAC9C,oBAAoB;QAClB,OAAO,SAAS,GAAG,gCAAgC,CAAC;IACtD,CAAC;IACK,MAAM;;;;;YACV,MAAM,OAAM,MAAM,WAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;IACK,KAAK;;YACT,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAE,CAAC,IAAI,EAAE,CAAC;QAC/E,CAAC;KAAA;IAEK,WAAW;;YACf,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAClH,IAAI,IAAI,GAAG;gBACT,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE;oBACL,QAAQ,EAAE;wBACR,qCAAqC,EAAE,MAAM;qBAC9C;iBACF;aACF,CAAC;YACF,IAAI,KAAK,GAAuC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAC5F,MAAM,IAAI,OAAO,CAAC,CAAM,OAAO,EAAC,EAAE;gBAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;gBACnF,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACpH,CAAC;KAAA;CACF,CAAA;AAnBC;IADC,YAAI;2DAmBJ;AAhCG,wBAAwB;IAD7B,aAAK;GACA,wBAAwB,CAiC7B"}
1
+ {"version":3,"file":"configuration.spec.js","sourceRoot":"","sources":["../../src/services/configuration.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAG9C,kCAAoC;AACpC,mDAAuF;AACvF,iCAA6B;AAG7B,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,gBAAS;IAC9C,oBAAoB;QAClB,OAAO,SAAS,GAAG,gCAAgC,CAAC;IACtD,CAAC;IACK,MAAM;;;;;YACV,MAAM,OAAM,MAAM,WAAE,CAAC;YACrB,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;YAC5D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1B,CAAC;KAAA;IACK,KAAK;;YACT,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAE,CAAC,IAAI,EAAE,CAAC;QAC/E,CAAC;KAAA;IAGK,IAAI;;YACR,IAAI,OAAO,GAAG,IAAI,oCAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,CAAC,CAAC;YACvD,aAAa;YACb,OAAO,CAAC,aAAa,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;YACzC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;YACrE,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,wCAAwC,CAAC,CAAC;YACrF,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,aAAa,CAAC;YAC/C,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,iCAAiC,CAAC,CAAC;YAC9E,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,eAAe,CAAC;YACjD,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,qBAAqB,CAAC,CAAC;YAClE,OAAO,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,oBAAoB,CAAC;YACtD,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EACpB,6EAA6E,CAC9E,CAAC;YACF,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,uDAAuD,CAAC,CAAC;QACnH,CAAC;KAAA;IAGK,WAAW;;YACf,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAClH,IAAI,IAAI,GAAG;gBACT,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE;oBACL,QAAQ,EAAE;wBACR,cAAc,EAAE;4BACd,SAAS,EAAE;gCACT,KAAK,EAAE;oCACL,IAAI,EAAE,MAAM;iCACb;6BACF;yBACF;qBACF;iBACF;aACF,CAAC;YACF,IAAI,KAAK,GAAuC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;YAC5F,MAAM,IAAI,OAAO,CAAC,CAAM,OAAO,EAAC,EAAE;gBAChC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAC;gBACnF,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YAClH,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAuB,sBAAsB,CAAC,CAAC;YAClF,aAAa;YACb,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAC5B,IAAI,IAAI,GAAG,IAAA,YAAI,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClE,aAAa;YACb,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC;YAC1C,aAAa;YACb,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;YACrB,aAAa;YACb,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACxC,CAAC;KAAA;CACF,CAAA;AAxDC;IADC,YAAI;oDAkBJ;AAGD;IADC,YAAI;2DAoCJ;AAtEG,wBAAwB;IAD7B,aAAK;GACA,wBAAwB,CAuE7B"}
@@ -1,5 +1,5 @@
1
1
  import { Service } from "./service";
2
- import { ModdaDefinition } from "..";
2
+ import { ModdaDefinition, CancelablePromise } from "..";
3
3
  /**
4
4
  * Cron item
5
5
  */
@@ -33,7 +33,7 @@ export declare class CronDefinition {
33
33
  * @param method
34
34
  * @param description
35
35
  */
36
- constructor(cron: string, args: any[], serviceName?: string, method?: string, description?: string);
36
+ constructor(cron: string, args?: any[], serviceName?: string, method?: string, description?: string);
37
37
  toString(): string;
38
38
  }
39
39
  declare class CronService extends Service {
@@ -60,8 +60,8 @@ declare class CronService extends Service {
60
60
  args?: any[];
61
61
  cb?: () => void;
62
62
  }[];
63
- work(annotations?: string): Promise<void>;
64
- run(annotations?: boolean): Promise<unknown>;
63
+ work(annotations?: string): CancelablePromise;
64
+ run(annotations?: boolean): CancelablePromise;
65
65
  schedule(cron: string, cb: () => any, description?: string): void;
66
66
  /**
67
67
  * @inheritdoc
@@ -1,17 +1,9 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.CronService = exports.Cron = exports.CronDefinition = void 0;
13
4
  const crontab = require("node-cron");
14
5
  const service_1 = require("./service");
6
+ const __1 = require("..");
15
7
  /**
16
8
  * Cron item
17
9
  */
@@ -24,7 +16,7 @@ class CronDefinition {
24
16
  * @param method
25
17
  * @param description
26
18
  */
27
- constructor(cron, args, serviceName = "", method = "", description = "") {
19
+ constructor(cron, args = [], serviceName = "", method = "", description = "") {
28
20
  this.cron = cron;
29
21
  this.serviceName = serviceName;
30
22
  this.method = method;
@@ -79,50 +71,44 @@ class CronService extends service_1.Service {
79
71
  return this.crons;
80
72
  }
81
73
  work(annotations = "true") {
82
- return __awaiter(this, void 0, void 0, function* () {
83
- yield this.run(annotations === "true");
84
- });
74
+ return this.run(annotations === "true");
85
75
  }
86
76
  run(annotations = true) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- this.log("INFO", "Running crontab with" + (annotations ? "" : "out"), "annotations");
89
- // Load all annotations
90
- if (annotations) {
91
- this.addAnnotations();
77
+ this.log("INFO", "Running crontab with" + (annotations ? "" : "out"), "annotations");
78
+ // Load all annotations
79
+ if (annotations) {
80
+ this.addAnnotations();
81
+ }
82
+ this.enable = true;
83
+ // Run schedule
84
+ this.crons.forEach(i => {
85
+ if (i.cb) {
86
+ this.schedule(i.cron, i.cb);
87
+ }
88
+ else {
89
+ this.schedule(i.cron, () => {
90
+ this.getService(i.serviceName)[i.method](...i.args);
91
+ });
92
+ }
93
+ });
94
+ let msgs = [];
95
+ // Display before
96
+ this.crons.forEach(c => {
97
+ if (c.cb) {
98
+ msgs.push(`[NativeCode:${c.context || ""}]`);
99
+ }
100
+ else {
101
+ msgs.push(`${c.serviceName}.${c.method}(${c.args.length ? "..." + c.args : ""})`);
92
102
  }
93
- this.enable = true;
94
- // Run schedule
95
- this.crons.forEach(i => {
96
- if (i.cb) {
97
- this.schedule(i.cron, i.cb);
98
- }
99
- else {
100
- this.schedule(i.cron, () => {
101
- this.getService(i.serviceName)[i.method](...i.args);
102
- });
103
- }
104
- });
105
- let msgs = [];
106
- // Display before
107
- this.crons.forEach(c => {
108
- if (c.cb) {
109
- msgs.push(`[NativeCode:${c.context || ""}]`);
110
- }
111
- else {
112
- msgs.push(`${c.serviceName}.${c.method}(${c.args.length ? "..." + c.args : ""})`);
113
- }
114
- });
115
- let cronPad = Math.max(...this.crons.map(c => c.cron.length));
116
- let servicePad = Math.max(...msgs.map(c => c.length));
117
- this.crons.forEach((c, i) => {
118
- this.log("INFO", `${c.cron.padEnd(cronPad)} : ${msgs[i].padEnd(servicePad)}${c.description ? " # " + c.description : ""}`);
119
- });
120
- // Remove from memory
121
- this.crons = [];
122
- return new Promise(resolve => {
123
- // Never ending promise
124
- });
125
103
  });
104
+ let cronPad = Math.max(...this.crons.map(c => c.cron.length));
105
+ let servicePad = Math.max(...msgs.map(c => c.length));
106
+ this.crons.forEach((c, i) => {
107
+ this.log("INFO", `${c.cron.padEnd(cronPad)} : ${msgs[i].padEnd(servicePad)}${c.description ? " # " + c.description : ""}`);
108
+ });
109
+ // Remove from memory
110
+ this.crons = [];
111
+ return new __1.CancelablePromise();
126
112
  }
127
113
  schedule(cron, cb, description = "") {
128
114
  if (this.enable) {
@@ -136,9 +122,7 @@ class CronService extends service_1.Service {
136
122
  catch (err) {
137
123
  // Based on stack trace (not super clean)
138
124
  let info = err.stack.split("\n")[2].match(/\((.*)\)/);
139
- if (info) {
140
- context = info[1].replace(process.cwd() + "/", "");
141
- }
125
+ context = info[1].replace(process.cwd() + "/", "");
142
126
  }
143
127
  this.crons.push({ cron, cb, description, context });
144
128
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron.js","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const assert = require("assert");
10
+ const mocha_1 = require("@testdeck/mocha");
11
+ const test_1 = require("../test");
12
+ const __1 = require("..");
13
+ const crontab = require("node-cron");
14
+ const sinon = require("sinon");
15
+ class MyService extends __1.Service {
16
+ test() {
17
+ // Empty one
18
+ }
19
+ test2(myArg) { }
20
+ }
21
+ __decorate([
22
+ (0, __1.Cron)("0/15 * * * *", "plop")
23
+ ], MyService.prototype, "test", null);
24
+ __decorate([
25
+ (0, __1.Cron)("0/25 * * * *", undefined, "myArg")
26
+ ], MyService.prototype, "test2", null);
27
+ let CronServiceTest = class CronServiceTest extends test_1.WebdaTest {
28
+ annotations() {
29
+ this.registerService("myService", new MyService(this.webda, "myService", {}));
30
+ let def = new __1.CronDefinition("0/15 * * * *", [], "myService", "test", "plop");
31
+ let service = new __1.CronService(this.webda, "cron", {});
32
+ service.schedule("* * * * *", () => { }, "mine");
33
+ assert.deepStrictEqual(service.getCrontab()[1], def);
34
+ // for cov
35
+ assert.deepStrictEqual(service.getCrontab()[1], def);
36
+ __1.CronService.getModda();
37
+ const cron = sinon.stub(crontab, "schedule").callsFake((cron, cb) => {
38
+ try {
39
+ cb();
40
+ }
41
+ catch (err) { }
42
+ });
43
+ try {
44
+ let promise = service.work();
45
+ promise.cancel();
46
+ service.enable = false;
47
+ service.schedule("* * * * *", () => { }, "mine");
48
+ service.crons[0].context = undefined;
49
+ promise = service.run();
50
+ promise.cancel();
51
+ promise = service.run(false);
52
+ promise.cancel();
53
+ }
54
+ finally {
55
+ }
56
+ }
57
+ };
58
+ __decorate([
59
+ mocha_1.test
60
+ ], CronServiceTest.prototype, "annotations", null);
61
+ CronServiceTest = __decorate([
62
+ mocha_1.suite
63
+ ], CronServiceTest);
64
+ let CronDefinitionTest = class CronDefinitionTest {
65
+ testString() {
66
+ assert.strictEqual(new __1.CronDefinition("* * * * *").toString(), "* * * * *: .()");
67
+ assert.strictEqual(new __1.CronDefinition("* * * * *", [{}, {}], "plop", "method", "desc").toString(), "* * * * *: plop.method([object Object],[object Object]) # desc");
68
+ }
69
+ };
70
+ __decorate([
71
+ mocha_1.test
72
+ ], CronDefinitionTest.prototype, "testString", null);
73
+ CronDefinitionTest = __decorate([
74
+ mocha_1.suite
75
+ ], CronDefinitionTest);
76
+ //# sourceMappingURL=cron.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cron.spec.js","sourceRoot":"","sources":["../../src/services/cron.spec.ts"],"names":[],"mappings":";;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,kCAAoC;AACpC,0BAAgE;AAChE,qCAAqC;AACrC,+BAA+B;AAE/B,MAAM,SAAU,SAAQ,WAAO;IAE7B,IAAI;QACF,YAAY;IACd,CAAC;IAGD,KAAK,CAAC,KAAa,IAAG,CAAC;CACxB;AANC;IADC,IAAA,QAAI,EAAC,cAAc,EAAE,MAAM,CAAC;qCAG5B;AAGD;IADC,IAAA,QAAI,EAAC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;sCAClB;AAGzB,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,gBAAS;IAErC,WAAW;QACT,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QAC9E,IAAI,GAAG,GAAG,IAAI,kBAAc,CAAC,cAAc,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9E,IAAI,OAAO,GAAG,IAAI,eAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,UAAU;QACV,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACrD,eAAW,CAAC,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE;YAClE,IAAI;gBACF,EAAE,EAAE,CAAC;aACN;YAAC,OAAO,GAAG,EAAE,GAAE;QAClB,CAAC,CAAC,CAAC;QACH,IAAI;YACF,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7B,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvB,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAChD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC;YACrC,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YACxB,OAAO,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,CAAC,MAAM,EAAE,CAAC;SAClB;gBAAS;SACT;IACH,CAAC;CACF,CAAA;AA3BC;IADC,YAAI;kDA2BJ;AA5BG,eAAe;IADpB,aAAK;GACA,eAAe,CA6BpB;AAGD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAEtB,UAAU;QACR,MAAM,CAAC,WAAW,CAAC,IAAI,kBAAc,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACjF,MAAM,CAAC,WAAW,CAChB,IAAI,kBAAc,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,EAAE,EAC9E,gEAAgE,CACjE,CAAC;IACJ,CAAC;CACF,CAAA;AAPC;IADC,YAAI;oDAOJ;AARG,kBAAkB;IADvB,aAAK;GACA,kBAAkB,CASvB"}
@@ -5,6 +5,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
8
17
  Object.defineProperty(exports, "__esModule", { value: true });
9
18
  const assert = require("assert");
10
19
  const mocha_1 = require("@testdeck/mocha");
@@ -12,10 +21,15 @@ const test_1 = require("../test");
12
21
  const debugmailer_1 = require("./debugmailer");
13
22
  let DebugMailerTest = class DebugMailerTest extends test_1.WebdaTest {
14
23
  testSend() {
15
- let mailer = new debugmailer_1.DebugMailer(this.webda, "test", {});
16
- mailer.send({ option1: "test" });
17
- assert.strictEqual(mailer.sent.length, 1);
18
- assert.strictEqual(mailer.sent[0].option1, "test");
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ let mailer = new debugmailer_1.DebugMailer(this.webda, "test", {});
26
+ mailer.send({ option1: "test" });
27
+ assert.strictEqual(mailer.sent.length, 1);
28
+ assert.strictEqual(mailer.sent[0].option1, "test");
29
+ yield mailer.async();
30
+ assert.throws(() => mailer.error(), /FakeError/);
31
+ yield assert.rejects(() => mailer.errorAsync(), /FakeError/);
32
+ });
19
33
  }
20
34
  };
21
35
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"debugmailer.spec.js","sourceRoot":"","sources":["../../src/services/debugmailer.spec.ts"],"names":[],"mappings":";;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,kCAAoC;AACpC,+CAA4C;AAG5C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,gBAAS;IAErC,QAAQ;QACN,IAAI,MAAM,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AANC;IADC,YAAI;+CAMJ;AAPG,eAAe;IADpB,aAAK;GACA,eAAe,CAQpB"}
1
+ {"version":3,"file":"debugmailer.spec.js","sourceRoot":"","sources":["../../src/services/debugmailer.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,iCAAiC;AACjC,2CAA8C;AAC9C,kCAAoC;AACpC,+CAA4C;AAG5C,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,gBAAS;IAE/B,QAAQ;;YACZ,IAAI,MAAM,GAAG,IAAI,yBAAW,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YACjC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACnD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,WAAW,CAAC,CAAC;YACjD,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,WAAW,CAAC,CAAC;QAC/D,CAAC;KAAA;CACF,CAAA;AATC;IADC,YAAI;+CASJ;AAVG,eAAe;IADpB,aAAK;GACA,eAAe,CAWpB"}